鶏が口だけでも飛び立ちます

2007/03/28(水)15:43

Dreamhostで文字化けに悩まされる

コンピューター(27)

いろいろなサイトをxrea.comにおいているが、はてなで噂のdreamhost.com と契約した。そして、xrea.comにおいてあるコンテンツをdreamhostへ移動 していた。 xrea.com は年間2,400円と安いのでそのまま使い続けてもいいのだが、すん なり動かないことがあるのでいろいろと苦労している。 dreamhostの方がいろいろ苦労しなくてすむのかなと思っていた。 <openpneの移転> (細かな設定はここを参考にしてほしい。http: //www.openpne.jp/wiki/OpenPNESetup ) 1. dreamhostにドメインを登録 2. dreamhostにopenpneをインストール  /public_html と /openpne の2つの場所にアップロードする。  前者はWebからアクセスできる場所。実際のプログラムは Webからアクセスできない /openpne に設置する。 /openpne/var から下位のディレクトリは、777の書き込み可能なディレクトリにする。(2007/3/28 加筆) 3. dreamhostでmysqlのデータベースを登録 4. openpneのconfig.inc.phpとconfig.phpをdreamhost用に直してアップする。 5. xreaにあるphpmyadminを使って、テーブルを全てエキスポートする。 文字化けを防ぐためphpmyadminは英語で表示にしておく(←念のためで必要 ないかも)エキスポートするときは、画面上に出すよりもgzipのファイルで 落とす方がいいみたい。 6. dreamhostのphpmyadminで、新しく作ったデータベースを選んで、そこで gzipをインポートする。 openpneは文字化けもなくすんなり動いている。 7. dreamhostでcronの登録。sshで入って、crontab -e で簡単に編集できた。 8. ドメインの管理。sns.solisart.com がxreaではなくて、dreamhostへ飛 ぶように設定する。(設定はドメイン管理をするところによって違うと思 う.。ここのドメイン管理はxreaと同じ運営のvalue-domain.comだ) ns sns ns1.dreamhost.com. ns sns ns2.dreamhost.com. しばらくすると、ドメインが移動する。 ただ移行前にテストをするため当初、sns2.solisart.com という形で上記の 動作確認をしていた。よしこれで問題と思い、sns, sns2のdreamhost側と value-domain側の登録をし直すが、すんなりいかない。nslookupですぐに取 れないのだ。1時間ぐらいほっといたら、つながっていた。 9. dreamhostはphpもモジュールとしては起動せず、cgi, fastcgiとして起 動する。ある人のブログで書いてあったが、モジュール動作のときは誰が負 荷をかけているかわからないのであえてcgi, fastcgiで動かしているそうで す。fastcgiのために以下の2つのファイルを置く。webからアクセスしてみ て ps auxとプロセスを確認すると、/dh/cgi-system/php5.cgiが3つ起動し ていたから大丈夫かな。 .htaccess AddHandler fastcgi-script fcg fcgi fpl AddHandler php5-fastcgi .php Action php5-fastcgi /php5-wrapper.fcgi php5-wrapper.fcgi #!/bin/sh export PHP_FCGI_CHILDREN=3 exec /dh/cgi-system/php5.cgi #ただxreaより心もち遅いのは、ロスアンジェルスのサーバーで回線が遠い のか、それともホスティングサービスとしてたくさんのサイトが一つで動い ているせいなのかわからない。私のサイトだったら遅くてもいいんだけれ ど、ビジネスで本格活用するんだったらまだ考慮しなくてはいけないかもし れないなぁ。(でも費用の高いちょっと上のプランだったら、もっとましな 気がします>お客さんごめんね。様子見です) ・dreamhostのphpmyadminについて コントロールパネルでデータベースを定義すると、簡単にデータベースを作 ることができる。その後phpmyadminもインストールせず使用可能。 だけどsolisart.comまるごと移転したわけでないので、最初はphpmyadminが 使えなかった。理由はphpmyadminにアクセスするURLである。 http://solisart.com/dh_phpmyadmin/mysql.solisart.com/index.php ↑ここにアクセスしたら古いサイトへ飛んでしまいアクセスできないじゃな い。dreamhost側のIPアドレスを調べて、以下のように直アクセスでアクセ スするとうまくいきました。 http://(IPアドレス)/dh_phpmyadmin/mysql.solisart.com/index.php <MODxの移転> 実は文字化けの問題は解消していません。ググってみたけれどわかりませ ん。移行はOpenpneと同じ感じです。 1. dreamhostにドメインを登録 2. dreamhostにmodxをインストール 3. dreamhostでmysqlのデータベースを登録 4. phpmyadmin で新しくつくったデータベースを開く。データベースの照合 順序を'utf8-general-ci'に設定する(「操作」メニューで「照合順序」を 選ぶ)。こうすることでテーブルの基本言語がutf8になる 5. /install/ でセットアップ 6. xreaにあるphpmyadminを使って、テーブルを全てエキスポートする。 文字化けを防ぐためphpmyadminは英語で表示にしておく(←念のためで必要 ないかも)エキスポートするときは、画面上に出すよりもgzipのファイルで 落とす方がいいみたい。 7. dreamhostのphpmyadminで、gzipをインポートする。 phpmyadmin でテーブルの内容をみると文字化けは無い。UTF-8ですんなり 入っているようだ。 8. xreaにあったassetsディレクトリをダウンロードして、dreamhostへ上書 きでアップする。 ただしMODxのマネージャー、画面表示とも文字化け。 <対応> 原因を探るべく、まったく別にMODxでサイトを新規作成する。 そして日本語を入れてみると入力・表示とも問題ない。ただし、phpmyadmin では文字化けを起こしている。文字コードを'utf8-general-ci'から'utf8- bin'に変えて再インストールしてみる。これでもだめだった。 Dreamhostの環境はPHP5.2.1とMySQL 5.0.24aだ。 これも調べてみると、MySQL 5の場合は、データベースの文字コードとクラ イアントの文字コードが異なると、MySQLが勝手にコード変換するそうだ。 それが問題となっているような気がする。 対処方法としては、my.iniを書き換えるか、PHPでテーブルに書き込むとき 言語を指定する方法がある。 my.ini [client] default-character-set = utf8 [mysqld] skip-character-set-client-handshake 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の場合 mysql_query("SET NAMES utf8;"); まだ格闘中です。(^^;; .htaccessの設定は必要ありませんでした。 【追記】 MODx 0.9.5ですが、MySQL 5でも同じく phpのソースコード2ヶ所を修正すればよかっただけでした。 http://nanabit.net/modx/install-modx-0.9.2.1.html 他には文字化けの問題はありません。 でも、dreamhostちょっと遅いかな。cgiの方がfcgiより早く感じる。

続きを読む

総合記事ランキング

もっと見る