mixhostはPHPに対応しているWebサーバーであるのでLaravlやWordpressのアプリケーションを公開することができる。今回はLaravelアプリを公開してみた。
フロー
1.サブドメインの作成
2.Gitcloneでプロジェクトをインポートする
3.composer install
4..envの記述の変更
5.マイグレーション
6.シンボリックリンクの作成
サブドメインの作成
mixhostのCパネルからサブドメインを作成する。
名前は公開したいLaravelのアプリケーション名なるようにする。
Gitcloneでプロジェクトをインポートする
SSH接続で該当のmixhostサーバーに接続する。
その後、cd public_html
で公開ディレクトリにアクセスする。
そのディレクトリでgit cloneでプロジェクトをインポートした。
作成したサブドメインにアクセスして、Laravelのアプリケーションにアクセスするようにしたいのでmvコマンドでディレクトリの名前を変更した。
なお、サブドメインを作成した際に自動でsubdomainというディレクトリが作成されるので削除するか名前を変更しておくのが良い。
e.g.)Laravelのアプリケーションがtestapp、作成したサブドメインがsubdomainの時
$mv testapp subdomain
composer install
該当のLaravelプロジェクト上で composer install
を行い、Laravelに必要なファイルやライブラリを本番環境のアプリケーションにインポートする。
この際、レンタルサーバーのPHPのバージョンやcomposerをインストールしていない場合はできない可能性があるので気をつける必要がある。
.envの記述の変更
本番環境用のデータベースに接続するために.envの記述を変更する必要がある。
なお、本番環境のDBにマイグレーションするので、あらかじめレンタルサーバー側でデータベースを作成していく必要がある。
作成後、.envの記述を変更する準備をする。
gitにpushしたLaravelのプロジェクトでは.gitignoreファイル関係上.envはプロジェクト上に存在しないのでcpコマンドでenv.exampleから複製して作成する。
cp .env.example .env
その後、viコマンドで.envの記述を変更する。
APP_NAME=test-app
APP_ENV=production
APP_KEY=
APP_DEBUG=false
APP_URL=https://test-app.test.com
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=DB名
DB_USERNAME=DBユーザー名
DB_PASSWORD=DBパスワード
次に。artisanコマンドでAPP_KEYを作成する。
$ php artisan key:generate
キャッシュコマンドで.envの変更を修正することを忘れないようにしてほしい。
マイグレーション
DBの準備ができたのでマイグレーションを行う。
$ php artisan migrate
これで本番環境にも利用したいテーブルが反映される。
必要であればダミーデータをシーダーやファクトリから挿入する。
シンボリックリンクの作成
このまま作成したサブドメインのURLにアクセスしても目的のLaravelのアプリケーションを起動できないので、シンボリックリンクを作成する必要がある。
In -s リンク元のパス リンク先のパス
のように記述する。
e.g)honbanドメインにサブドメインとしてsubdomainを作成した。そこに対して、相対パスでLaravelのpublicディレクトリへとシンボリックリンクを作成した。
$ ln -s ~/public_html/subdomain.honban.com /home/testuser/public_html/subdomain/public
これでシンボリックリンクも作成できて、実際のサブドメインにアクセスしてもLaravelのアプリケーションを公開することができた。
参考