Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

ApacheでLaravelを立ち上げる手順

More than 1 year has passed since last update.

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

phantom1793
主にサーバの保守運用と機能改修、ちょぴっとだけフロントを実装したりしてます。 発信しとけば良いと思っている系です。 最近のフレームワークで何でも手っ取り早く作れる風潮怖い 誰か、やる気ください(^^
http://shiro-secret-base.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away