6回目-10.Nginxでバーチャルホスト設定確認

さくらVPSCentOS 7 2週間無料のお試し期間 6回目

一覧

 状態:-  閲覧数:543  投稿日:2018-02-15  更新日:2018-02-15
fastcgi_pass
・「127.0.0.1:9000;」と「php-fpm.sock;」の2種類ある理由を調査

PHP-FPMと連携する方法は2種類ある

 閲覧数:122 投稿日:2018-02-15 更新日:2018-02-16 

2種類


TCP/IP
TCPソケット(INETドメインソケット)について

UNIXドメインソケット
・早いと言われている
・Nginxではサポートしているが、Apacheではサポートしていない
UNIXドメインソケットは、TCPソケット(INETドメインソケット)よりも遥かにスループットが優れてるらしい


TCP/IP


TCPソケット(INETドメインソケット)ではない(と思う)
fastcgi_pass   127.0.0.1:9000;
MacでNingx、PHP7.1、php-fpmで環境構築(メモ)
Nginxとphp-fomを使ってバーチャルホストを立ててみた
CentOS + nginx + PHP環境でのnginxの設定めも 

UNIXドメインソケット


unixドメインソケットを使う(PHP-FPMと連携)
php-fpm へはソケットで渡す
fastcgi_pass unix:/var/run/php-fpm.sock;
・現在の設定

fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
NginxでWordPressを使う時の設定をまとめてみた
nginxでバーチャルホストを追加する
apache+mod_php を nginx+php-fpmに移行 (+ TCP Connection & File Descriptor)


fastcgi_pass unix:/var/lib/php/php-fpm.sock;
WordPressで複数ドメインを管理する方法【Nginxでバーチャルホスト編】

fastcgi_pass「unix:/var/run/php-fpm.sock;」「unix:/var/run/php-fpm/php-fpm.sock;」

 閲覧数:119 投稿日:2018-02-15 更新日:2018-02-17 

2種類


パスが異なる理由
・「▼/etc/php-fpm.d/www.conf」におけるlisten内容(パス)が異なるため
・php-fpmを再起動すると、ここで指定したパス「php-fpm.sock」が作られる

unix:/var/run/php-fpm.sock;


▼/etc/php-fpm.d/www.conf
listen = /var/run/php-fpm.sock
CentOS7(x86_64)+nginx+PHP7+php-fpm+MySQL5.7環境構築手順

unix:/var/run/php-fpm/php-fpm.sock


▼/etc/php-fpm.d/www.conf
listen = /var/run/php-fpm/php-fpm.sock
Cento7にphp-fpmをインストールし、nginxと連携する
nginx + php-fpm socketで接続する
apache+mod_php を nginx+php-fpmに移行 (+ TCP Connection & File Descriptor)

杞憂だったこと


PHP-FPMインストールディレクトリが異なっているから?
・全然関係なかった
・「▼/etc/php-fpm.d/www.conf」におけるlisten内容(パス)による相違
・設定変更して再起動する度、指定したディレクトリに「php-fpm.sock」が作られる

現状確認


$ ls -la /var/run/
合計 44
drwxr-xr-x  29 root  root            900  2月 14 10:55 .
dr-xr-xr-x. 17 root  root           4096  2月  9 12:25 ..
drwxr-xr-x   2 root  root             60  2月  9 12:25 NetworkManager
drwxr-xr-x   2 root  root            100  2月  9 12:25 abrt
-rw-r--r--   1 root  root              4  2月  9 12:25 atd.pid
-rw-r-----   1 root  root              4  2月  9 12:25 auditd.pid
-rw-r--r--   1 root  root              4  2月  9 12:25 chronyd.pid
drwxr-xr-x   2 root  root             40  2月  9 12:25 console
----------   1 root  root              0  2月  9 12:25 cron.reboot
-rw-r--r--   1 root  root              5  2月  9 12:27 crond.pid
drwxr-xr-x   2 root  root             60  2月  9 12:25 dbus
prw-------   1 root  root              0  2月  9 12:25 dmeventd-client
prw-------   1 root  root              0  2月  9 12:25 dmeventd-server
drwxr-xr-x   2 root  root             80  2月  9 12:25 fail2ban
drwxr-xr-x   2 root  root             40  2月  9 12:25 faillock
drwx--x---   3 root  apache           60  2月 12 11:05 httpd
drwxr-xr-x   4 root  root            100  2月  9 12:25 initramfs
drwxr-xr-x   6 root  root            120  2月 17 03:47 lock
drwxr-xr-x   3 root  root             60  2月  9 12:25 log
drwxrwxr-x   3 root  libstoragemgmt   60  2月  9 12:25 lsm
drwx------   2 root  root             80  2月  9 12:25 lvm
-rw-r--r--   1 root  root              4  2月  9 12:25 lvmetad.pid
-rw-r--r--   1 root  root             33  2月  9 12:25 machine-id
drwx--x---   2 root  root             40  2月  9 12:25 mdadm
drwxr-xr-x   2 root  root             60  2月  9 12:25 mount
drwxrwxr-x   2 root  root             40  2月  9 12:25 netreport
-rw-r--r--   1 root  root              6  2月 14 10:55 nginx.pid
drwxr-xr-x   2 root  root             60  2月 12 11:34 php-fpm
srw-rw----   1 nginx nginx             0  2月 12 11:34 php-fpm.sock
drwxr-xr-x   2 root  root             40  2月  9 12:25 plymouth
drwxr-xr-x   2 root  root             40  2月  9 12:25 ppp
drwx------   2 rpc   rpc              40  2月  9 12:25 rpcbind
srw-rw-rw-   1 root  root              0  2月  9 12:25 rpcbind.sock
drwxr-xr-x   2 root  root             40  2月  9 12:25 sepermit
drwxr-xr-x   2 root  root             40  2月  9 12:25 setrans
-rw-r--r--   1 root  root              6  2月 11 13:10 sshd.pid
drwx------   2 root  root             40  2月  9 12:25 svnserve
-rw-------   1 root  root              4  2月  9 12:25 syslogd.pid
drwxr-xr-x  17 root  root            440  2月 12 13:10 systemd
drwxr-xr-x   2 root  root             60  2月  9 12:25 tmpfiles.d
drwxr-xr-x   2 root  root             60  2月  9 12:25 tuned
drwxr-xr-x   7 root  root            160  2月 10 11:44 udev
drwxr-xr-x   3 root  root             60  2月 17 11:09 user
-rw-rw-r--   1 root  utmp           3840  2月 17 11:09 utmp
-rw-------   1 root  root              0  2月  9 12:25 xtables.lock


$ ls -la /var/run/php-fpm
合計 4
drwxr-xr-x 2 root root 60 2月 12 11:34 .
drwxr-xr-x 29 root root 900 2月 14 10:55 ..
-rw-r--r-- 1 root root 5 2月 12 11:34 php-fpm.pid


▼/etc/php-fpm.d/www.conf / listen = /var/run/php-fpm/php-fpm.sock

 閲覧数:119 投稿日:2018-02-17 更新日:2018-02-17 

▼/etc/php-fpm.d/www.conf の listen を変更するとどうなるか、試してみる


変更前
・listen = /var/run//php-fpm.sock

変更後
・listen = /var/run/php-fpm/php-fpm.sock

$ sudo vi /etc/php-fpm.d/www.conf
; listen = /var/run/php-fpm.sock
listen = /var/run/php-fpm/php-fpm.sock


$ sudo -s
# vi /etc/nginx/conf.d/default.conf
         #fastcgi_pass unix:/var/run/php-fpm.sock;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;  


# vi /etc/nginx/conf.d/a.conf
         #fastcgi_pass unix:/var/run/php-fpm.sock;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;  


# vi /etc/nginx/conf.d/b.conf
         #fastcgi_pass unix:/var/run/php-fpm.sock;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;  



ブラウザで確認
・http://a.w4c.work/
・http://b.w4c.work/
・http://www.w4c.work/
・http://IPアドレス/
An error occurred.


# ls -la /etc/php-fpm.d/  
                                                                                                 
合計 52
drwxr-xr-x   2 root root    45  2月 17 11:12 .
drwxr-xr-x. 96 root root  8192  2月 12 11:10 ..
-rw-r--r--   1 root root 19188  2月 17 11:12 www.conf
-rw-r--r--   1 root root 19146  1月  2 20:43 www.conf.20180212


# cat /etc/php-fpm.d/www.conf
; listen = /var/run/php-fpm.sock
listen = /var/run/php-fpm/php-fpm.sock


# systemctl enable php-fpm

ブラウザで確認
・http://a.w4c.work/
・http://b.w4c.work/
・http://www.w4c.work/
・http://IPアドレス/
An error occurred.


ここで軽くパニックに陥る

原因判明
・設定変更したら、PHP-FPM再起動も必要
# systemctl restart php-fpm

ブラウザで確認
・http://a.w4c.work/
a

・http://b.w4c.work/
b

・http://www.w4c.work/
・http://IPアドレス/
hoge


このディレクトリにはphp-fpm.sockが作成されない
# ls -la /var/run/
合計 44
drwxr-xr-x  29 root root            880  2月 17 11:41 .
dr-xr-xr-x. 17 root root           4096  2月  9 12:25 ..
drwxr-xr-x   2 root root             60  2月  9 12:25 NetworkManager
drwxr-xr-x   2 root root            100  2月  9 12:25 abrt
-rw-r--r--   1 root root              4  2月  9 12:25 atd.pid
-rw-r-----   1 root root              4  2月  9 12:25 auditd.pid
-rw-r--r--   1 root root              4  2月  9 12:25 chronyd.pid
drwxr-xr-x   2 root root             40  2月  9 12:25 console
----------   1 root root              0  2月  9 12:25 cron.reboot
-rw-r--r--   1 root root              5  2月  9 12:27 crond.pid
drwxr-xr-x   2 root root             60  2月  9 12:25 dbus
prw-------   1 root root              0  2月  9 12:25 dmeventd-client
prw-------   1 root root              0  2月  9 12:25 dmeventd-server
drwxr-xr-x   2 root root             80  2月  9 12:25 fail2ban
drwxr-xr-x   2 root root             40  2月  9 12:25 faillock
drwx--x---   3 root apache           60  2月 12 11:05 httpd
drwxr-xr-x   4 root root            100  2月  9 12:25 initramfs
drwxr-xr-x   6 root root            120  2月 17 03:47 lock
drwxr-xr-x   3 root root             60  2月  9 12:25 log
drwxrwxr-x   3 root libstoragemgmt   60  2月  9 12:25 lsm
drwx------   2 root root             80  2月  9 12:25 lvm
-rw-r--r--   1 root root              4  2月  9 12:25 lvmetad.pid
-rw-r--r--   1 root root             33  2月  9 12:25 machine-id
drwx--x---   2 root root             40  2月  9 12:25 mdadm
drwxr-xr-x   2 root root             60  2月  9 12:25 mount
drwxrwxr-x   2 root root             40  2月  9 12:25 netreport
-rw-r--r--   1 root root              6  2月 17 11:36 nginx.pid
drwxr-xr-x   2 root root             80  2月 17 11:41 php-fpm
drwxr-xr-x   2 root root             40  2月  9 12:25 plymouth
drwxr-xr-x   2 root root             40  2月  9 12:25 ppp
drwx------   2 rpc  rpc              40  2月  9 12:25 rpcbind
srw-rw-rw-   1 root root              0  2月  9 12:25 rpcbind.sock
drwxr-xr-x   2 root root             40  2月  9 12:25 sepermit
drwxr-xr-x   2 root root             40  2月  9 12:25 setrans
-rw-r--r--   1 root root              6  2月 11 13:10 sshd.pid
drwx------   2 root root             40  2月  9 12:25 svnserve
-rw-------   1 root root              4  2月  9 12:25 syslogd.pid
drwxr-xr-x  17 root root            440  2月 17 11:35 systemd
drwxr-xr-x   2 root root             60  2月  9 12:25 tmpfiles.d
drwxr-xr-x   2 root root             60  2月  9 12:25 tuned
drwxr-xr-x   7 root root            160  2月 10 11:44 udev
drwxr-xr-x   3 root root             60  2月 17 11:40 user
-rw-rw-r--   1 root utmp           3840  2月 17 11:23 utmp
-rw-------   1 root root              0  2月  9 12:25 xtables.lock


このディレクトリにはphp-fpm.sockが作成される
# ls -la /var/run/php-fpm/
合計 4
drwxr-xr-x 2 root root 80 2月 17 11:41 .
drwxr-xr-x 29 root root 880 2月 17 11:41 ..
-rw-r--r-- 1 root root 5 2月 17 11:41 php-fpm.pid
srw-rw---- 1 nginx nginx 0 2月 17 11:41 php-fpm.sock


「/etc/php-fpm.d/www.confのみlisten = /var/run/php-fpm.sock」。「/etc/nginx/conf.d/default.confは/var/run/php-fpm/php-fpm.sock」だとどうなるか

 閲覧数:120 投稿日:2018-02-17 更新日:2018-02-17 
▼/etc/php-fpm.d/www.conf
listen = /var/run/php-fpm.sock


▼/etc/nginx/conf.d/default.conf
▼/etc/nginx/conf.d/a.conf
▼/etc/nginx/conf.d/b.conf
listen = /var/run/php-fpm/php-fpm.sock


# vi /etc/php-fpm.d/www.conf
listen = /var/run/php-fpm.sock                                                                                                                               
; listen = /var/run/php-fpm/php-fpm.sock


# systemctl restart php-fpm
# systemctl restart nginx.service

ブラウザで確認
・http://a.w4c.work/
・http://b.w4c.work/
・http://www.w4c.work/
・http://IPアドレス/
An error occurred.


・一致していないと駄目みたい

元に戻す
# vi /etc/php-fpm.d/www.conf
; llisten = /var/run/php-fpm.sock                                                                                                                               
isten = /var/run/php-fpm/php-fpm.sock


最終的なlisten設定

 閲覧数:119 投稿日:2018-02-17 更新日:2018-02-17 
▼/etc/php-fpm.d/www.conf
▼/etc/nginx/conf.d/default.conf
▼/etc/nginx/conf.d/a.conf
▼/etc/nginx/conf.d/b.conf
listen = /var/run/php-fpm/php-fpm.sock


ブラウザで確認
・http://a.w4c.work/
a

・http://b.w4c.work/
b

・http://www.w4c.work/
・http://IPアドレス/
hoge


「▼/etc/nginx/conf.d/b.conf」の「fastcgi_pass」だけコメントアウトしてみる。デフォルト設定が反映されることを期待するがダメ

 閲覧数:122 投稿日:2018-02-17 更新日:2018-02-17 
# vi /etc/nginx/conf.d/b.conf

#fastcgi_pass unix:/var/run/php-fpm.sock;
#fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;

# systemctl restart php-fpm
# systemctl restart nginx.service

ブラウザで確認
・http://a.w4c.work/
a

・http://www.w4c.work/
・http://IPアドレス/
hoge


・http://b.w4c.work/
→「http://www.w4c.work/」へリダイレクトする
hoge



現状の懸念点



PHPのみ使用する場合はこれで問題ないけれども
・他言語(PythonやRuby)使用する場合はこれで大丈夫なのだろうか?

▼/etc/php-fpm.d/www.conf
・PHP以外はこの設定を読み込まないはずなので、これで良いのかも

▼/etc/nginx/conf.d/default.conf
・デフォルトだけれども、意味合い的には他で適合しなかった場合に最後に読み込む設定ファイルのはず
・最初に読み込むわけではない(と思われるため)、多分これで大丈夫なのだと思われ


6回目-9.Nginxでバーチャルホスト設定

6回目-11.Let's Encryptの無料SSL導入



週間人気ページランキング / 9-19 → 9-25
順位 ページタイトル抜粋 アクセス数
1 Nginx設定。エラーログレベル | Nginx(Webサーバ) 16
2 PHP実行ユーザ設定 / CentOS6 / Apache | PHP(プログラミング言語) 15
3 PHPのmb_send_mail関数でメール送信できない | メール処理システム 11
4 9回目-13.MySQL5.7.21設定 | CentOS 7 2週間無料のお試し期間 9回目(さくらVPS) 10
5 tar: これは tar アーカイブではないようです 8
5 ImageMagick と imagick の違い | ImageMagick(ソフトウェアスイート) 8
5 さくらVPS0 8
6 manページ日本語表示 | CentOS 7 (CentOS) 7
6 Python 3.5 アンインストール / yum remove | Python(プログラミング言語) 7
7 ABRT により 問題が検出されました | CentOS 7 (CentOS) 6
7 Reached target Shutdown メッセージが表示されたあと、シャットダウンまたは再起動プロセスがハングアップする | CentOS 7 (CentOS) 6
7 PHPファイルでchmodエラー | PHP(プログラミング言語) 6
7 echo と cat の違い 6
8 FFmpeg 2.8.15 を yum インストール | ソフトウェアスイート 5
8 「設定ファイルに、暗号化 (blowfish_secret) 用の非公開パスフレーズの設定を必要とするようになりました。」対応 5
8 「CentOS6」から「CentOS7」への移行 | CentOS 7 (CentOS) 5
8 「さくらVPS」で、「CentOS6」を「CentOS7」へ変更するためには? | CentOS 7 2週間無料のお試し期間 Link(さくらVPS) 5
9 6回目-10.Nginxでバーチャルホスト設定確認 | CentOS 7 2週間無料のお試し期間 6回目(さくらVPS) 4
9 cronで定期実行しているphpファイルを、コマンドライン経由で即時実行する | cron(Linuxコマンド) 4
9 MySQL 5.5 から 5.6 へのアップグレード | MySQL(データベース) 4
2021/9/26 1:01 更新