search
LoginSignup
0
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

mixhostでLaravelアプリをデプロイした時のメモ

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のアプリケーションを公開することができた。

参考

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0
Help us understand the problem. What are the problem?