この記事の概要
かつての解説内容がすっかり古くなってるため、数年ぶりに書き直してみることにしました。
セキュリティー関連のことも取り入れつつ・・。
はじめに
XREA、およびXREA+(PLUS)サービス利用時に、Nucleusをインストールするときのポイントをまとめておきます。
データベース設定、PHPの運用設定、セーフモード対策、広告抑制について等。
データベースの作成
まずはXREAでデータベース(MySQL)を有効にします。
管理メニューからデータベースを選択、MySQLの「作成」ボタンを押します。これでMySQLデータベースとMySQLアカウント(XREAのアカウント名と同じ)が自動作成されます。パスワードは通常はFTPパスワードと同じものがセットされるようですが、変更しておくほうが良さそうです。
DBの文字コードは、サーバーのMySQLがバージョン5以降の場合に指定できます(そうでない場合はEUC-JP固定)。UTF-8版ならUNICODE、EUC-JP版ならEUC-JPを選択。
ただMySQL Ver.5未満の環境でEUC-JPのDBを使わざるをえない場合でも、NucleusのUTF-8版を利用することは出来ます。DBにUTF-8でデータをつっこんでも、とりあえず大丈夫(厳密にいうと検索の時とかがちょっと怪しいけど・・・)。
ここでphpMyAdminも一緒にインストールしておくとデータベース管理に便利ですので、「インストール」ボタンを押しておきましょう。
DB設定の反映には数時間かかるので、しばらくのんびり待ちます。
後でMySQLの設定が反映されたか確認します。サーバによって若干変わるようですが、public_html直下かlogディレクトリに phpmyadminフォルダが出来ていれば終了してるはず。
サーバーの設定
.htaccess(Apacheの設定ファイル)をNucleusを設置するディレクトリにおきます。このファイルでPHPの設定をしておきます。
基本設定(念のため)
php_flag register_globals Off
文字コード等の設定(EUC-JP版の場合は、UTF-8→EUC-JPに)
php_value default_charset UTF-8
php_value mbstring.language Japanese
php_value mbstring.internal_encoding UTF-8
php_flag mbstring.encoding_translation On
php_value mbstring.http_input auto
php_value mbstring.http_output pass
PHPの文字コード自動変換で不具合が出るようなら、encoding_translation Off、http_input UTF-8にして、受け取る文字コードを固定するのもあり。
Nucleusのインストール
次にNucleus最新版の圧縮ファイルを解凍し、サーバースペースにFTPでアップロードします。
そしたらinstall.phpをブラウザから呼びます。
ここでMySQLの情報や、各種パス指定などを行います。(この時点でinstall.phpの画面が真っ白な場合はPHPの文字コード指定が原因かもしれません。インストールするNucleusの文字コードとPHPの設定が一致しているか要確認)
ちなみにMySQLの情報は、XREAでは以下のようにすればOK。
Hostname:localhost
Username:(アカウント名)
Password:(FTPパスワード or 自分で指定したもの)
Database:(アカウント名)
インストールに成功すると、configファイルの書き換えを促されますのでやっておきます。configファイルのパーミッションは604に。
ファイルアップロード用のメディアディレクトリも作成します。ディレクトリのパーミッションは707に。
セーフモード対策・広告抑制
Nucleusには「メディアアップロード機能」というのがあって、画像ファイルなどをブラウザ画面でアップロードできます。しかしこれが、PHP がセーフモードで動作してる場合に支障があります。XREAはモジュール版PHPがセーフモードで動作するかわりに、CGI版PHPがセーフモード無しで利用できるので、それで対処します。
nucleusディレクトリ(管理画面:media.phpのあるところ)の .htaccess に。
<Files media.php>
AddHandler application/x-httpd-phpcgi .php
</Files>
またXREA+(PLUS)を利用していない場合は、出力に広告バナーが自動挿入されますので、LayoutIgnoreURI でそれを回避します。この広告回避はRSS配信時にとくに有効です。
Nucleusを配置したディレクトリの .htaccess に下記を追加。
<Files xml-rss*.php>
LayoutIgnoreURI *.php
</Files>
セキュリティ対策を強化
2006年10月現在、Nucleusのコアファイルに対する修正ファイル(globalfunctions.php)が公開されてますので適用するといいです。
なんらかの事情でこの修正ファイルを適用できない場合は、セキュリティ修正の済んでないプラグインを利用する場合に備えてパッチプラグインを入れておくと安心。
2007年11月現在、Ver3.3にはこれらの修正が取り込まれているため、ここに書いたパッチプラグイン等を入れる必要はないです
- globalfunctions.php (ver3.23 sp3)…コアの脆弱性の修正。怪しいURLパラメータでのアクセスがあったときに管理操作履歴に記録を残してくれる機能もあり。
- NP_0PatchBlogid…パッチプラグイン。
- media.php (media-tocu-dirs) …画像サムネイルやディレクトリ作成が可能。セキュリティ修正にも対応(magic_quotes_gpc = Off である必要あり)。追記:現在は、複数ユーザーで使う際の管理権限に配慮したNP_ImageManagerが推奨されています。
Nucleus本体も、プラグインも、新しいバージョンが出てるかどうかチェックすることをお忘れなく。
s223ユーザ:
私もXREAでNucleusでブログを運営しているのですが、
3ヶ月ほど前からMySQL接続が不安定でして、ブログ参照、投稿がままならない状態です。
XREAの同時接続可能数は12と聞いていまして、最初それを疑ったのですが
デフォルトスキンで記事のほとんどない状態で試しても接続エラーが出ますので
原因は違うとみており、mysqlのソケットを疑っているのですが、使うソケットは
mysqlとphpで違いはなさそうです(/tmp/mysql.sock)。SSHでmysqlに直接接続しても
同じように接続エラーが頻発するのでnucleusの問題だけではないのではと
サポートフォーラム、メールサポートに問い合わせても有力な回答なしで、
このままいくとレンタルサーバ見直しかなと思っている今日この頃。
このような症状を聞いたことがある、またはご経験がありましたら助言いただけますと幸いです。
長文失礼しました。