レンタルサーバーへ移行
- 2012年07月24日
- 本番環境へ移行
ローカルの環境で開発してきたファイル群をレンタルサーバーの本番環境に移行します。
基本的には問題なく動くものだと思っていましたが、PHPのインクルードファイル関連でつまづきましたので記録しておきます。
使ったソフトは、ffftpとteratermです。
まずはteratermからレンタルサーバーにログインして見られてはいけないファイル達のためにディレクトリを作成。
一応home配下は他のユーザにはread権限が与えられていないようですが、念のためchmodしました。
705ってのがちょっと不安だけど、これでレンタルサーバー上の他のユーザからは見えず、Webサービスのプロセスからは読み取れるようになるはず。
% mkdir private_dir
% chmod 705 private_dir
次にffftpで.htaccessをprivateディレクトリ配下に置きます。
.htaccessの中身はこれだけ
Order allow,deny
deny all
これでブラウザからprivateディレクトリが見えなくなっていることを確認しました。
次に大事なファイル達をアップロードです。
アップロードが完了したら cron から実行させるつもりでいた phpファイルがちゃんと動くのか実行してみました。
ところがどうにも上手くいかない。
MySQLに接続するところで失敗しているようすです。
で、いろいろ調べてみると include や fopen で相対パスでファイルしているところが原因のよう。
ま、このあたりは危ないかなとは思っていたんですけど。
google先生に聞いてみて、今まで
include("./相対パス");
と書いていたところを
include_once(realpath(dirname(__FILE__)) . "/相対パス");
に変更しました。
realpath()は、シンボリックリンクなどを解決してくれる関数だそうで、これはもしかしたら不要かな?
dir_name(__FILE__)というのは、このファイル自身があるディレクトリの絶対パス
そんで、includeはinclude_onceにした方がよいようなので、ついでに変更
これでcronから実行させる部分は上手くいきました。