Nginx(kusanagi)にWordPressでサブディレクトリ運用サイトを追加する際のパーマリンク設定
表題の件、単純にディレクトリを作って、そこにデータを移設、DBを移設してwp-config.phpを用意するだけではダメだった。
どうダメだったかと言うと、トップページはアクセスでき、ログインもできるが、パーマリンクが機能しなかった。
広告
上記の事から、WordPress上の問題ではなく、Nginxのパーマリンク解釈に問題があることがわかった。WordPressのパーマリンクは、Apacheでは.htaccessがmod_rewriteで処理していたが、Nginxでは.htacessが機能しないので、Nginxのconfにちゃんと書いておく必要がある。
URLとサイトの関係
用途 | URL | ディレクトリ |
---|---|---|
メインサイト | https://dacelo.space/ | /home/kusanagi/dacelo/DocumentRoot/ |
サブディレクトリサイト | https://dacelo.space/hoge/ | /home/kusanagi/dacelo/DocumentRoot/hoge/ |
まずは、ディレクトリサイト用のConfを別立てで作っておく。
$sudo vi /etc/nginx/conf.d/sub/hoge.conf
location /hoge { root /home/kusanagi/dacelo/DocumentRoot/hoge; access_log /home/kusanagi/dacelo/log/nginx/hoge_access.log main; error_log /home/kusanagi/dacelo/log/nginx/hoge_error.log; # wordpress パーマリンク設定 try_files $uri $uri/ /hoge/index.php?q=$uri&$args; index index.php; charset utf-8; } |
次に、メインのサイトのConfからincludeする設定を記載する。
$sudo vi /etc/nginx/conf.d/dacelo_ssl.conf
server { (略) include conf.d/sub/hoge.conf } |
あとはNginxを再起動すればOk。
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
$ sudo systemctl restart nginx
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
$ sudo systemctl restart nginx