PHPフレームワーク「Laravel4」の環境を Vagrant, CentOS 6.6

5 min read読了の目安(約5200字

PHP, Laravel4 の環境構築

PHPフレームワークでは、CakePHPが熱いって思っていたら(2年位前の頭ですw)、最近はLaravel4(ララベル)が熱いんですよ、ハゲさん!って言われてしまったのでまず環境構築から初めてみます。

⇒と思って、Laravel4 インストする方法書いたら… 禿さん! Laravel5 じゃないのかよ?!と言われてしまった・・・orz

Laravel4 動作環境(2015/03/12現在)

最新の Laravel を使用する場合は、PHP のバージョンも気にしないといけないとこが玉に傷。というのも CentOS 6.6 で標準レポジトリからインストールされるのは、php v5.3.3 ですのでここだけ注意すること。

ソフトウェア バージョン
Laravel4 4.2.17
PHP 5.4 以上
apache, Nginx
database 任意

環境構築

以下の構成で環境を構築してみます。

ソフトウェア バージョン
Laravel4 4.2.17
PHP 5.6.6
Apache 2.2
MySQL 5.6

こんな Varagnt でw

さくっと作って立ち上げときます。

config.vm.define :web do |web|
  web.vm.network :private_network, ip: "192.168.11.200"
  web.vm.provider "virtualbox" do |v|
    v.customize ["modifyvm", :id, "--memory", 512]
  end
end

PHP のインストール

epel から php 5.6系を取得しインストールします。Laravel4 は、mcrypt も必要とのことなのでその他に使いそうなライブラリと一緒にインスコします。

# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
# yum --enablerepo=remi,remi-php56 install php php-common
# yum -y install libmcrypt
# yum -y -–enablerepo=remi,remi-php56 install php-mcrypt
# yum -y –-enablerepo=remi,remi-php56 install php-pecl-apcu php-pdo php-gd php-mysqlnd php-mbstring php-pecl-mongo

インスコが終わったら、php -v または、yum info php にて 5.6系がインストールされていることを確認しておきます。

CentOS 6.5 + nginx 1.6.1 + Laravel 4.2のインストールメモ

Apache のインストール

いつものごとくのコマンドで導入する。

# yum -y install httpd
# chkconfig httpd on
# service httpd start

phpinfo でphpの状態を確認する。下記コマンドを実行し http://localhost/phpinfo.php で叩いてみて真っ白の画面でなければok。

# echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php

MySQL のインストール

とりあえずインストールしておきます(^^
ひととおりの物がインスコされます。

# yum -y install http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
# yum -y install mysql-community-server

とりあえず立ち上げときます。

# chkconfig mysqld on
# service mysqld start

laravel のインストール

最新版をインストールします。あとコマンドラインのパッケージも導入できるように同時にインストールしてみます。

Composerのインストール

なんだか Laravel4 は、Composer っていうパッケージ管理プログラムを使うらしく、まずこれをインストールするとこから初めます。

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

パスを追加します。.bashrc に追加しておくといいことありますね。

# export PATH=$PATH:/usr/local/bin

コマンドラインで使用できる laravel をインストール

結構、インストールに時間がかかります。気長に待つとしますかね・・・。

# composer global require "laravel/installer=~1.1"

パスを追加します。.bashrc に追加しておくといいことありますね。

# export PATH=$PATH:$HOME/.composer/vendor/bin

laravel4 をインストール(プロジェクトの作成)

最新版+日本語化されたコメントのlaravel4 をインストールしてみます。
/var/www/html/ 配下にインストールしないこと。ってまあわかりますよね。あとこちらも初回は symfony とかいろいろとパッケージダウンロードされるので結構時間かかります。

# composer create-project "laravel-ja/laravel=~4.2" /var/www/laravel4-site/ --prefer-dist

composer create-project でインストールされるバージョンを指定する

ビルトインサーバを使って起動してみる

とりあえず「細けー設定はどーでもいいから立ち上がるのか?」ってことで laravel をweb起動できるか確認です。
ちなみに vmつかってるときは、 --host でIPをしっかり指定しないとアクセスできない(http://localhost になるんで)そこんとこは注意すること。あと -port はデフォルトで、8080 使うのでこちらも適当に違う値にしておきます。
※ laravel.jp では アルチザンと読むそうです。

# cd /var/www/laravel4-site
# php artisan serve --host="192.168.11.200" --port="9090"
または
# php artisan serve --host="0.0.0.0" --port="9090"

laravel4.png

↑↑の画面表示された?よね?(汗)

Apache で laravel4 のプロジェクトを動かす

Apache(もしくは Nginx)で laravel プロジェクトを動かす場合は、virtualhost で指定するそうです。ですので /etc/httpd/conf.d/ に以下のファイルをさくっと作り、httpd を再起動します。

/etc/httpd/conf.d/laravel4-site.conf
Listen 9999
NameVirtualHost 192.168.11.200:9999

<VirtualHost 192.168.11.200:9999>
    ServerName laravel4-site
    DocumentRoot /var/www/laravel4-site/public/
    <Directory "/var/www/laravel4-site/">
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

httpd を再起動して…。http://192.168.11.200:9999/ にアクセスすると、オレンジ色のいつも…あれ?「Error in exception handler.」になりますね。

laravel/storage に書き込み権限が無い場合に出力されるエラーらしいので、権限を付与してあげます。

# cd /var/www/laravel4-site
# chmod -R 777 app/storage/
# chown -R apache:apache app/storage

として http://192.168.11.200:9999/ にアクセスすると、オレンジ色のいつも画面がでますよね?

laravel の初期設定

動作に問題ないっぽいですが初期設定するのを忘れていたので後付けでやっておきます。あと設定ファイルは必ずバックアップするようにしましょう。
app.php の変更箇所は、5か所(key は自動生成されるけど・・・)あります。

# cd /var/www/laravel4-site/app/config
# cp app.php app.php.old
# vi app.php
 'debug' => true,
 'url' => 'http://192.168.11.200',
 'timezone' => 'Asia/Tokyo',
 'locale' => 'ja',
 'key' => 'a0000GOlufqLFLe6OaLFcbFzsoAnxcRm',

データベースの設定は、次回にね!

ところでバージョンおいくつなの??

プロジェクトのあるディレクトリで以下のようにするとバージョンがわかります。

# cd /var/www/laravel4-site
# php artisan --version
Laravel Framework version 4.2.17

参考にさせて頂きましたサイト様

初めてのLaravel(PHP Framework)
最新鋭のPHPフレームワーク「Laravel4」でWeb開発 | (1)導入編