nginx のサブフォルダでcakePHP を動かす。 LMDE/debian/ubuntu編
2014年9月3日
nginx のサブディレクトリで cakePHPを動作させる方法のメモです。
ちょっとハマったので、参考になれば・・・
動作環境はLMDEですが、おそらくdebian/ubuntuでも同じだと思います。(無責任・・)
すでにnginx がインストール済みであるということを前提に進めます。
php関連モジュールインストール
[bash]
$ sudo aptitude install php5 php5-fpm php5-common php-pear php5-mcrypt php5-mysql php5-cli php5-gd php-apc php5-curl
[/bash]
php5-fpmの設定調整(不要です)
webをチェックすると、
/etc/php5/fpm/pool.d/www.conf を調整するような記述が見受けられましたが、2014年9月現在では特に調整の必要はナシです。
php5-fpm nginx再起動
[bash]
$ sudo /etc/init.d/php5-fpm restart
$ sudo /etc/init.d/nginx restart
[/bash]
cakephpダウンロード・インストール
nginxのフォルダが /opt/nginx cakePHPのフォルダを /opt/nginx/caketest とします。
cakePHPの最新版をダウンロードしてきます。
[bash]
unzip cakephp-2.4.10.zip
sudo mv cakephp-2.4.10 /opt/nginx/caketest
sudo chgrp www-data /opt/nginx/caketest -R
sudo chmod 775 /opt/nginx/caketest -R
[/bash]
nginx cakePHP連携
[bash]
sudo nano /opt/nginx/conf/nginx.conf
[/bash]
rewriteの設定をすること、入れ子にすることがポイントですかね。
他のサイトを見ると違う方法でもうまく行ってたんですが、自分の場合は
ダメだったので入れ子にしました。
[diff]
server {
listen 80;
server_name localhost;
〜省略〜
location ~ ^/caketest/(.+\.php) {
alias /opt/nginx/caketest/app/webroot/$1;
index index.php;
if (!-e $request_filename) {
rewrite ^(.+)$ /caketest/index.php?q=$1 last;
}
location ~ ^/caketest/(.+\.php) {
alias /opt/nginx/caketest/app/webroot/$1;
fastcgi_pass unix:/var/run/php5-fpm.sock;
# fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_nam$
include fastcgi_params;
}
}
[/diff]
nginx 再起動、動作確認
以下のようなCackPHPのページが出てきたら成功です。
あとはブラウザーに表示されているとおりに、普通に設定すればOKです。

Leave a comment