【至急・重要】ウィルスチェックのお願い

Change Style


Nucleus: XREA サーバへの設置 (文字化け・広告対応)

思うところあって、ブログツール Nucleus をインストールしてみた。しばらくいじってみるつもり。

設置したのは、

  • 最新版「Nucleus v3.3 日本語版」(UTF-8版) [2007.5.1]
  • XREA s206 サーバ(無料・広告あり)

以下、インストール作業メモ。

パッケージの入手と設置方法(リンク)

設置環境

Nucleus 動作要件
  • PHP4以上(Version 4.0.6以上)が稼動しているWebサーバー
  • そのWebサーバーからアクセスできるMySQLデータベース(Version 2.23.x以上)
downloads - Nucleus CMS Japan
XREA s206 サーバ
  • Apache 1.3.37
  • PHP 5.1.6
  • MySQL 5.1.11
XREA » サーバー情報

s201 とは少しバージョンが異なるが、s201 と同じく、デフォルト文字コードは EUC-JP。
Nucleus スクリプト側で考慮していなければ、SET NAMES utf8 が必要になると思われる。

以前から .htaccess

php_value mbstring.internal_encoding UTF-8

を入れてあって、そのまま作業を始めてしまった。
今回問題が起きたら or 今度ちゃんと調べよう。

行なった作業

途中トラブルもあったが、それも含めて時系列に書く。

インストール 1回目

まずは、何もいじらずにインストールしてみる。

  1. XREA 管理画面で DB 作成。UNICODE
  2. phpMyAdmin にログインできないので、phpMyAdmin を再インストールしてみる。
    • 新バージョンになった。
    • パスワードを FTP のフル12桁で入れたら、ログインできた。
  3. Nucleus CMS Japan » downloads より「Nucleus v3.3 (UTF-8版)」をダウンロードして解凍。
  4. public_html/nc/ ディレクトリへアップロード。
  5. 広告自動挿入をオフにするため、nc/.htaccess を追加。

    LayoutIgnoreURI *
    
  6. パーミッション変更

    • config.php 606
    • media/ 707
  7. インストーラ実行
    • ブラウザで http://bono.s206.xrea.com/nc/install.php にアクセス。
    • DB 関連入力して、自動表示されたディレクトリとか確認して、実行。→終了
  8. 後始末
    • config.php 606→404 に
    • install.sql 削除
    • install.php 削除
  9. サイト表示
    • インストール時に自動投稿された記事は文字化けしてない。おお!

ここまででインストール終了。
ログインして管理画面みたりしてみる。

文字化け発覚と対処

が、phpMyAdmin で nucleus_item テーブル(投稿が入っていると見た)を見てみたら、文字化けしてたー。Σ(゜д゜lll)

  1. 状態
    (後でスクリーンショット貼る)
    • サイト表示は文字化けしていない。
    • phpMyAdmin で見ると、格納データが文字化けしている。
    • インストール時の自動作成アイテムとは別に、自分でも投稿してみる。
      → 同様に、サイト表示は化けないが、phpMyAdmin では文字化け。
  2. フォーラム検索
  3. コア修正
    nucleus/libs/globalfunctions.php 488行目に mysql_query("SET NAMES utf8"); を挿入して、上書きアップロード。

    /**
    * Connects to mysql server
    */
    function sql_connect() {
    global $MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD, $MYSQL_DATABASE, $MYSQL_CONN;
    
    $MYSQL_CONN = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD) or startUpError('<p>Could not connect to MySQL database.</p>', 'Connect Error');
    mysql_select_db($MYSQL_DATABASE) or startUpError('<p>Could not select database: ' . mysql_error() . '</p>', 'Connect Error');
    mysql_query("SET NAMES utf8"); // ←コレ
    
    return $MYSQL_CONN;
    }
    
  4. 今までの 2アイテムは、サイト表示時も文字化けするようになった。DB も両方文字化け。

  5. 新たにアイテム(記事)を投稿してみる。
    → サイト表示も DB データも文字化けなし。ヽ(・∀・)人(・∀・)ノ
  6. 再度クリーンインストールすることにして、DB、ファイルとも一旦削除。

~ この後、別システムをインストールするために、DB 作成 ~

インストール 2回目 追記

6月22日実施。
これで問題なくインストールできるつもりでいた。再びトラブルが起ころうとは…。

  1. mysql_query("SET NAMES utf8"); 挿入済みのファイル一式をアップロード。
  2. パーミッション変更して、インストーラ実行。

→ Σ(゜д゜lll) サイト表示で文字化けしてる!

自動作成アイテムの文字化け原因と対処 追記
  1. 状態
    • 自動作成アイテム文字化け
    • インストール画面に入力したユーザ本名の「ぼの」も化けてる。
    • phpMyAdmin でも同じ化け方。nucleus_member の「ぼの」も同様。
  2. 試しに、自分でも新規投稿。
    • → これは化けなかった。phpMyAdmin でも化けてない。
    • てことは、インストーラの問題か?
  3. インストーラをチェック
    • インストール用のファイル自体(ここに自動投稿データの日本語が入っている)は UTF-8。
    • install.php 528行目からの一群に、DBコネクトを発見。コアと別にあるんだ…。orz
  4. インストーラ修正

    NCコアはフォーラムに従って mysql_select_db の後ろ、WP では DB 接続直後に入れていたので、ちょっと迷ったが、今回は WP に倣ってみる。

    // 2. try to log in to mySQL
    global $MYSQL_CONN;
    $MYSQL_CONN = @mysql_connect($mysql_host, $mysql_user, $mysql_password);
    
    if ($MYSQL_CONN == false) {
        _doError('Could not connect to mySQL server: ' . mysql_error() );
    }
    
    mysql_query("SET NAMES utf8"); // ← ココ
    
    // 3. try to create database (if needed)
    if ($mysql_create == 1) {
        mysql_query('CREATE DATABASE ' . $mysql_database) or _doError('Could not create database. Make sure you have the rights to do so. SQL error was: ' . mysql_error() );
    }
    
    // 4. try to select database
    mysql_select_db($mysql_database) or _doError('Could not select database. Make sure it exists');
    
インストール 3回目 追記
  1. 再インストール準備
    • DB に別システムのテーブルがあるので、phpMyAdmin で Nucleus のテーブルだけを選んで、削除。
    • ファイルも nc/ ディレクトリごと一旦削除。
  2. nucleus/libs/globalfunctions.php, install.php 修正済みの一式を再度アップロード
  3. パーミッション設定
  4. インストーラ実行
  5. パーミッション戻し、インストーラ削除
  6. やたー!化けてない!DB も化けてなーい!ヽ(・∀・)人(・∀・)ノ と小躍り

未解決事項 追記

  • php_value mbstring.internal_encoding UTF-8 は入れといていいのか?
  • 化け方が WordPress のときと違ったけど、どうして?
  • 設置ディレクトリは nc/ で、訪問者にはサイトトップに見せる方法はあるか?
  • 広告を貼らねば。。
  1. おお、NP_Paint の作者さんだぁ(*’-'*) [back]

2 Responses to “Nucleus: XREA サーバへの設置 (文字化け・広告対応)”

  1. どら :

    何度もすみません。
    新しい問題が・・・。

    半角で英語をタイプして英語の間に半角スペースをいれたんです。
    でも実際の表示をみてみると全角でスペースをいれたみたいにかなりの広さがあるんです。

    文字化けでしょうか?

    独自ドメインでxreaを使用しています。

  2. ぼの :

    Nucleus についてで大丈夫ですか?(前の話が WordPress だったので。。)

コメントをどうぞ