ローカル開発環境でlaravelで作成したwebアプリをVPSでデプロイするまでの流れを書きます。
前提条件
- githubにwebアプリをpush済み
- conohaのvpsサーバー
- webサーバー:apache
- DNSサーバー:ムームードメイン
- サーバーサイド言語:PHP(Laravel)
- メインドメイン名:jum11.com
- サブドメイン名:todo.jum11.com
- メインドメインのDocumentRootは/var/www/html/(app名)/public
- サブドメインのDocumentRootは/var/www/html/(app名)/public
※1.(app名)は自身のファイル名をいれてください。
apacheのvirtualhost化についての参考記事です。
DNSサーバーの設定をする。
ムームードメインでサブドメインの設定
1.ムームーDNSをクリック
2.変更をクリック
3.入力
サブドメインにしたい箇所に入力。今回はtodoを追加
※serchは別のサブドメインです。無視してください。
VPS側の設定
Webアプリのファイルを準備する。
githubにpushしたリポジトリをクローン(一例です)
$ cd /var/www/html
$ git clone (リポジトリURL)
メインの独自ドメインの設定
メインの独自ドメインはjum11.comとする。
jum11.com用の設定ファイルを作成
$ sudo vi /etc/httpd/conf.d/jum11.com.conf
/etc/httpd/conf.d/jum11.com.conf
<VirtualHost *:80>
ServerName jum11.com
DocumentRoot "/var/www/html/(app名)/public"
DirectoryIndex index.html index.php
ErrorLog /var/log/httpd/jum11.com_error_log
CustomLog /var/log/httpd/jum11.com_access_log combined
AddDefaultCharset UTF-8
<Directory "/var/www/html/(app名)/public">
AllowOverride All
</Directory>
</VirtualHost>
解説
ServerNameは独自ドメインを設定、今回はjum11.com
DocumentRootは
virtualhostの有効化
$ sudo vi /etc/httpd/conf/httpd.conf
Listenの下に追加
Listen 80
+ NameVirtualHost *:80
この記載で複数のドメインを使いますよと宣言する。
サブドメインの設定ファイルを作成
todo.jum11.com用の設定ファイルを作成
今回はサブドメインをtodo.jum11.comとする。
$ sudo vi /etc/httpd/conf.d/todo.jum11.com.conf
/etc/httpd/conf.d/todo.jum11.com.conf
<VirtualHost *:80>
ServerName jum11.com
DocumentRoot "/var/www/html/(app名)/public"
DirectoryIndex index.html index.php
ErrorLog /var/log/httpd/todo.jum11.com_error_log
CustomLog /var/log/httpd/todo.jum11.com_access_log combined
AddDefaultCharset UTF-8
<Directory "/var/www/html/(app名)/public">
AllowOverride All
</Directory>
</VirtualHost>
apachを再起動
$ sudo systemctl restart httpd.service
Laravel側の設定を実施
公開するファイルに移動する。
$ cd 移動先
composerインストール
$ composer install
.envファイルの設定
- envファイルの作成(gitではenvファイルは対象外となるため
- APP_KEYの設定(ローカルで作成したKEYをそのままコピー)
- databaseの設定(sqlite3w使用する)
.env
APP_NAME=Laravel
APP_ENV=local
+ APP_KEY=ここに書く
APP_DEBUG=true
APP_URL=http://localhost
+ DB_CONNECTION=sqlite
- DB_HOST=127.0.0.1
- DB_PORT=3306
- DB_DATABASE=homestead
- DB_USERNAME=homestead
- DB_PASSWORD=secret
databaseファイルの作成
$ touch database/database.sqlite
migrationの実施
$ php artisan migrate
seederの実行(必要に応じて)
$ php artisan db:seed
権限関連を修正
$ sudo chmod -R 777 storage/
$ sudo chmod -R 777 bootstrap/cache/
データベースに書き込む場合は(必要に応じて)
$ sudo chmod -R 777 database/
メインドメインとサブドメインにアクセスして確認する。
以上です。