atijust's blog

技術的なこととか。

さくらVPS(CentOS6)にNginx+PHP5.5+MySQL5.6の環境を構築する(設定編)

インストール編の続きです。

動作確認用のLaravelを用意する

/var/www/testに動作確認用にLaravelをインストールします。

/var/www/testは所有ユーザ、グループともに作業用ユーザ(atijust)にし、nginxユーザの補助グループをatijustにすることで、NginxとPHP-FPM(nginxユーザ・グループで動作するように設定済み)からアクセスできるようにします。一般ユーザのumaskはデフォだと0002になってて、app/storageはatijustグループにも書き込み権限があるので、パーミッションを変更する必要はありません。

# usermod -G atijust nginx
# mkdir -p /var/www/test
# chown atijust:atijust /var/www/test
$ cd /var/www/test
$ composer create-project laravel/laravel --prefer-dist .

うーん、NginxやPHP-FPMに作業用ユーザのグループの権限を与えるのは微妙に気持ち悪いのでその辺りは要研究ですね。www-dataみたいなユーザとグループを作って、/var/www以下を所有させる。/var/wwwにセットグループIDして、nginxやatijustの補助グループをwww-dataにするとかかなぁ。ベストプラクティスが知りたい。まぁ、時間有るときに調べてみる感じで。

Nginxの設定

細かい設定はおいおいやるとして、取り敢えずLaravelが動くように最低限の設定を行います。

/etc/nginx/conf.d/default.conf

server {
    listen       80;
    server_name  203.0.113.1;

    root   /var/www/test/public;
    index  index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

nginxに設定ファイルを再読み込みさせます。

# service nginx configtest
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
# service nginx reload

http://203.0.113.1/にアクセスしてみます(203.0.113.0/24はRFC6890の例示用アドレスです)。

f:id:atijusts:20140105185556j:plain

成功っぽい。

LaravelからMySQLが使えるかも試してみましたがこちらも問題なし。

以上、さくらVPSにNginx+PHP5.5+MySQL5.6の環境を構築してLaravelを動かしてみました。プロダクトとして使うにはまったくもって設定が適当過ぎますが、取り敢えず開発中のアプリをデプロイして遊ぶ分にはこれで十分でしょう。願わくばもうちょっと簡単にセットアップしたいので、その辺は今後の課題かな。