プログラミング

Laravelをエックスサーバー にインストールする手順

エックスサーバーでのLaravelインストール

phpフレームワークで人気のある「Laravel(ララベル)」。

今回このLaravelをエックスサーバーの方に入れて開発してみたいと考えたので導入の手順の流れを記録しておきたいと思います。

大まかな流れとしては

エックスサーバーでSSH設定
macのターミナルでSSH接続
エックスサーバーのPHPバージョンの変更
node.jsのインストール
Laravelのインストール

になります。

実際にLaravelを入れる場所ですが、今回はすでにWPで運営しているドメインのディレクトリに実装することにします(今回は開発で運用のためサブドメイン化などはしません)。

アクセスURLは
ドメイン/Laravelインストールディレクトリ名/
になります。

エックスサーバーの契約

今回導入するのでエックスサーバーの契約が必要です。
エックスサーバーの契約は下記の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での設定をご覧ください。

SSHソフトの設定(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の設定は完了です。
お疲れ様でした。

Laravelトップページ成功していればこのページが表示される

最後に

うまくいったでしょうか?
私はかなりつまづきました。
参考サイトのスペルミス(に気づかずcomposerをインストールしたり)や説明不足を調べながら導入しました。

これからLaravelを使って色々開発していきたいと思います。