#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


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS