前回からの続き、主にwebサーバー(nginx + php-fpm)に対するの設定を書き残していきます。
chanshige.hatenablog.com
※ yum install するとき -y をつけてる記事が多いですが、インストールされる内容(依存関係のパッケージ)など眺めながらやるのもオススメですので、書いてません。
では、nginxをインストール
# yum install nginx 自動起動設定もやっておく # systemctl enable nginx ※ nginx.service って明示的に宣言するのもあり
nginxの設定ファイルを用意する
# vi /etc/nginx/conf.d/dev.conf
server { listen 81; server_name 192.168.33.10:81; error_log /var/log/nginx/error_81.log; access_log /var/log/nginx/access_81.log; root /home/vagrant; index index.html index.htm index.php; location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
URLはhttp://192.168.33.10:81
、ドキュメントルート(root)は/home/vagrant
にしてますが、その他諸々も自由に変えてください。
php-fpmの設定を変更する
# vi /usr/local/phpenv/versions/7.2.13/etc/php-fpm.d/www.conf
user/group を適宜調整してください。よくあるのはどちらもnginx
です
; Unix user/group of processes ; Note: The user is mandatory. If the group is not set, the default user's group ; will be used. user = vagrant group = vagrant
phpのバージョンに合わせた、php-fpmをサービス登録する。
既存ファイルを参考にして作る記事や説明が多いですが、phpenvに同梱されているのでコピーして使います。
php7.2 を選択中なので、こちらを使う ※ systemd 配下に置くサービス名はわかりやすくバージョンつけておく # cp /usr/local/phpenv/versions/7.2.13/etc/systemd/system/php-fpm.service /usr/lib/systemd/system/php-fpm-7.2.13.service
ここまでできたら、あとはnginx, php-fpm を起動すれば完了です。
# systemctl start php-fpm-7.2.13.service # systemctl start nginx.service
phpのバージョンを変更するときは、以下をやってください。
7.2のphp-fpmとnginxを終了 # systemctl stop php-fpm-7.2.13.service # systemctl stop nginx.service バージョン毎のphp-fpm.serviceをコピー cp /usr/local/phpenv/versions/x.x.x/etc/systemd/system/php-fpm.service /usr/lib/systemd/system/php-fpm-x.x.x.service 起動 # systemctl start php-fpm-x.x.x.service # systemctl start nginx.service
この作業を通して、アプリケーションやサイト1つ動かすにしても、サーバー側では様々な設定が行われて動いてる(公開できている)ことがよくわかります。
こういったことを気にしなくても、ボタン一つで環境が立ち上がって、快適に使える環境を提供しているサービスがあり、それを支えてる方々は真面目にすげーなと思うばかりです。
今回の手順に関して、細かい内容はググったらだいたい出てくるので割愛してますが、世の中に向けて公開するサーバーを構築する場合は、もっと(設定を)やらないといけないことがたくさんあるので、あくまでもローカルで楽しんでくださいね😂
近いうちに、Dockerを使って開発環境作ってみた話を書こうと思います。
おわり