WEBサーバの構築
前回の続き
というわけで、今回はWebサーバをnginxとして、PHPを使えるようにし、SSL通信ができるようにしていきます。
nginxとphp-fpmを連携
apacheではmodule/cgiがあり、CGIはリクエストごとにプロセス生成されて起動に時間かかったりするので、
moduleを使っていた。
apacheのモジュールも1リクエストごとのメモリ使用量も大きくなり大量リクエストを捌くにはリソース消費が激しい。
軽量にうごかせられるように、サーバ上で、PHPをAPサーバとして起動させてWEBサーバとPHPのAPサーバ間で連携させて動かすことでプロセスを分離して効率化するようなイメージなのかな。
PHPマニュアルを参考にしてnginxとPHP-fpmを設定。
マニュアル記載と違うのは、php-fpmのunixソケットを指定するようにしたところあたり。
nginxのvirtualHost.conf
location ~ \.php$ {
root ***path_to_documentroot***;
include snippets/fastcgi-php.conf;
# With php-fpm (or other unix sockets):
#fastcgi_index index.php;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
sites-availableを設定ファイルを置いて、sites-enabled配下にシンボリックリンクを貼るのが流儀のようでlnしていたはずなのに、いつの間にかsites-enabled配下のファイルが実ファイルになっていたのに気が付かず数時間設定が反映されないトラブルが・・・。emacsでシンボリックリンクを編集したら実ファイルなったりするんだろうか・・・。
SSLの設定
無料のSSL証明書発行機関として、Lets Encryptというのがある。
これを使ってWEBサーバがSSL通信できるように設定する。
こちらがすごく参考になりました。ありがとうございます。
次は、phpの設定周りをやって、wordpressのインストールまでやります。