nginxでPHPのアプリ(とりあえず近くにいっぱいあるEC-CUBE)を動かそうとして3日ほどかかったのではまった点をまとめておきます
nginx.conf
restartしても読み込まれない!
service nginx reload もしくは service nginx stop service nginx start とすべし
locationの変更がよくわからない
~~~
location / {
#root /usr/share/nginx/html;
root /var/www/html;
index index.php index.html;
}
~~~
こう変えてもアクセスすると/usr/share/nginx/htmlへのアクセスになっていた。
解決方法はよくわからず・・・
静的ファイルに関する設定
# serve static files directly
~~~
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico)$ {
root /var/www/html;
access_log off;
expires 30d;
}
~~~
rootを設定するのが必須。これも書かないと/usr/share/nginx/html以下を見にいきます。。
phpに関する設定
~~~
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass backend;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
include fastcgi_params;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
~~~
fastcgi_paramが結構ポイントな気がします。
ここをドキュメントルートのパスにしないとダメっぽいです
~~~
upstream backend {
server 127.0.0.1:9000;
}
~~~
あとはこれを書いておくと裏で動いてくれる模様
バーチャルホストの設定
ぐぐると出てくるのがnginx @ ウィキ – nginx バーチャルホストの方法なのですがver7からは書く場所がちがうっぽい??
設定ファイルはここにありました
~~~
/etc/nginx/conf.d/virtual.conf
~~~
書き方
~~~
listen 80;
server_name hogehoge.jp;
error_log /var/log/nginx/hogehoge_error.log;
location / {
root /var/www/html/hogehoge/html;
index index.html index.php;
if (-f $request_filename) {
break;
}
if (-d $request_filename) {
break;
}
#rewrite ^(.+)$ /index.php?q=$1 last;
}
location ~ .php$ {
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass backend;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html/hogehoge/html$fastcgi_script_name;
include fastcgi_params;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
location ~ /\.ht {
deny all;
}
}
~~~
phpに関する設定を毎回書かなきゃいけないのかがよくわからず・・・
とりあえずこの書き方でEC-CUBEのトップページは表示されました(動作確認はちゃんとしてないので全部は動いていないかもしれない・・・)
と、いうわけではまりポイントは今後も増えていきそうなので随時書き足そう(´д`)
準備は出来たのでようやくアプリの動作確認と負荷テストですねΨ(`∇´)Ψ
コメント