#author("2020-02-28T08:07:54+00:00","default:wikiwriter","wikiwriter") #author("2020-03-03T01:47:00+00:00","default:wikiwriter","wikiwriter") [[Nginx]] &tag(Nginx/設定); *目次 [#bc5e42a0] #contents *関連ページ [#u1e285ac] *参考情報 [#w2825af1] -[[Nginx + php-fpm をさくらのVPSで使ってみた | レンタルサーバー・自宅サーバー設定・構築のヒント:http://server-setting.info/centos/apache-nginx-9-sakura-vps.html]]…コア数の設定など -[[Nginxを使ったもう一歩進んだWordPressチューニング | cloudrop:http://cloudrop.jp/wordpress/more_tuning_on_nginx]] *設定の基本 [#u41194c9] -CentOS6の場合/etc/nginx/conf.d/default.confを編集。 **location [#ce671ac3] -[[nginx連載5回目: nginxの設定、その3 - locationディレクティブ - インフラエンジニアway - Powered by HEARTBEATS:https://heartbeats.jp/hbblog/2012/04/nginx05.html]] -基本。プレフィックス の有無により優先順位が異なる。以下はプレフィックスなしのパターン。 #pre{{ location / { [locationコンテキスト] } }} *PHP-FPMとの連携 [#x013328e] -CentOS6の場合default.confを以下のように設定する。最後のlocationディレクティブが肝心。 #pre{{ server { listen 8080; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/log/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; } (以下中略) location ~ \.php$ { root /usr/share/nginx/html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } }} -ポート番号を変える場合iptablesで穴を買えることを忘れないように。locationディレクティブでrootとfastcgi_paramを変更すること。 -/etc/php-fpm.d/www.confの編集。Unix Socketを使う場合さらなる変更が必要。 #pre{{ user = nginx group = nginx }} **Unix Socketで連携 [#u1eae7b4] -/etc/php-fpm.d/www.confの編集 listen = /var/run/php-fpm/www.sock -/etc/nginx/conf.d/default.confの編集。先頭にunixが必要なことに注意。 fastcgi_pass unix:/var/run/php-fpm/www.sock **タイムアウトする場合の調節 [#ee4da60d] -[[php-fpm+nginxで「504 Gateway Time-out」が出た時の対処法 - oneのはてなダイアリー:http://eno0514.hatenadiary.jp/entry/20150614/1434228237]] -/etc/php5/fpm/php.ini max_execution_time = 180 -/etc/php5/fpm/pool.d/www.conf request_terminate_timeout = 180; -/etc/nginx/nginx.conf #pre{{ http { fastcgi_read_timeout 180; } }} **fastcgi_params を include する場所について。 [#d218db04] -[[nginx fastcgi_params を include する箇所、割と皆間違ってるよね? - Qiita:https://qiita.com/kotarella1110/items/f1ad0bb40b84567cea66]]によると、includeしたあとに個別にパラメータを設定しないと意味ないらしいが、[[バグラボ!: nginx fastcgi_params を include する箇所:http://www.buglabo.com/2016/10/nginx-fastcgiparams-include.html]]によるとnginxのバージョンによってfastcgi_paramsに設定が含まれていない場合があるので、後でincludeしても実質問題はないようだ。 -default.confの設定自体がinclude最後になっているのは本質的にはおかしいということなのか。 *WordPress用の設定(ルート) [#b2b4c6c1] **設定ファイル [#r5d5d352] -サブディレクトリ運用ははまりやすいのでルートで運用するのが簡単。 -default.confのサンプル。 #pre{{ server { listen 8080; server_name centos6maroon; index index.php; root /home/sora/public_html/wp2; location / { try_files $uri $uri/ /index.php?$query_string; } location ~* /wp-config.php { deny all; } location ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } }} -http://centos6maroon:8080を開く。 **php-fpmの設定 [#j8ac159e] -[[CentOS php-fpmの設定を変更してメモリ消費を減らした方法 | CrystalSnowman.com:http://www.crystalsnowman.com/?p=1309]] #pre{{ pm = dynamic pm.max_children = 8 pm.start_servers = 4 pm.min_spare_servers = 2 pm.max_spare_servers = 6 pm.max_requests = 500 }} **トラブルシューティング [#z8705cda] -PHPがダウンロードされてきた: 設定が正しい場合ブラウザのキャッシュの可能性あり。他のブラウザやcurlで試してみる。 -forbiddonが表示された: try_filesの設定かも? *WordPress用の設定(サブディレクトリ) [#d51c884e] -[[nginxでサブディレクトリに配置したWordpressが動かないや -> パーマリンクの設定だった - 珈琲駆動開発:http://totutotu.hatenablog.com/entry/2015/10/25/nginx%E3%81%A7%E3%82%B5%E3%83%96%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%AB%E9%85%8D%E7%BD%AE%E3%81%97%E3%81%9FWordpress%E3%81%8C%E5%8B%95%E3%81%8B%E3%81%AA%E3%81%84%E3%82%84_-%3E_]] PENDING **設定ファイル [#c7a90768] -以下のような設定ファイルを使用する。 #pre{{ server { listen 80; server_name localhost; index index.php; root /home/sora/public_html; location /wordpress { try_files $uri $uri/ /wordpress/index.php?$query_string; } location ~* /wp-config.php { deny all; } location ~ \.php$ { fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }} -ポイントはrootを外出しにして、最後の「location ~ \.php$ {」に含まないことぐらいか。 *トラブルシューティング [#y5e1e4b6] **ダッシュボードが表示されない [#ed971122] -nginxのエラーログを確認する。以下のようなエラーが表示されていた場合PHP-FPMのメモリ割り当てがたらない。 Allowed memory size of 134217728 -php.iniでmemory_limitを変更する。 memory_limit = 512M