今更感があるが結構詰まったのでメモ
基本的な手順は以下を参照
PHPフレームワーク「Laravel4」の環境を Vagrant, CentOS 6.6, PHP 5.6, MySQL 5.6 で作ってみた、その1
こんなVagrantFile
Vagrant.configure(2) do |config|
config.vm.box = "puphpet/centos65-x64"
config.vm.network "private_network", ip: "192.168.44.55"
end
##Composerのインストール
$curl -sS https://getcomposer.org/installer | php
$mv composer.phar /usr/local/bin/composer
パスの追加
$export PATH=$PATH:/usr/local/bin
##Vagrantの共有フォルダにLaravelをインストール
$composer global require "laravel/installer=~1.1"
パスの追加
$export PATH=$PATH:$HOME/.composer/vendor/bin
var/www/html/
にVagrantの共有フォルダのシンボリックリンクをはる
$sudo rm -rf /var/www/html/
$sudo ln -fs /vagrant /var/www/html
Laravelコマンドでプロジェクト作成
$cd /var/www/html/
$laravel new laravelApp
httpd.confのDocumentRootを修正
$sudo vi /etc/httpd/conf/httpd.conf
DocumentRoot "/var/www/html/laravelApp/public/"
<Directory "/var/www/html/laravelApp/public">
Apacheの再起動
$sudo service httpd restart
ディレクトリの権限変更
chmod -R 777 laravelApp/storage/
これでhttp://192.168.44.55にアクセスするとLaravelのスタート画面が出るはずなのだがエラーになる。
Apacheのエラーログを見ると、storageでpermission deniedとなっている。chmodしたのに?
$ls laravelApp/ -l
drwxr-xr-x. 1 vagrant vagrant 170 2月 25 21:39 2016 storage
chmodが効いていない、、、
##Vagrantfileの修正
何やら調べてみるとVagrantの共有フォルダではパーミッションなどで色々とうまくいかないことが多々あるらしい。
【vagrant】共有フォルダのパーミッションで悩んだ話【chmodできない】
やはりVagrantfile側で権限の設定などが必要らしく、以下の記事に対策が書いてあった。というかここで書きたかったことの全てが書いてある。
Vagrant+Laravelでパーミッションで詰まった
この記事に習い、以下の記述をVagrantfileに追記。
config.vm.synced_folder ".", "/vagrant", :owner => 'apache', :group => 'apache', mount_options: ['dmode=777','fmode=755']
ここでのownerとgroupはhttpd.confに記載されているものを記載する。
これで再度vagrant up
で仮想マシンを再起動してみると、、、
$ls laravelApp/ -l
drwxrwxrwx. 1 apache apache 170 2月 25 21:39 2016 storage
無事権限が変更されている。
再起動に失敗したらこの辺を参照。
vagrantでmountエラーの解決方法
http://192.168.44.55にアクセスするとLaravelのスタート画面が表示された。