scuttleを今更導入

 さくらインターネットのレンタルサーバscuttleを入れるべく苦闘した。ですます調とである調+体言止めが混じっていますが、ご容赦を。

 結論から言うと、注意点は2つ。
1つは、さくらインターネットのMySQLのcharacter_set_serverがujisなのが問題だった事。
includes/db/mysql.phpのmysql_query()を実行している場所の手前に全て、「mysql_query(“set names utf8”);」を追加した。

 もう一つは、web上に多くでいる情報である、「さくらインターネットでは$_SERVER[‘PATH_INFO’] という記述を $_SERVER[‘ORIG_PATH_INFO’] に置換」が、仕様変更により不要になっている事。

 参考にしたのは以下のサイト。



 基本は、「Web Seeker – ソフトウェアインストールMEMO – Scuttle」を参考にした。

 しかし、前述の通り、「さくらインターネットでは$_SERVER[‘PATH_INFO’] という記述を $_SERVER[‘ORIG_PATH_INFO’] に置換」が、仕様変更により不要なので置換しないように。私はこれに気づくまでに、まず3時間は時間を潰しました。

 そして、character_set_serverの問題だが、まず、確認方法から。

 さくらインターネットのレンタルサーバではサーバコントロールパネルの[アプリケーションの設定]にある[データベースの設定]からデータベースの[管理ツール]を呼び出す。

 そして、[SQL]タブで「SHOW VARIABLES;」と入力して実行し、環境を見ると「character_set_server:ujis」となっているのが判る。
他のcharacter_setはutf8なのに…。これのせいで、文字コード関係のエラーが多発しました。私はこれで5時間は時間を潰しました。
折角、MySQLの文字セットがutf8なのに、台無しです。

 そこで、「これから行う処理は全部utfでよろしく!」の意味の命令である「mysql_query(“set names utf8”);」を追加しました。

 まず、[管理ツール]の自分が使うデータベースを選んで[操作]タブの一番下にある[照合順序]をutf_general_ciもしておく。
その後に「tables.sql」のSQLを[SQL]タブから入力してテーブルを作る。
さらに、前述の通り「includes/db/mysql.php」のmysql_query()を実行している場所の手前に全て、「mysql_query(“set names utf8”);」を追加。

 また、bookmark時にurlを入力するとタイトルを補完してくれる機能も文字コード関係の問題を起していたので修正。

 まず、「bookmarks.php」の
「preg_match_all(‘//i’, $html, $matches);」を
「preg_match_all(‘//i’, $html, $matches);」に修正。
さらに、
「$encoding = strtoupper($matches[1][0]);」の後ろに
「if($encoding == “”){$encoding= “auto”;}」を追加。

 ついでに、「ajazGetTitle.php」の
「// ADD A BOOKMARK」以下の「$title,$description,$categories」を「trim($_POST[XXX]);」で取得した後に、確実にutf-8に変換するように小細工。「$title = mb_convert_encoding($title, “UTF-8”, “auto”);$description = mb_convert_encoding($description, “UTF-8”, “auto”);$status = mb_convert_encoding($status, “UTF-8”, “auto”);$categories = mb_convert_encoding($categories, “UTF-8”, “auto”);」
最後のは、いらないかもしれません。

 何はともあれ、blogにwordpress、サイトのJoomlaを入れる時の参考にはなりそうな経験が積めたので良しとします。

This entry was written by Ez-man , posted on 金曜日 4月 17 2009at 09:04 pm , filed under 技術覚書 . Bookmark the permalink . Post a comment below or leave a trackback: Trackback URL.

コメントを残す

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>