Alpineでnginx
さくらのVPS で Alpine Linux を立ち上げられたので、さて次は Webサーバーを何にしようかと考えました。自宅サーバーの時は lighttpd を使っていたのですが、KUSANAGI で nginx の軽さを実感してから、どうも気になります。
せっかくですので、初めての nginx 導入に挑戦することにしました。ネットで調べてみると「Alpine Linuxでnginx + php-fpmな環境を構築する」こちらの方のそのものズバリな情報が。ありがたいです。
Alpine Linux 3.6.2 なので php は php5 と php7 の両方が含まれています。新しもの好きなので php7-fpm を選択しました。設定に使うファイルは、メインの php-fpm.conf でグローバル設定をしてから /etc/php7/php-fpm.d/ にあるファイルを読み込むようになっています。
/etc/php7/php-fpm.d/www.conf
デフォルトは www.conf になっています。PostgreSQL のデータディレクトリの時も感じましたが、設定ファイルの置き場所が debian 風になってきてます。debian 使いとしては分かりやすくていい感じです。コメントに使う文字は [;] セミコロンなのでご注意下さい。
大事なポイントは unix ソケットのユーザーを nginx にあわせることです。今回はデフォルトなので
listen.owner = nginx
listen.group = nginx
とすれば大丈夫。
nginx 側の設定ファイルはメインが /etc/nginx/nginx.conf で、/etc/nginx/conf.d/ にあるファイルを読み込む設定です。ヴァーチャルサーバーの設定はこちらに書くのがお作法。デフォルトでは default.conf があります。これはホスト名が該当しない場合に 404 not found を返すための設定なので、php とあわせて www.conf を作りました。中身はこんな感じです。
server {
listen 80;
server_name example.com;
location ~\.php$ {
root /var/www/localhost/htdocs;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
これで php を実行してくれます。nginx はヴァーチャルホストがデフォルトなんですね。Apache より設定が直感的で分かりやすいように思いました。
ディスカッション
コメント一覧
まだ、コメントがありません