Apache2からNginxへの移行を進めていて、UserDir的なことをしようと思ったら、mod_userdirを有効にする感じではなかった。Debian GNU/Linuxであれば、/etc/nginx/sites-available/defaultを編集するだけでよい。PHPも動くようにしたいので、ついでにそれも設定する。
$ sudo vim /etc/nginx/sites-available/default ...省略 # 最初からコメントで「PHP使うならindex.phpを追加しなさいよ」と書いてある。 # Add index.php to the list if you are using PHP index index.php index.nginx-debian.html index.html index.htm; ...省略 # for UserDir location ~ ^/~([^/]+)/(.+\.php)$ { alias /home/$1/public_html/$2; fastcgi_pass unix:/var/run/php5-fpm.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; } location ~ ^/~(.+?)(/.*)?$ { alias /home/$1/public_html$2; } ...省略
基本的には、正規表現で拾ったものを、aliasに渡しているだけ。これで再起動して設定を反映すればおk。
$ sudo systemctl restart nginx
とっても簡単。本日も先人に感謝。