phpフレームワークで人気のある「Laravel(ララベル)」。
今回このLaravelをエックスサーバーの方に入れて開発してみたいと考えたので導入の手順の流れを記録しておきたいと思います。
大まかな流れとしては
エックスサーバーでSSH設定
macのターミナルでSSH接続
エックスサーバーのPHPバージョンの変更
node.jsのインストール
Laravelのインストール
になります。
実際にLaravelを入れる場所ですが、今回はすでにWPで運営しているドメインのディレクトリに実装することにします(今回は開発で運用のためサブドメイン化などはしません)。
アクセスURLは
ドメイン/Laravelインストールディレクトリ名/
になります。
Contents
エックスサーバーの契約
今回導入するのでエックスサーバーの契約が必要です。
エックスサーバーの契約は下記のURLからどうぞ。
エックスサーバーでSSH設定
エックスサーバーのサーバーパネルからSSH設定をクリック。SSH設定を「ON」に変更。
変更後に公開鍵認証用鍵ペアのパスフレーズ(パスワード)を入力後
確認画面へ進むをクリック
そのあと生成するをクリックすると
サーバーID.keyというファイルがダウンロードされます(サーバーIDはエックスサーバー契約時に設定したIDです)。
macのターミナルでSSH接続
続いてエックスサーバーにSSH接続をmacのターミナルで行います。
ターミナルを起動。
秘密鍵の名前変更と場所移動
.sshディレクトリを作成します。
mkdir ~/.ssh
先ほどダウンロードした公開鍵認証用の秘密鍵を.sshディレクトリに移動
mv ~/Downloads/サーバーID.key ~/.ssh/
.sshディレクトリに移動
cd ~/.ssh
秘密鍵の名前を変更(複数ない場合はid_rsaでも可)
mv サーバーID.key id_サーバーID_rsa
権限まわりの設定。
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_サーバーID_rsa
ssh接続できるか確認
sshで入れるか確認
ssh -l サーバーID -i id_サーバーID_rsa サーバーID.xsrv.jp -p 10022
うまく行っている場合はしたのようなのが出ます(初回のみ)
Are you sure you want to continue connecting (yes/no)?
yesと打ってエンター。
Enter passphrase for key ‘id_サーバーID_rsa’:
が出てくるので先ほど設定したパスフレーズを入力。
これでターミナルでssh接続ができるようになりました(抜ける場合はexitと入力してエンター)。
ssh接続の簡略化
毎回上のを入力するのは面倒なので「ssh サーバーID」ですぐ接続できるようにします。
.sshディレクトリ内にconfigファイルを作成
vi ~/.ssh/config
config内に以下を入力(iで入力状態になります)
Host サーバーID
HostName サーバーID.xsrv.jp
Port 10022
User サーバーID
#秘密鍵のファイル名
IdentityFile ~/.ssh/id_サーバーID_rsa
#sshの自動切断を防ぐために記述
ServerAliveInterval 60
入力完了後にescボタンを押して「:wq」を入力して終了します。
下のコマンドを入力して接続できるか確認(#部分が原因でエラーになる場合は#の行部分を削除してください)
ssh サーバーID
Enter passphrase for key 〜が出れば完了です。
windowsの方はエックスサーバーの公式サイトの記事にあるTera Termでの設定をご覧ください。
エックスサーバーのPHPバージョンの変更
SSH接続が成功したら、エックスサーバーのPHPのバージョンを変更します(デフォルトだとPHPバージョンが5系のため7系に変えます)。
PHPバージョンの確認
まずは入っているPHPバージョンの確認。
find /opt/php-*/bin -type f -name ‘php’
phpバージョンの変更・確認
次にbinディレクトリを作成(この中に色々と入れていきます)
mkdir $HOME/bin
使うPHPのバージョンをシンボリックリンクで作成(今回は7.2.6を使います)
ln -s /opt/php-7.2.6/bin/php $HOME/bin/php
.bash_profileのパスを書き換えます
vi ~/.bash_profile
PATH=$PATH:$HOME/bin
を
PATH=$HOME/bin:$PATH
に書き換え後「:wq」で保存して、.bash_profileを再読み込み
source ~/.bash_profile
変更されているか確認
php -v
下のようになっていれば完了です。
PHP 7.2.6 (cli) (built: May 30 2018 21:41:35) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
node.jsのインストール
Laravelと一緒に入れておいた方がいいのがnode.jsなのでこちらもインストールします。
nodebrewを使ってインストール
今回はnodebrewというのを使ってnode.jsをインストールします。
wgetでnodebrewをダウンロード
wget git.io/nodebrew
ダウンロード後セットアップ
perl nodebrew setup
.bashrcにパスをexportします
vi ~/.bashrc
下の行を追加して保存
export PATH=$HOME/.nodebrew/current/bin:$PATH
.bashrcを再読み込み
source ~/.bashrc
無事入ったか確認
nodebrew -v
使うバージョンを設定(今回は8.9.4を使います)
nodebrew use v8.9.4
Laravelのインストール
いよいよお待ちかねのLaravelのインストールです。
composerを使いインストール
composerを使ってLaravelをインストールします(標準で入っています)。
composer require laravel/installer
Laravelアプリを作成
無事インストール出来たらLaravelアプリを入れるディレクトリを作成(任意の名称で可)。
mkdir $HOME/laravel
Laravelディレクトリに入る
cd laravel
Laravelアプリを入れる名前を決めて実行(名前はご自由にどうぞ)
~/bin/vendor/bin/laravel new sample
シンボリックリンクの設定
今回はドメイン直下で運用ではなく、1つのディレクトリを介して表示させるためシンボリックリンクを貼ります。
まずは使いたいドメインディレクトリのpublic_htmlに移動。
cd ~/ドメインディレクトリ/public_html
表示したいディレクトリ名でシンボリックリンクを作成。
ln -s $HOME/laravel/sample/public sample
実際にアクセスできるか確認。
下の画像が表示されればLaravelの設定は完了です。
お疲れ様でした。

最後に
うまくいったでしょうか?
私はかなりつまづきました。
参考サイトのスペルミス(に気づかずcomposerをインストールしたり)や説明不足を調べながら導入しました。
これからLaravelを使って色々開発していきたいと思います。