メニューを閉じる

テクノデジタルグループ

メニューを開く

2023.05.16

インフラ

エックスサーバーにWordPress+Laravel環境構築

レンタルサーバー(エックスサーバー)にWordpress+Laravelの相乗り環境を作りました。

ゴールイメージ

– https://hogehoge.xsrv.jp/ →WPの画面
– https://hogehoge.xsrv.jp/app/ →Laravelの画面

 

【WPとLaravel相乗りの構造】

/home/userdir
│
├──ドメイン用ディレクトリ
│ ├──laravel
│ │  └──app(Laravelプロジェクト)
│ │
│ └──public_html(WordPress)
│    └──app(上記Laravelプロジェクトへのシンボリックリンク)

【上記構成の理由】
当初/home/userdir直下にlaravelアプリを配置し、ドメイン用ディレクトリよりシンボリックリンクで参照させたがLaravel側の.htaccessが解釈されなかった。
Xserverで用意された”ドメイン”(ドキュメントルートを含むディレクトリ)以下でないと.htaccessが正常に動作しないものと思われた
(エックスサーバ側に問い合わせたところ明確な回答は得られませんでしたが、現状はこの構成で実現しています。認識間違ってたらご指摘ください。。。)

■事前準備

※Wordpressが簡単インストールで入っている状態を前提としています。

1)SSHの設定
[SSH有効化]- SSH設定:ONにする
– 公開鍵認証用鍵ペアの生成
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

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]

# END WordPress
==========

※RewriteRule ^app/(.*)$ app/$1 [QSA,L]
を追記

以上

【参照】

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/


【記事への感想募集中!】

記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!
  • こんな記事が読んでみたい、こんなことが知りたい、調べてほしい!という意見も募集中!
  • いただいた感想は今後の記事に活かしたいと思います!

感想フォームはこちら


【テクノデジタルではエンジニア/デザイナーを積極採用中です!】

下記項目に1つでも当てはまる方は是非、詳細ページへ!
  • 自分でアプリを作ってみたい
  • ITで世の中にワクワクを生み出したい
  • 使いやすさ、デザインにこだわったWebサイトを開発したい

採用情報の詳細はこちら


Qangaroo(カンガルー)

  • 徹底した見やすさと優れた操作性で、テストの「見える化」を実現。
  • テストの進捗が見える。開発がスマートに進む。
  • クラウド型テスト管理ツール『Qangaroo(カンガルー)』

【テクノデジタルのインフラサービス】

当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。

https://www.tcdigital.jp/infrastructure/

最近の記事