===== WestHostでNucleusを使う ===== ==== PHPとMySQLのインストール ==== 管理画面でPHP 4.x、MySQL 4.1、phpMyAdmin、eAcceleratorをインストールしておく。 eAcceleratorはPHPのプログラムをキャッシュするアクセラレータ。サイトがぐっと速くなる。 ==== MySQLの設定 ==== /etc/my.cnf [mysqld] default-character-set = utf8 character-set-server = utf8 collation-server = utf8_general_ci init-connect=SET NAMES utf8 [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8 ==== PHP の設定 ==== /usr/local/lib/php.ini register_globals = Off ; for security [mbstring] mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.encoding_translation = Off ==== TIMEZONE ==== /etc/TIMEZONE を編集 #TZ=US/Eastern TZ=JST-9 /etc/rc.d/rc のどこか最初のほう TZ="JST-9" export TZ それから、/etc/sysconfig/init というファイルを作る。中身は !#/bin/sh export TZ="JST-9" chmod 755 /etc/sysconfig/init しておく。 上記を設定して、restart。 ==== Nucleusからの接続文字コードをUTF-8に ==== MySQL 4.1から内部で使う文字コードが自由に選べるようになった。このため、接続するクライアント側の文字コードとデータベース側の文字コードが違っている場合にはデータベース側で文字コード変換をしてくれる。デフォルトのクライアント側の文字コードがISO-8859-1になっている場合、PHPからMySQLにアクセスするとき、接続する文字コードを指定しないとMySQLが内部のUTF-8のコードを無理やりISO-8859-1に変換して送り出してしまう(逆に、書き込むときはUTF-8の文字列をISO-8859-1だと思って逆変換してしまう)。これを避けるするために、念のためにNucleusのコアにちょっと手を入れる。 nucleus/lib/globalfunctions.phpのfunction sql_connect()の中。return $connection;の前にmysql_query('SET NAMES utf8');を追加。 /** * Connects to mysql server */ function sql_connect() { global $MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD, $MYSQL_DATABASE; $connection = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD) or startUpError('

Could not connect to MySQL database.

','Connect Error'); mysql_select_db($MYSQL_DATABASE) or startUpError('

Could not select database: '. mysql_error().'

', 'Connect Error'); mysql_query('SET NAMES utf8'); return $connection; }