26
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

Laravelで作成したWEBアプリをXServerでデプロイするまで

全体の流れ

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にアクセスして、画面に表示される確認をしましょう。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
26
Help us understand the problem. What are the problem?