まだ画像が準備できておりません!すいません!
この記事では、Xserver(エックスサーバー)にLaravelをデプロイするやり方を記述していきます。
プログラミングを学ぶと、プログラミング言語を学んでいる間は教材などが多く提供されているので、あまり意識せずにサクサクと進めることができるかと思います。
しかし、独学者が必ずといっていいほど躓くのがこの「デプロイ」です。
提出期限があるのにデプロイに1週間以上かかってしまい、非常に苦労した記憶があります。
サーバーをレンタルしていると、自分の制作物をインターネット上にアップロードできるので非常に便利です。
もし、Xserver(エックスサーバー)に興味がある方は以下のバナーをクリックしてみてくださいね。
事前準備
まずはご自身がつかっているパソコンのOSから確認してください。
windowsを使っているかたはTera Termなどの SSH クライアントツールを利用する必要があります。
まだ導入していない方はこちらのGithubからexeファイルをダウンロードしてください。exeファイルはAssetの中にあります。
インストールが完了したら、準備は完了です!それではこれからデプロイを始めていきましょう!
1.SSH keyの作成
エックスサーバーのSSH設定を有効にしてKeyを発行してもらいます。
サーバーパネルのアカウントから「SSH設定」をクリック。
「SSH設定」で「ONにする」を選択し、「設定する」をクリックして設定してください。
続いて公開鍵認証用鍵ペアの生成タブに移動してください。
公開鍵認証用鍵ペアの生成タブに移動するとパスフレーズを入力します。
このパスフレーズは後で使用しますので、覚えやすいものが良いでしょう。入力ができたら「確認画面へ進む」をクリックして設定を完了させます。
設定が完了すると *****.keyというファイルが自動的にダウンロードされます。
2.PHPのバージョン切り替え
SSH keyが発行出来たら、PHPのバージョンの切り替えを行います。
PHPのバージョンには
1.コマンド上で実行される、いわゆるCLIのPHPのバージョン
2.webサーバーとして稼働する際に実際に利用されるPHPのバージョン
の以上2種類のPHPが存在しております。
例えばですが、Laravel 8.xはPHPのバージョンが7.xでも動きますが、Laravel9.xからはPHPのバージョンが8.0以上が必要です。
ですので、どちらもPHPのバージョンをしっかりと確認しておく必要があります。
CLIのPHPのバージョン切り替え
まずはTera Termでサーバーにアクセスしましょう。
ホストにはサーバー番号(svから始まる)を入力し、TCPポートは「22」ではなく「10022」と入力してください。
OKを押すと、SSH認証の画面に切り替わります。
ユーザー名にはサーバーID
パスフレーズには先ほどSSH設定の際に登録したパスワード
を入力してください。
認証方式は「RSA/DSA/ECDSA/ED25519鍵を使う」を選択し、先ほどダウンロードしたkeyファイルを指定してください。
初回はセキュリティの警告が発生することもありますが、そのまま続行を押すとサーバーにアクセスすることができます。
アクセスができたらまずはCLIのPHPのバージョンを確認しましょう。
php -v
と入力してください。
おそらく以下のようなコードが表示されたと思います。
$ php -v PHP 5.x.x (cli) (built: Apr 1 2020 04:07:17) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies with Zend OPcache v7.0.5, Copyright (c) 1999-2015, by Zend Technologie
PHPのバージョンは5.x.xとかなり古いバージョンになっていませんか?
導入したいPHPのバージョンを指定することで、任意のバージョンに設定することが可能です。
まずは以下のコードを入力してください。
find /opt/php-*/bin -type f -name 'php'
表示された/opt/php-*/bin/phpのバージョンであれば変更することが可能です。
変更したいphpのバージョンが決まったら、まずはbinフォルダの作成を行います。
binフォルダはmkdir ~/bin
で作成が可能です。
~/binとすることで、homeディレクトリ直下にbinファイルを作成することができます。
homeディレクトリがどこかわからない、という方はコマンドpwd
を入力して自分の現在地を確認するか、Xserver(エックスサーバー)の上部にある「ファイルマネージャ」を開いてみてください。
ファイルマネージャが一番初めに開いた場所がhomeディレクトリです。
binフォルダを作成出来たらシンボリックリンクを作成します。
binフォルダに移動してシンボリックリンクを入力しましょう。
$ cd ~/bin $ ln -s /opt/php-8.1/bin/php ~/bin $ ll
上記ではphp8.1バージョンを指定していますが、任意のバージョンに変更することで自分が指定したいバージョンにできます。
最後にPATHを通してPHPのコマンド実行時にPHP8.1が使用されるように設定します。
まずはhomeディレクトリに戻ります。
$ cd ../ $ vi .bash_profile
PATHの設定は~/.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 #ここが有効になっているので「#」で以下のようにコメントアウトしてください #PATH=$PATH:$HOME/bin PATH=$HOME/bin:$PATH #追記してください export PATH
書き換えたら、[esc] + wqで保存し、最後に.bash_profileファイルを実行しましょう。
$ source .bash_profile
以上で設定は完了です。php -v
でPHPのバージョンを確認し、指定したバージョンになっていれば完了です。
Xserver(エックスサーバー)のPHPのバージョン切り替え
Xserver(エックスサーバー)のPHPのバージョンの切り替えはサーバーパネルから「PHP Ver.切替」というまんまのページが用意されていますので、画面の指示に従って切り替えてください。
Gitの設定
Gitの設定については別の記事にて解説いたします。
MySQLの設定
Xserver(エックスサーバー)上でMySQLを設定します。
サーバーパネルのデータベースからMySQL設定をクリックします。
MySQL設定画面が表示されたら「MySQL追加」タブをクリックして、データベース名を入力し、確認画面へ進んだのち作成してください。
データベースが設定できたらMySQLユーザーの追加も行います。
「MySQLユーザー追加」タブからMySQLユーザーの追加を行ってください。
データベースの作成とユーザーの追加が終わったら、アクセス権の設定を行います。
この作業は作成したユーザーがMySQLにアクセスできるように権限を持たせる設定です。
「MySQL一覧」タブでアクセス権未所有ユーザーの欄に先ほど作成したユーザーを設定して追加ボタンをクリックしてください。
MySQLの設定は以上で完了です。
Laravelプロジェクトの導入
ここからはLaravelのプロジェクトをインストールしていきます。
Laravelプロジェクトの設置場所はドメインの直下でも構いませんが、私のおすすめはサブドメインを取得して、そのサブドメインに表示させる方法です。
アプリが一つなら最初から振り分けられている「******.xsrv.jp」でも良いと思いますが、この.xsrv.jpドメインはサブドメインを取得することができないので、新たにドメインを一つ取得する方がおすすめです。
今回は私のおすすめのサブドメインでプロジェクトを導入する方法を紹介していきます。
サブドメインの取得は以下の通りです。
サーバーパネルの「サブドメイン設定」をクリックします。
ドメインを選択すると、以下のような画面が表示されますので、サブドメイン設定追加をクリック。
「サブドメイン設定追加」タブでは任意のサブドメイン名をつけることができます。
ドキュメントルートは「ドメイン名/public_html/(サブドメイン名)」がおすすめです。入力出来たら確認画面へ進んで設定してください。(設定には少し時間がかかりますので気長に待ってくださいね!)
設定が完了するとサブドメインが反映されるまで、大体10分から1時間程度かかるようです。気長に待ちましょう。少し休憩です。
サブドメインを作成した場合、public_htmlフォルダの中に作成したサブドメインの名前が付いたフォルダが用意されていると思います。
そのフォルダに移動してLaravelプロジェクトを導入しましょう。
$ git clone git@github.com:nanami-teruma/sample-app.git $ cd sample-app $ composer install $ composer -v
もし、composer installでエラーが出る場合はcomposerのバージョンが低い可能性が高いです。
その場合はバージョンを上げる必要があります。
後日記載予定
.envの設定
.envファイルの設定を行っていきましょう。
以下のコマンドを入力してもよいですし、ファイルマネージャから「.env .example」をコピーして.envファイルを作成しても構いません。
$ cp .env.example .env $ vi .env
.envファイルの設定は以下の通りです。
APP_NAME={アプリ名} APP_ENV=production APP_KEY= APP_DEBUG=false APP_URL={ドメイン名} 例えばhttps://sample-app.nanami-teruma.comなど
データベースの設定
先ほどから続いて.envファイルの設定です。
DB_CONNECTION=mysql DB_HOST=SQLサーバーのサーバー名 DB_PORT=3306 DB_DATABASE={作成したDB名} DB_USERNAME={作成したユーザー名} DB_PASSWORD={作成したユーザーパスワード}
DB_HOSTのところにある、SQLサーバーのサーバー名はphpmyadminにて確認することが可能です。
サーバ:mysql0000.xserver.jpという感じで書かれていると思いますので、その番号を入力してください。
.envファイルの設定が終わったら、APP_KEYの設定などを行います。
php artisan key:generate php artisan storage:link php artisan migrate php artisan db:seed
以上でアプリケーションの設定が一通り完了しました。
.htaccessの設定
現状だとLaravelのアプリにアクセスできませんので、.htaccessを作成・編集する必要があります。
サブドメインを作成時に作成されたフォルダに移動してください。
$ touch .htaccess $ vi .htaccess
これで.htaccessファイルが作成されますので編集しましょう。
.htaccessに入力するのは以下のコードです。
<IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^(.*)$ sample-app/sample-app/public/$1 [QSA,L] </IfModule>
以上で無事に開くことができていると思いますが、いかがでしょうか。