2014年6月4日水曜日

tmpディレクトリの書き込み権限



CakePHPにおいて、app/tmpディレクトリはWebサーバからの書き込みが

出来るようにしておく必要があるので、webサーバの実行ユーザを知るために、

whoami.phpファイルを作成して、以下を記述します。

<?php echo exec('whoami');?>

そして、ブラウザでアクセスすると

root

と表示されました。
apacheで構築した時は、ユーザはapacheだったので、今回の場合だと、ユーザはnginxになると思いましたが違いました。
apache+phpのときとは異なるようで、
さすがにrootで実行するのはよろしくないだろうと思いましたので、
HHVM-FastCGIの実行を、rootで実行していたのを、
適切なユーザで実行するようにします。

今回は、デフォルトユーザの、vagrantユーザで実行しますので、
$ hhvm -m server -vServer.Type=fastcgi -vServer.Port=9000
として、再度、whoami.phpを確認すると、

vagrant

と表示されました。

そうすると、今度は、CakePHPのサイト表示において、
Permission denied
Not a valid stream resource
_cake_model_ cache was unable to write ...
といったWarningが出ます。
CakePHPのapp/tmp/Cache内のファイルがrootで作成されているため、
変更したvagrantユーザでは扱えないといったメッセージです。

ですので、、CakePHPのapp/tmpディレクトリを、
$ sudo chown -R vagrant. app/tmp
として、vagrantで書き込みできるようにします。

0 件のコメント:

コメントを投稿