エックスサーバーにWordpress+Laravel環境構築
ゴールイメージ
- https://hogehoge.xsrv.jp/ →WPの画面
- https://hogehoge.xsrv.jp/app/ →Laravelの画面
【参照】
https://reffect.co.jp/laravel/xserver-laravel8#i https://www.xserver.ne.jp/manual/man_program_soft.php https://kinokomarket.com/web/deploy-webservice-to-xserver/ https://miya-system-works.com/blog/detail/server-xserver-laravel/
【WPとLaravel相乗りの構造】
/home/userdir │ ├──ドメイン用ディレクトリ │ ├──laravel │ │ └──app(Laravelプロジェクト) │ │ │ └──public_html(Wordpress) │ └──app(上記Laravelプロジェクトへのシンボリックリンク)
【上記構成の理由】
当初/home/userdir直下にlaravelアプリを配置し、ドメイン用ディレクトリよりシンボリックリンクで参照させたがLaravel側の.htaccessが解釈されなかった。 Xserverで用意された”ドメイン”(ドキュメントルートを含むディレクトリ)以下でないと.htaccessが正常に動作しないものと思われた (間違ってたらご指摘ください。。。)
事前準備
ssh hogehoge@hogehoge.xsrv.jp -p 10022 -i hogehoge.key
で接続して以下の作業ができるようにする
2)Wordpressが利用しているPHPのバージョン変更 WPの利用バージョンがLaravelで利用する予定のPHPとズレてる場合はあわせとく
例)[PHP ver.切替]-[hogehoge.xsrv.jp]-[選択する] PHP7.4.33(推奨)→ PHP8.1.12 で[変更]
Laravelのインストール
STEP. 1 CLI版のPHPバージョンを切り替える
# シンボリックリンクを作成する cd ~ mkdir bin ln -s /usr/bin/php8.1 $HOME/bin/php ls -la $HOME/bin/ # lrwxrwxrwx 1 hogehoge members 15 May 8 21:27 php -> /usr/bin/php8.1 # .bash_profileを編集する vi .bash_profile ============= # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs #PATH=$PATH:$HOME/bin ←1.コメントアウト PATH=$HOME/bin:$PATH ←2.新たに記述します export PATH ============= # 再読み込み source .bash_profile # バージョン確認 php -v # PHP 8.1.12 (cli) (built: Oct 31 2022 09:40:07) (NTS) # Copyright (c) The PHP Group # Zend Engine v4.1.12, Copyright (c) Zend Technologies
STEP.2 Composerをインストールする
# composer -V # Composer version 1.10.22 2021-04-27 13:10:45 # 初期状態でもV1.10が入っていた # 最新化するため以下の手順を実施 # # Composer公式手順:https://getcomposer.org/download/ #========= php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php php -r "unlink('composer-setup.php');" # ========= # composer.phar がダウンロードされるので、composer のコマンドで実行できるように、PATHが通っている場所へ移動させます。 # →composer.pharをcomposerという名前にして.config/composer/vendor/bin/の下に保存します。 cd ~ mkdir -p .config/composer/vendor/bin/ mv composer.phar .config/composer/vendor/bin/composer # .bash_profileに新たなパスの追加 vi .bash_profile ============= #PATH=$HOME/bin:$PATH ←1.コメントアウト PATH=$HOME/.config/composer/vendor/bin:$HOME/bin:$PATH ←2.新たに記述します ============= # 再読み込み source .bash_profile # 確認 composer -V # Composer version 2.5.5 2023-03-21 11:50:05
STEP.3 Laravelをインストールする
# composerコマンドでLaravelインストーラをグローバルインストールします composer global require laravel/installer
STEP.4 Laravelプロジェクトを構築する
cd ~/hogehoge.xsrv.jp mkdir laravel cd ~/hogehoge.xsrv.jp/laravel composer create-project --prefer-dist laravel/laravel app # 確認 cd ~/hogehoge.xsrv.jp/laravel/app/ php artisan -V # Laravel Framework 10.9.0
STEP.5 Laravelのプロジェクトを公開する
#シンボリックリンクを作成する ln -s ~/hogehoge.xsrv.jp/laravel/app/public ~/hogehoge.xsrv.jp/public_html/app # .htaccess修正 vi /home/hogehoge/hogehoge.xsrv.jp/public_html/.htaccess ========== # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / # rewrite to laravel app RewriteRule ^app/(.*)$ app/$1 [QSA,L] RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress ========== > RewriteRule ^app/(.*)$ app/$1 [QSA,L] を追記
以上