Laravel4のインストールと初期設定
熱い日が続きますね……と書こうと思っていたら、雨が振って少し涼しくなりました。
あとは帰るまでに止んでくれるといいんですが。
さて、本日はPHPフレームワークLaravelのインストールと初期設定についてです。
試した環境はnginxとPHP-FPMですが、AppacheのVirtual Hostと.htaccessの設定例も追記します。
project-nameというディレクトリ以下にLaravelのプロジェクトが作成されます。
このファイルにはハッシュ形式で設定が書かれています。
※ComposerでLaravelプロジェクトを作成した際に自動設定されている場合はこの手順は必要ありません。
'key'の項目が未設定の場合はLaravelプロジェクトの直下で下記コマンドを実行してください。
Code HappyではWebサイトのドキュメントルートから外部に設置したpublicへシンボリックリンクを張るという手も紹介されています。
下記が/etc/nginx/nginx.confのserverディレクティブの設定例です。
インストールが成功してサイトにアクセスすると、 Laravelのマークと 「You have arrived.」というメッセージが表示されます。
あとは帰るまでに止んでくれるといいんですが。
さて、本日はPHPフレームワークLaravelのインストールと初期設定についてです。
試した環境はnginxとPHP-FPMですが、AppacheのVirtual Hostと.htaccessの設定例も追記します。
環境
- Cent OS 5.9
- nginx 1.4.1
- PHP 5.4.16 PHP-FPMで動作
参考
・Laravel公式サイトのドキュメント
Quickstart
Installation
・公式ドキュメントの日本語訳
Laravelクイックスタート
インストール
・Code Happy : Getting Started
インストール手順
1.事前準備
Composer
→PHPライブラリの依存関係管理に利用されます。インストール方法は前回の記事を参照php-mcrypt
→暗号とハッシュの生成に利用されます。phpinfo()の出力情報にmcryptが見つからない場合は追加しましょう。PHPのバージョン確認
→LaravelはPHP5.3以降に導入された機能を利用しており、PHP5.3.7以降のバージョンが必須です。2.ComposerでLaravelのプロジェクトを作成する
$ composer create-project laravel/laravel project-name --prefer-distしばらく待つと
project-nameというディレクトリ以下にLaravelのプロジェクトが作成されます。
$ ls project-name CONTRIBUTING.md artisan composer.json phpunit.xml readme.md vendor app bootstrap composer.lock public server.php
3.configファイルの初期設定
app/config/app.phpファイルを開きましょう。このファイルにはハッシュ形式で設定が書かれています。
・アプリケーションキー(secret)の設定
暗号化に使われる32文字のキーを設定します。※ComposerでLaravelプロジェクトを作成した際に自動設定されている場合はこの手順は必要ありません。
'key'の項目が未設定の場合はLaravelプロジェクトの直下で下記コマンドを実行してください。
$ php artisan key:generateApplication key [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx] set successfully. などと表示され、app/config/app.phpファイルにキーが反映されます。
・タイムゾーン と地理情報の設定
こちらはオプションです。デフォルトではUTCと英語の設定になっているので、・・・ 'timezone' => 'Asia/Tokyo', ・・・ 'locale' => 'ja', ・・・などと変更します。
4.ディレクトリのパーミッションの設定
Webサーバの実行ユーザ(nginx / Appacheなら大抵appache)にapp/storage以下のディレクトリへの書き込み権を与えます。 ディレクトリまるごと実行ユーザに所有権を移しても良いですし、 所属グループのパーミッションを変更する形でも構いません。$ chown -R nginx app/storage
5.Webサーバの設定
publicをドキュメントルートに指定して、必要ないファイルを間違って公開しないように設定することが推奨されています。Code HappyではWebサイトのドキュメントルートから外部に設置したpublicへシンボリックリンクを張るという手も紹介されています。
下記が/etc/nginx/nginx.confのserverディレクティブの設定例です。
server {
listen 80;
server_name example.com;
root /path/to/laravel_project/public;
index index.html index.htm index.php;
access_log /path/to/log_dir/access.log;
error_log /path/to/log_dir/error.log;
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
location ~ \.php$ {
try_files $uri =404; #phpファイルが見つからない場合は404
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
# Unixソケットを利用してFastCGIに渡す場合
# fastcgi_pass unix:/path/to/socket_dir/php-fpm.sock;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\php)(/.+)$;
# 以下はfastcgi_paramsファイルに直接記述してもOK
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
}
error_page 404 /index.php;
#動かすための最小限の設定はここまで。
#以下は静的ファイルに対する指定
#画像やCSSなどのexpiresヘッダをせテチ
location ~ \.(html|css|js|jpe?g|png|gif|svg|mpg|flv|swf)$ {
expires 7d;
break;
}
#.htaccess .gitなどへのアクセスを禁止
location ~ /\.(ht|git|svn) {
deny all;
}
#ファビコンとrobots.txtへのアクセスを記録しない
location = /favicon.ico {
acces_log off;
log_not_found off;
}
location = /robots.txt {
acces_log off;
log_not_found off;
}
}
6.参考:Appacheの場合
VirtualHostの設定例です。
<Virtualhost *:80>
DocumentRoot "/path/to/laravel_project/public"
<Directory "/path/to/laravel_project/public">
Options Indexes FollowSymLinks MultiViews
AllowOverride all
</Directory>
</Virtualhost>
デフォルトのpublic/.htaccessで上手く動かないい場合は、下記のように変更すると良いとのことです。
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
インストールが成功してサイトにアクセスすると、 Laravelのマークと 「You have arrived.」というメッセージが表示されます。