LoginSignup
4

More than 3 years have passed since last update.

posted at

updated at

【Laravel】apacheのバーチャルホスト設定

ローカル開発環境で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をクリック

スクリーンショット 2019-12-22 14.02.18.png

2.変更をクリック

スクリーンショット 2019-12-22 14.05.25.png

3.入力

サブドメインにしたい箇所に入力。今回はtodoを追加
※serchは別のサブドメインです。無視してください。

スクリーンショット 2019-12-22 14.06.37.png

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/

メインドメインとサブドメインにアクセスして確認する。

以上です。

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
4