"サイト構築" の一覧

BlogEngine.Net 1.5をSQL Serverで使う

メリット

  • SQL Serverが稼働していれば、データ抽出が楽。
  • ActiveDirectoryで認証できるハズ。
  • WindowsLiveWriterで編集できる。

参考サイト

 

WS000048

  1. まずDBをBlogEngineという名前で用意する
  2. \BlogEngine.Web\setup\SQLServer内にあるMSSQLSetup1.5.0.0.sqlを実行し必要なテーブルを作成
  3. BlogEngine(例)というユーザーを作成し、必要が権限を与える。
  4. \BlogEngine.Web\setup\SQLServer内にあるSQLServerWeb.Configを参考にWeb.configを修正する。

ActiveDirectoryでのユーザー認証はBlogEngineでActiveDirectory認証を参考にしたがうまく行かず。SQL Serverを利用するようにした設定とうまくかみ合ってないのかも。

phpBB3のユーザー登録時にMXレコードエラー

WS000044

phpBB3(3.0.4)でユーザー登録する際に、ネットワーク構成上の問題で

入力したメールアドレスのドメインは有効なMXレコードではありません

というエラーが出て、ユーザー登録ができなかったので下記のMXレコードチェック部分を削除して運用・・・してしまう事に。

/phpBB3/includes/functions_user.php(1604)

function validate_email($email, $allowed_email = false)   
{   
    global $config, $db, $user;   
    $email = strtolower($email);   
    $allowed_email = ($allowed_email === false) ? strtolower($user->data['user_email']) : strtolower($allowed_email);   
    if ($allowed_email == $email)   
    {   
        return false;   
    }   
    if (!preg_match('/^' . get_preg_expression('email') . '$/i', $email))   
    {   
        return 'EMAIL_INVALID';   
    }   
    // Check MX record.   
    // The idea for this is from reading the UseBB blog/announcement. :)   
    if ($config['email_check_mx'])   
    {   
        list(, $domain) = explode('@', $email);   
        if (phpbb_checkdnsrr($domain, 'A') === false && phpbb_checkdnsrr($domain, 'MX') === false)   
        {   
            return 'DOMAIN_NO_MX_RECORD';   
        }   
    }  
function validate_email($email, $allowed_email = false)
{
    global $config, $db, $user; 

    $email = strtolower($email);
    $allowed_email = ($allowed_email === false) ? strtolower($user->data['user_email']) : strtolower($allowed_email); 

    if ($allowed_email == $email)
    {
        return false;
    } 

    if (!preg_match('/^' . get_preg_expression('email') . '$/i', $email))
    {
        return 'EMAIL_INVALID';
    } 

    // Check MX record.
    // The idea for this is from reading the UseBB blog/announcement. :)
    if ($config['email_check_mx'])
    {
        list(, $domain) = explode('@', $email); 

        if (phpbb_checkdnsrr($domain, 'A') === false && phpbb_checkdnsrr($domain, 'MX') === false)
        {
            return 'DOMAIN_NO_MX_RECORD';
        }
    }

Nucleusで複数BlogとRSS

Nucleusで複数のBlogを下記の構成で立ち上げる。

デフォルトBlog index.php
セカンドBlog secondblog.php

Nucleusの指示どおりsecondblog.phpでアクセスできるよう、下記のように記述する。

secondblog.php

<?php

$CONF['Self'] = 'secondblog.php';

include('./config.php');

selectBlog('secondblog');
selector();

?>

ここまでは問題ないが、セカンドBlog上でRSSを取得しようとするとデフォルトBlogのRSSを拾ってきてしまう。原因はSkinファイルにRSSのパスが固定で記述されている為。

【修正前】header.inc

<link rel=”alternate” type=”application/rss+xml” title=”RSS” href=”<%sitevar(url)%>xml-rss2.php” />

【修正後】header.inc

<link rel=”alternate” type=”application/rss+xml” title=”RSS” href=”<%sitevar(url)%>xml-rss2.php?blogid=<%blogsetting(id)%>” />

 

※最初は<%blogid%>で取得できると思ったが、スキン変数として認識されなかった。

サイト作成の勉強

ASP.NETやCMSの利用に関する知識に偏っていて、見栄えの良いサイト構築やCMSのテーマ作成がまったく出来ないので、しばらくこれで独学してみる事に。

目標としては今年中にWordPressのオリジナルテーマを作りたい。

さくらインターネットでClipperzが動かない

さくらインターネットでClipperzが動かない、というよりもさくらインターネットで独自にコンパイルしたPHPの実行環境が動かなくなったみたい。詳しい環境はこの記事。明日DBスペシャリストの試験だし調査する気力が無い・・・。

最近ホスティングサーバーの環境によるトラブルが多い。たどり着く先は自鯖なのか?と思いちょっと資金が欲しいです。すみませんアフィリエイトが目立ってきてしまって。

コンタクトフォームを利用したSPAM

3月終わり頃から突然SPAMが一日に付き20通程届くようになりました。Message-IDをみると、このサイトとなっていて原因が判らず。WordPressを最新版にしてみたりいろいろあがいてみましたが変化なし。

ふと気付くとコンタクトフォームにCAPTCHAが無い。試しにに送信してみるとSPAMとまるっきり同じヘッダのメールが届く(´・д・`)

ここでようやくContact Form 7について疑い始めました。ググってみると自動アップデートで画像認証がPluginを追加しないとできなくなるらしいです。

※らしいというのは、移転とかいろいろやっていたのもあってもともとCAPTCHAを設定したかどうか思い出せないのです。

Contact Form 7を利用してContact Formを設置している方は注意。

CuteFlowの日本語化(DB内の格納データについて)

CuteFlowを試験稼働させているが、日本語を正常に表示する為の情報はネットで見つけられたが、MySQL内のデータをphpMyAdminで見るとNucleusと同じように相変わらず化けている。もちろん、フィールドの照合順序はutf8_general_ciとなっている。

Nucleusと同じようにDB接続後に’set names utf8’とすればいいかと思ったが、その過程でset namesは使用するべきではないという、情報を見かけたので調査。MySQLは内部でUCS2という文字コードを持っていると知り勉強になった。というかUCS2って??知らない事ばかりです。

で・・・知らないなりに問題解決してみました。

1. mysql_connect()関数のリプレース

# find /var/www/html/CuteFlow -type f -exec sed -i.bakxxx ‘s/mysql_connect/mysql_connectex/g’ ‘{}’ \;

このコマンドでmysql_connect()関数がmysql_connectex()関数へ置き換えられます。書き換え前のファイルが*.bakxxxとして残ります。

※/var/www/html/あたりは自分の環境に置き換えてください。

2. mysql_connectex()関数の追加

/config/config.inc.php へ下記の関数を追加。

	function mysql_connectex($host, $username, $pwd)
	{
		$connection = mysql_connect($host, $username, $pwd);
		mysql_set_charset('utf8');
		return $connection;
	}

3. CuteFlowへログイン

ログインできるか確認してください。真っ白になる場合は/etc/httpd/logs/error_logあたりにエラーが出てました。

4. バックアップファイルの削除

# find /var/www/html/CuteFlow -type f -name ‘*.bakxxx’ -exec rm -f {} \;

後始末として*.bakxxxを削除します。

 

この処理を実施すると、phpMyAdminから見ても、ODBCで接続しても正しく日本語が表示されるようになります。この作業を本番稼働させた後から移行する事になると冷や汗が出そうです。もしもっと良い方法があれば教えて頂けると幸いです。

 

参考サイト