Intelligent Technology's Technical Blog

株式会社インテリジェントテクノロジーの技術情報ブログです。

Laravel4-Vagrantのlaravel.pharが見つからない対処

こんにちは、石尾です。

前回記事にしたLaravel4-Vagrantを使った際(vagrant up実施時に)、次のようなエラーメッセージが表示されて、Laravelがインストールされなくなっていました。

=> laravel4: err: /Stage[main]/Laravel_app/Exec[setup laravel installer]/returns: change from notrun to 0 failed: /bin/sh -c 'wget http://laravel.com/laravel.phar && chmod +x laravel.phar && mv laravel.phar /usr/local/bin/laravel' returned 8 instead of one of [0] at /tmp/vagrant-puppet-2/modules-0/laravel_app/manifests/init.pp:21

原因は、「http://laravel.com/laravel.phar」リンクからLaravelインストールファイルlaravel.pharをダウンロードが出来ないことでした。ブラウザからアクセスすると、「Whoops, looks like something went wrong.」と表示され、HTTPステータス404が返されます。

今回は、その対処方法の紹介です。
対処方法は、Laravel公式サイトを参考にしましたが、Vagrant(puppet)/Laravelは、初心者レベルですので、一例として受け止めてください。

対処方法

Laravel4-VagrantのLaravelに関するpuppet定義を次のように修正します。
puppet\modules\laravel_app\manifests\init.pp

/*
exec { 'setup laravel installer':
	command => "/bin/sh -c 'wget http://laravel.com/laravel.phar && chmod +x laravel.phar && mv laravel.phar /usr/local/bin/laravel'",
	creates => [ "/usr/local/bin/laravel"],
	timeout => 900
}
*/
exec { 'create laravel project':
	command => "/bin/bash -c 'cd /var/www/ && shopt -s dotglob nullglob; composer create-project laravel/laravel temp --prefer-dist && mv temp/* . && rm -rf temp'",
	require => [Exec['global composer'], Package['php5'], Package['git-core']], #Exec['clean www directory']
	creates => "/var/www/composer.json",
	timeout => 1800,
	logoutput => true
}

・利用しない項目「setup laravel installer」をコメントアウト
・composerを利用し、Laravelプロジェクト生成するように変更「composer create-project laravel/laravel temp --prefer-dist」。
・composerを利用するため、require項目の「Exec['setup laravel installer']」から「Exec['global composer']」に変更。