LoginSignup
3

More than 3 years have passed since last update.

posted at

updated at

ApacheでLaravelを立ち上げる手順

ApacheでLaravelを立ち上げる手順をまとめます。

実行環境

筆者の動作環境は以下の通りでございます。
- OS: Ubuntu 18.04.3 LTS
- Laravel: 6.2
- Apache: 2.4.29

前提条件

以下の手順を済ませている前提で勧めます。
- laravelコマンドをインストールしてある("laravel new blog"でプロジェクトを作成できるっていう意味)
- Apacheをインストールしてある

手順

1. 作業ディレクトリにLaravelプロジェクトを作成する

作業しやすい場所にlaravelコマンドでプロジェクトを作成してください。

[user@ ~/]$ cd ~/work
[user@ ~/work]$ laravel new laravelapp

2. Laravelプロジェクト用のドメインをetc/hostsに書き込む

自分自身のアドレス(127.0.0.1)にLaravelプロジェクトのドメインを割り当てるために"/etc/hosts"に以下を追記しましょう。
下の例ではドメインは"my-laravelapp.localhost"になってます。

/etc/hosts

127.0.0.1 my-laravelapp.localhost

3. 割り当てたドメインに対するVirtualHostsの設定を書き込む

ApacheのVirtualHostを使って、追加したドメイン(my-laravelapp.localhost)にアクセスしたときに、どのディレクトリを参照するかを設定しましょう。
また、VirtualHostが有効になっていることを確認してください。

/etc/apache2/sites-available/my-laravelapp.conf

<VirtualHost *:80>
  ServerName my-laravelapp.localhost
  ServerAdmin sample-user@my-laravelapp.localhost
  DocumentRoot /var/www/html/laravelapp/public
  LogLevel debug
  <Directory "/var/www/html/laravelapp">
    RewriteEngine On
    AllowOverride All 
    Allow from All
  </Directory>
</VirtualHost>

また、上記で"RewriteEngine On"の設定をしていますが、rewrite_moduleの設定がない場合はその設定をしましょう。

/etc/apache2/mods-available/rewrite.load
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

補足

  • "ServerName"に追加したドメイン(my-laravelapp.localhost) を設定します。
  • "DocumentRoot"はApacheがアクセスするディレクトリです。まだ、"/var/www/html/laravelApp/public"のパスはありませんが、後で設定します。
  • "<Directory "/var/www/html/laravelapp">では"/var/www/html/laravelapp"以下の階層のファイルのアクセスできるように設定してあります。
  • "RewritEngine On"でLaravelのルーティング(my-laravelapp.localhost/sampleにアクセスすると、対象のファイルを開いてくれる)に対応します。

設定したら、以下のコマンドで反映しましょう。

[user@ ~/]$ sudo a2emod rewrite
[user@ ~/]$ sudo a2ensite my-laravelapp.conf
[user@ ~/]$ sudo service apache2 restart

4. 作業ディレクトリのリンクをApacheディレクトリ配下に作成

VirtualHostに設定したディレクトリパスに対するリンクを以下のコマンドで作成します。

[user@ ~/]$ sudo ln -s ~/work/laravelapp /var/www/html/laravelapp

5. Apacheユーザーでアクセスできるようにアクセス権限を変更

ApacheユーザーでLaravelプロジェクトにアクセスするように設定しましょう。

[user@ ~/]$ sudo chown -R :www-data /var/www/html/laravelapp
[user@ ~/]$ cd /var/www/html/laravelapp
[user@ /var/www/html/laravelapp]$ sudo chmod -R 770 storage

補足

  • 1行目はLaravelプロジェクトにApacheグループがアクセスできるように設定しています。
  • 3行目はApacheグループがstorage配下(ログファイルや一時的な画像ファイルなどを置く場所)にアクセスできるように設定しています。

動作確認

ブラウザで"my-laravelapp.localhost"と入力して、正しく表示されれば完了です。
Screenshot from 2019-11-02 23-33-11.png

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
3