OpenPNE(2.14.7.1 古w)を自分のサーバに引っ越してみる検証。
ローカルに取ったバックアップから移植作業を行う。
YO$HI鯖に配置
普通ならFTPとかでサーバにアップするんだけど、
俺はWebで公開している階層に共有を張っているのでただのコピー。
厳密にはパーミッションも変更しないといけないけど、実験なので全開w
DBをバックアップした圧縮ファイル達も適当な場所にコピー&解凍。
この解凍作業にリソースを全部持っていかれてWebからのアクセスが遅い遅い。
面倒が無いように、DBの名前を移植元と同じにして新たにDB作成。
create database ※移植元と同じDB名※
インポートも1つずつやるのは面倒なので、これもシェルスクリプト化。
テキストエディタの矩形選択を駆使(?)してサクサクと。
mysql -u※ユーザ名※ -p※パスワード※ ※DB名※ < ※テーブル名※.sql
こんな感じで。
設定変更
このままだと移植元の情報のままなので、config.php を修正する。
(7行目) OPENPNE_URL → 専用にサブドメインを作るのでそのURL
(14行目) username → MySQLに繋ぐユーザ名
(15行目) password → MySQLに繋ぐユーザのパスワード
(16行目) hostspec → 同一サーバ内なので空文字('hostspec' => '',)
(26行目) MAIL_SERVER_DOMAIN → ※メールが飛ばないように適当
(166行目) OPENPNE_SSL_URL → 7行目のURLをhttpsにしたもの
※行数は元の config.php.sample のもの
他、イジってればそのあたりも。
続いて新たなサブドメインを解放するために httpd.conf を変更。
※バーチャルホストに追加するだけ。
で、httpd -k restart
で再起動。
繋いでみましょう
ちゃんとログイン画面が・・・画像が表示されてないけどキニシナイ。
IDとパスワードを入れて
動か・・・・ないッ!
っつーか、即答でログイン画面に戻されるんだが?
仕方なく調査開始
SSLの設定・・・は変なところ無いし・・・。
デバッグモードに切り替えてみよう。
OpenPNEの config.php に OPENPNE_DEBUGGING って項目があるので
そいつの値を1にすれば画面からエラーが確認できる。
ワーニングはいっぱい出てるけど、これ関係ないしなぁ・・・?
例として
$db =& new OpenPNE_DB($this->dsn);
PHP5以降、new は自動的にリファレンスを返すようになったので=& を使用することは非推奨となった。
・・・ので、この場合は
$db = new OpenPNE_DB($this->dsn);
が正しい。
らしい(何
あー、わからん!なんでログ出てないんだよ!!!
(1日悩む)
config.phpを眺めていたら
ちゃんとログ出力の設定があったわw
OPENPNE_VAR_DIR → /log/php_errors.log
OPENPNE_VAR_DIR → OPENPNE_DIR の /var
うわメッチャ出てるわ('A`)
・・・・・ん?
PHP Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/session) in Unknown on line 0
あ、セッションファイルを /var/lib/php/session に書き込もうとして拒否られてるw
面倒だからパーミッションを777にしてやったらログインできるようになった。
よしよし。
しかし移植元の環境には /var/lib/php/session なんて無いし
どこに書き込みに行ってるんだろう・・・。
[]