Laravel4をCentOS6+nginx+PHP5.4でインストールする

最近人気があるLaravelを使うためのメモです。

【環境】
CentOS release 6.7 (Final)
PHP 5.4.44

composerからLaravelをインストー

composerを入れてない場合は以下のコマンドでインストール。

$curl -sS https://getcomposer.org/installer | php
$mv composer.phar /usr/local/bin/composer

その後、以下のコマンドでLaravelを入れます。PHPのバージョンが5.4だったので、最新のLaravel5ではなくLaravel4(日本語注釈付き)にします。

$composer create-project "laravel-ja/laravel=~4.2" your_app --prefer-dist

Mcrypt PHP extension required.が発生した場合

composerでLaravelを入れる時に以下のようなエラーが出ることがあります。これはPHP拡張機能である暗号化モジュールmcryptPHPに入っていないために発生するようです。

  Mcrypt PHP extension required.
  Script php artisan clear-compiled handling the post-install-cmd event returned with an error

  [RuntimeException]
  Error Output:

yumでlibmcryptとphp-mcryptを入れます。

$yum --enablerepo=epel install libmcrypt
$yum --enablerepo=remi update
$yum install --enablerepo=remi php-mcrypt

PHPのバージョンや環境によっては上手くいかないこともあります。

どうしてもエラーが解決できない場合は、PHPをソースからビルドする時に「$./configure –with-mcrypt」のように–with-mcryptパラメータをつけることで拡張機能を入れることもできるようです。

mcrypyを入れたら以下のコマンドで「mcrypt support => enabled」となればOKです。

$php -i | grep -i mcrypt

nginxを使っているので、php-fpmをリスタートをしてmcryptを有効化させます。

$service php-fpm restart

nginxでLaravelを動かす

まず、app/storageのパーミッションを変更しておきます。

$chmod -R 777 app/storage

すでにnginxを利用している場合は、rootをLaravelのpublicディレクトリに向けるだけでOKです。

$vi /etc/nginx/conf.d/your_app.conf
  root /var/www/html/your_app/public;
$service nginx restart

URLにアクセスし「You have arrived.」と表示されていれば完了です。

あとはapp/config内のapp.phpやらdatabase.phpを設定すれば開発に取り掛かれそうです。