今回の記事を読んで欲しい方
- MAMPとLaravelで作った制作物を公開したい方
- XSERVERを使っている方
今回はXSERVERに作った制作物を公開する方法ついて書いていこうと思います。
今回の説明は前回以前に書いた記事のXserverの契約で、初期ドメイン (xs●●.xsrv.jp)がある前提での記事となります。
Macで、FileZillaのアプリケーションをを使っています。
現在のLaravelの最新バージョンが8なので、Larave7以前でもインストールは可能のようです。
- MySQLの設定
- SSH設定
- PHPのバージョンアップ
- composerのインストール
- Laravelプロジェクトのデプロイ
- シンボリックリンクの作成
- .htaccessの設定
- 大変だけど慣れれば簡単
MySQLの設定
XSERVER のサーバパネルからMySQLの設定が可能です。
ローカル環境のPHPMyAdminから、テーブルをエクスポートします。
エクスポートしたいテーブルをクリックし、画面上部にあるエクスポートのタブをクリックします。
エクスポート方法で詳細をクリックし、出力方法として出力をファイルに保存するをクリックします。
その後、一番下にある実行をクリックし、「テーブル名.sql」ファイルがダウンロードされます。
次にXserverのサーバパネルからデータベースを作成します。
サーバパネルからMySQL設定をクリックし、MySQL設定をクリックし、データベース名を決めて作成します。
MySQLユーザの設定も必要になりますので、MySQLユーザ追加から作成しましょう。
パスワードは忘れないようにしましょう。
どちらも設定したら、アクセス未所有権ユーザから作成したユーザを選択し、アクセス所有権ユーザに移します。
その後、サーバパネルからPHPMyAdminをクリックして移動します。
ユーザ名とパスワードが必要になるので、先ほど設定したユーザ名とパスワードを入れて下さい。
ログインできたら、画面上部のインポートタブをクリックし、アップロードファイルで先ほどダウンロードした「テーブル名.sql」を選択します。
その後、画面一番下にある実行をクリックすれば完了です。
MySQLの設定は以上です。
SSH設定
XserverでのSSH設定
まずはXserverのサーバーパネルへログインします。
その後、SSH設定をクリックします。
SSH設定がOFFになっていたらONにします。
確認画面が出てくるので、OKを押して設定完了しましょう。
その後、公開鍵認証用鍵ペアの生成のタブをクリックし、パスフレーズを入力します。
このパスフレーズは忘れないようにして下さい。
生成が完了すると、ダウンロードフォルダに「サーバ名.key」の名前のファイルがダウンロードされます。
ダウンロードされたファイルはダウンロードフォルダに入れたままで大丈夫です。
MacでのSSH設定
もし無ければ、フォルダを作って下さい。
続いて、先ほどダウンロードしたサーバ名.keyのファイルを、作成したsshディレクトリに移動します。
次にパーミッションの設定を行います。
パーミッションは、簡単にいうとサーバのアクセス件の設定です。
sshには700(ディレクトリの所有者以外は読み書き実行が不可)、鍵には600(ディレクトリの所有者以外の読み書き不可)の設定をします。
あとはSSHコマンドを実行し、サーバにアクセスします。
ホスト名はサーバ情報画面から確認できます。
PHPのバージョンアップ
Laravel8を使うためにはPHPのバージョンが7以上である必要があります。
なので、PHPのバージョンを確認します。
出てきたバージョンが7以上でなければ、次にお進み下さい。
7以上であれば飛ばしていただいて構いません。
PHPのバージョン切り替えはサーバパネルから出来ます。
画面下の方の真ん中あたりにあるPHP Ver. 切り替えをクリックします。
PHPのバージョンの7以上を選択し、変更するをクリックして確認して確定させます。
ターミナルへ戻り、/home環境にbinディレクトリを作成します。
シンボリックリンクは、簡単にいうとショートカットのようなものです。
次にbash_profileを開き、環境設定を変更します。
iキーを押し、insertモードにして、以下の箇所を編集します。
変更が完了したら、キーボード左上の「esc」キーを押し(insertモード終了)、「:wq」を入力して変更を確定します(変更して保存)。
その後、編集したしたコードを実行し、PHPのバージョンを再度確認しましょう。
変わっていたらOKです。
composerのインストール
Laravelを使うにはcomposerが必要です。
composerはPHPのパッケージ管理システムです。
composerをローカル環境でインストールしてLaravelをローカル環境で制作してアップロードしても、サーバにはcomposerはありません。僕はここで、インストールされているだろうと過信して躓いたのでご注意下さい。
Laravelプロジェクトのデプロイ
GitHubに、ご自身のプロジェクトがコミットされている前提で話をします。
GitHubのご自身のプロジェクトのURLまで行き、Codeをクリックして、ご自身のプロジェクトのURLをコピーします。
その後、ターミナルで初期ドメインの直下に移動します。
その後、git cloneコマンドを実行して、プロジェクトを複製します。
次に、Laravelをインストールするので、複製されたディレクトリへ移動し、composerをインストールします。
.envファイルの設定
GitHubから複製されたプロジェクトには、.envファイルがなく、.env.exampleファイルが代わりに存在します。
なので、このファイルをコピーし、その後編集します。
編集する箇所は以下の通りです。
DB_HOSTに設定する項目は以下の画像の箇所を参照ください。
サーバパネルのMySQL設定から行けます。
アプリケーションキーの設定
.envファイルのAPP_KEYを追加します。
ここを追加しないとエラーになるようなのでご注意下さい。
ターミナルからLaravelプロジェクトまで移動して以下のコマンドを実行します。
先程の.envファイルを見ると乱数の文字列が追加されているはずです。
シンボリックリンクの作成
僕が躓いた一番のポイントです。
サーバに公開するためには、ドメイン名/public_html/pubicの中を参照させないといけません。
なので、このドメインにアクセスした時に、Laravelプロジェクトを参照させるようにシンボリックリンクを作成します。
コマンドは以下です。
サーバIDはサーバパネルトップページの右上、ドメイン名はサーバパネルトップページの上部左側から行けるドメイン設定から確認できます。
.htaccessの設定
ここもシンボリックリンクの作成と同様に躓きました。
500エラーの原因はたいていこの.htaccessの設定ミスなので、気をつけましょう。
サーバパネルの.htaccess編集から行えます。
以上で設定は終了です。
https://【ドメイン名】/【ルート情報のアドレス】で、トップページや制作したwebアプリが表示できました。
大変だけど慣れれば簡単
いかがでしたでしょうか。
.htaccessが設定したことがなかったのと、作ったwebアプリをサーバに公開したことがなくて大変でしたが、1回出来てしまえば慣れると思います。
色々ググって進めていましたが、人によってはNode.jsやnodebrewをインストールしている方もいらっしゃったみたいです。
僕は使わなかったので今回は紹介しておりませんが、この記事が参考になれば幸いです。