【nginx】LaravelのサブディレクトリにWordPressを共存させる方法

nginx上でLaravelとWordpressを共存させる

nginx上でルート(/)にLaravelを設置して、サブディレクトリ(/blog/)にWordPressを設置する方法です。

LaravelのURLはexample.com、WordPressのURLはexample.com/blog/で表示させます。

また、実際のLaravelとWordpressのプログラムファイルは、サーバー上で並列なディレクトリにインストールしています。

また、サンプルプログラムはHomestead上で動作確認をしたソースコードになります。
Webサーバーにはnginxを使用しており、PHPはPHP-FPM(FastCGI)で動作させています。

/etc/nginx/sites-available/ドメイン名にあるconfファイルに以下の内容を追記して対応しました。

location /blog{
  //ここで別のディレクトリを見るようにエイリアスを設定
  alias /home/vagrant/WordPressのディレクトリ名;
  //fast-cgiの設定
  location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $request_filename;
    fastcgi_intercept_errors off;
    fastcgi_buffer_size 16k;
    fastcgi_buffers 4 16k;
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
  }
}

注意点

WordPressのパーマリンクは基本の/blog/?p=123 形式でないと動作しません。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です