全体の流れ
1.XserverにSSH接続
2.PHPのバージョンアップ
3.Composerのインストール
4.Laravelプロジェクトのデプロイと設定
Step.1:XServerにSSH接続
1.SSH設定を有効化する
XServerのサーバーパネルを開くと、「アカウント」メニューに「SSH設定」という項目があるので、こちらをクリック。
SSHの設定画面が開いたら、「ONにする」を選び、「設定する」を、クリック。
設定変更が完了したら、「公開鍵認証用鍵ペアの生成」をクリック。
任意のパスワードを設定し、「確認画面へ進む」をクリック。
確認画面が開くので「生成する」をクリック。
すると、「サーバーID.key」という名前のファイルはダウンロードされると思います。
2.SSH接続のための設定を行う
ダウンロードしたファイル(サーバーID.key)を.sshディレクトリへ移動します。
ターミナルを開き、まず次のコマンドで.sshのディレクトリを作成します(無ければ)。
1| mkdir ~/.ssh
続いて、ダウンロードしたファイルを、.sshディレクトリへ移動させます。
1| mv ~/Downloads/サーバーID.key ~/.ssh/
最後に、以下のコマンドでパーミッションを変更します。
1| chmod 700 ~/.ssh
2| chmod 600 ~/.ssh/サーバーID.key
以上で、XServerへのSSH接続のための設定は完了です。
3.実際に接続してみる
サーバーへの接続はターミナル上で、以下のコマンドを実行します。
1| ssh -l サーバーID -i ~/.ssh/サーバーID.key サーバーID.xsrv.jp -p 10022
接続できると、パスワードの入力を求められるので、サーバーパネルの「SSH設定」で設定したパスフレーズを入力しEnterをクリック。
すると、ログイン時刻が表示され、サーバーへ接続出来ます。
Step.2:PHPのバージョンアップ
1.現在のバージョン確認
Laravelを使うにはPHPのバージョンが7以上である必要があります。
以下のコマンドを実行してphpのバージョンを確認します。
1| php -v
phpのバージョンが7以上でなかった場合はバージョンをあげる必要があります。
2.使えるPHPのバージョンを確認
以下のコマンドを実行します。
1| find /opt/php-*/bin -type f -name 'php'
すると、使えるバージョンが表示されます。
2020年1月時点では、XServerの推奨は7.2.17なので、今回はこのバージョンを使うことにします。
3.phpのバージョンを上げる
ホーム環境にbinディレクトリを作成します。
1| mkdir $HOME/bin
作成したbinディレクトリにシンボリックリンクを作成します。
1| ln -s /opt/php-7.2.17/bin/php $HOME/bin/php
viコマンドで/.bash_profileファイルを開きます。
1| vi ~/.bash_profile
ファイルを開いたら次の「変更後」のように「変更前」の内容を書き換えて保存します。
1| //変更前
2| PATH=$PATH:$HOME/bin
3|
4| //変更後
5| PATH=$HOME/bin:$PATH
やり方は「a」キーを押してインサートモードにし、記述内容を修正、「esc」キーでインサートモードを解除、「:wq」で変更したファイルを保存、終了します。
変更できたら、新しく作ったバスを反映させます。
1| source ~/.bash_profile
これで、バージョンが変わっているはずです。
以下のコマンドを実行して確認しましょう。
1| php -v
Step.3:Composerのインストール
ComposeはPHPのパッケージを管理するソフトで、Laravelをインストールするために必要な物です。
以下のコマンドを実行してComposerをインストールします。
1| curl -sS https://getcomposer.org/installer | php
正常にインストールできると、「successfully installed」といったメッセージが表示されますが、以下のコマンドでも確認ができます。
1| composer -V
これは、composerのバージョンを確認するコマンドで、バージョンが表示されればインストールされていることになります。
Step.4:Node.jsのインストール
npmを使えるようにするためにNode.jsをインストールしていきます。
ただし、Node.jsをそのまま入れるとバージョンの管理に手間がかかるため、バージョン管理ツール「nodebrew」を使ってNode.jsをインストールを行います。
1.nodebrewのインストール
以下のコマンドでnodebrewをダウンロードします。
1| wget git.io/nodebrew
ダウンロードができたら、セットアップします。
1| perl nodebrew setup
パスを通すために/.bash_profileファイルに以下のコマンドを追記します。
1| echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.bash_profile
変更した内容を反映させます。
1| source ~/.bashrc
これで、nodebrewのインストール作業は完了です。
以下のコマンドを打って、きちんとインストールされているか確認しましょう。
1| nodebrew -v
2.Node.jsのインストール
続いて、nodebrewを使って、Node.jsのインストールを行います。
まず、最新のNode.jsのバージョンを確認してみましょう。
1| nodebrew install-binary latest
以上で、Node.jsのインストールは完了です。
3.Node.jsを使うための設定
まずは以下のコマンドで、インストールしたNode.jsを確認をします。
1| nodebrew list
今回の私の場合は、バージョン「14.5.0」がダウンロードされているので、これをアクティブにします。
1| nodebrew use v14.5.0
アクティブしたら、最後にnodeのバージョンを確認します。(ついでに、npmも)
1| node -v
2| npm -v
これでNode.jsのインストール作業は完了です。
Step.5:Laravelプロジェクトのデプロイと設定
ここまで来て、ようやくLaravelで作ったプロジェクトをデプロイできるようになります。
1.git cloneを使ってプロジェクトをコピーする
コピー先は人によって異なると思いますが、今回は「メインドメイン」の直下とします。
なので、このサイトを例に上げると、「msy3a」の配下となります。
cdコマンドで、ディレクトリを移動したら、以下のコマンドでgithubからプロジェクトをコピーします。
1| git clone [デプロイするプロジェクト」
[デプロイするプロジェクト]はgithubであなたのプロジェクトを開くと、右端の方に「Clone or download」というボタンがあるので、こちらをクリックすると確認できます。
これで、メインドメイン配下にlaravelプロジェクトがコピーされます。
2.Laravelの設定
git cloneでコピーした場合、.envファイルやvendorディレクトリなどがありません。
なので、これらを用意します。
※XServerへ接続し、追加したいプロジェクトへ移動
1| cd [プロジェクトフォルダ名]
composer installの実行
対象のプロジェクトのディレクトリ内でcomposer installを実行します。
1| composer install
これにより、vendorディレクトリが作られます。
データベースの設定+α
続いて、データベースの設定をします。
まずは、「config/database.php」を開いて、DBの設定をしていきます。
「database」「username」「password」を本番環境用のDBの情報に置き換えて、「unix_socket」は削除すればOKです。
続いて、envファイルの設定をしていきますが、cloneしたプロジェクトには.envファイルがないので、「.env example」をコピーして使います。
1| cp .env.example .env
ファイルを開いて、変更します。
1| vi .env
以下の項目を本番サーバー用に変更します。
1| DB_CONNECTION=mysql
2| DB_HOST=127.0.0.1
3| DB_PORT=3306
4| DB_DATABASE=laravel
5| DB_USERNAME=root
6| DB_PASSWORD=
その他、アプリ名やメールの設定などあなたの環境に合わせて変更してください。
アプリケーションキーの設定
セキュリティに使用されるキーを以下のコマンドで生成します。
1| php artisan key:generate
正常終了メッセージが表示されればOKです。
マイグレーションの実行
データベースのテーブルを作る必要があるので、マイグレーションファイルを実行します。
1| php artisan migrate
※注意:事前にサーバーパネルからDBは作っておいてください。
シンボリックリンクの作成
今の段階では「メインドメイン」直下にlaravelプロジェクトを作っただけなので、実際にURLにアクセスしても表示されません。
アクセスできるようにするには、メインドメインにアクセスした時にlaravelプロジェクトのpublicディレクトリを見にくいようにシンボリックリンクを貼ります。
シンボリックリンクを貼るには次のコマンドを実行します。
1| ln -s ~/メインドメイン/laravel(プロジェクト名)/public ~/メインドメイン/public_html/public
.htaccessの設置
最後に、すべてのリクエストがlaravel(プロジェクト名)/publicを通して処理されるよう、.htaccessに追記します。
1| <IfModule mod_rewrite.c>
2| RewriteEngine On
3| RewriteRule ^(.*)$ public/$1 [QSA,L]
4| </IfModule>
以上で、デプロイ作業は完了です。
URLにアクセスして、画面に表示される確認をしましょう。