16
23

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

apache配下でLaravelを動かしてみる

Last updated at Posted at 2019-08-17

2019年8月9日

環境構築自体は以下の記事を見てね。

centos7にLAMP環境を作ってみる
Laravelをインストールしてみる

#Laravelをapache配下にインストールする
apacheで動かすため、Laravelを/var/www配下にインストールする。

$ cd /var/www ← /var/wwwに移動
$ composer create-project laravel/laravel laratest ← 「laratest」というプロジェクトを作成

「application key set successfully.」まで表示されれば完了。

#apacheにvirtual hostを設定する
なんとなくapache全体をlaravel用にしてしまうのがあれなので、virtual hostの設定をして、laratest用のサブドメインを設定する。

###virtual host用のconfファイル作成
/etc/httpdの下にvirtual host設定用のconfファイルを格納するディレクトリを作成する。

# mkdir /etc/httpd/vhost.d

virtual hostをconfファイルに設定する。

laratest.conf
<VirtualHost *:80>
  DocumentRoot /var/www/laratest/public
  ServerName test.lalatest.com
</VirtualHost>

vhost.dに保存したconfファイルを取り込むように、httpd.confを変更する。

httpd.conf

(最終行に追加)
include /etc/httpd/vhost.d/*conf

これで、vhost.dに格納されているconfファイルがhtpd.confに取り込まれるようになる。
httpd.confを変更したらhttpdを再起動すること。

本当はServerNameに設定したurlはDNSサーバーに設定しておいて、そのurlでVirtual hostにアクセスするのがいいのだが、そこまでするのも面倒なので、アクセスはipアドレス直でアクセスする。
本気で複数のurlに分けたい場合は、ポートを分けるかちゃんとDNSで名前解決するようにするかする。

##!!Attention!!logが書けない
上記設定でゲストOSのIPアドレスにアクセスすると、laravelにつながるが、「The stream or file "/var/www/laratest/storage/logs/laravel-2019-08-10.log" could not be opened: failed to open stream: Permission denied」こんなメッセージが出る。
LOGのパーミッションがよろしくないのね、と下記サイトを参考に修正したが、状況変わらず。
CentOS/Apache/Laravel使用時のpermission設定方法

この設定を追加したら、上手くアクセスできた。
laravel5のインストールで、ファイルパーミッションエラー

整理すると、たぶんこんな感じ。
・laravelの下記ディレクトリについて、アクセスできるグループとパーミッションを確認する。
./storage
./bootstrap/cache

それでもパーミッションエラーになる場合、selinuxに邪魔されている可能性大。
下記コマンドでコンテキストを設定する。

# semanage fcontext -a -t httpd_sys_rw_content_t "[laravel projectのディレクトリ]/storage"
# semanage fcontext -a -t httpd_sys_rw_content_t "[laravel projectのディレクトリ]/bootstorage/cahce"

ちなみに通常apacheで使用するディレクトリには、「httpd_sys_content_t」が設定されているが、上記のディレクトリには「httpd_sys_rw_content_t」を設定しないといけない。
しかしselinuxはろくなことしないな…

#アクセス確認
ゲストOSのipアドレスでアクセスすると、laravelのページが表示される。

image.png

#Appendix 複数のLaravel環境を動かいしたいとき
以下のサイトが参考になりました。
HomesteadでLaravelのプロジェクトをローカル開発環境に2つ作りたいが'homestead-7'は既に存在しているというエラーが出る解決済
Homesteadを使って複数のLaravelプロジェクトを作成する簡単な方法

16
23
1

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
  3. You can use dark theme
What you can do with signing up
16
23

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?