Laravel5を導入してみました

最近話題のLaravel5を導入してみました。
最新版はv5.4.3なんですね。
テンプレートエンジン「blade」を内包し、スケルトンも容易に作成できるので人気急上昇なのもうなずけます。
CakePHPも専用のテンプレートエンジンはありませんが、スケルトンを作成できるので日本で受け入れられたのでしょう。
(厳格な規約がある、というのもあると思いますが)。

では、早速導入します。

先に依存管理ツールComposerの導入を済ませておきます。

php, git, zip その他導入

php-pearはpeclで必要、php-develはphpizeに必要
$ yum install git zlib-devel zlib
$ yum install --enablerepo=php71 php php-mbstring php-intl php-mbstring php-pdo php-mysql php-pear php-devel

Zip拡張も必要なので導入

$ pecl install zip
install ok: channel://pecl.php.net/zip-1.13.5
configuration option "php_ini" is not set to php.ini location
You should add "extension=zip.so" to php.ini

zipライブラリをphp.iniに追記する

$ cat /etc/php.ini
extension=zip.so

Laravel導入

$ composer global require "laravel/installer"
Installing laravel/laravel (v5.4.3)

新プロジェクト作成

プロジェクトはカレントディレクトリに作成されるので、ドキュメントルートに移動してからプロジェクトを生成すると楽(例:blog)。
$ cd /var/www/html/
$ /root/.config/composer/vendor/bin/laravel new blog
Crafting application...
Application ready! Build something amazing.

確認

$ ls /var/www/html/
blog

設定変更

ドキュメントルートを生成したプロジェクト以下の「public」ディレクトリに指定
$ vi /etc/httpd/conf/httpd.conf
DocumentRoot "/var/www/html/blog/public"
$ systemctl restart httpd

80番ポート解放

$ firewall-cmd --zone=public --permanent --add-port=80/tcp
$ systemctl restart firewalld

ブラウザで開くとPermitionエラーになるのでログチェック

$ tail /var/log/httpd/error_log
PHP Fatal error: Uncaught UnexpectedValueException: The stream or file "/var/www/html/blog/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied in /var/www/html/blog/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:107

logファイルに書き込めないため落ちているので、権限付与

$ chmod -R 0777 /var/www/html/blog/storage

必要に応じてSELinux設定

$ chcon -R -t httpd_sys_rw_content_t /var/www/html/blog/storage
$ chcon -R -t httpd_sys_rw_content_t /var/www/html/blog/bootstrap/cache
$ chcon -R -t httpd_t /var/www/html/blog/storage
$ chcon -R -t admin_home_t /var/www/html/blog/storage