ようこそ!逆襲のニートブログへ

ブログ内検索

最近の記事

はてなブックマーク数

この日記のはてなブックマーク数

カテゴリー

月別アーカイブ

FuelPHPをNginxで動かす設定

さくらVPSでNginxを動かしている。
PHPフレームワークのFuelPHPを使いたい。
FuelPHPをNginxで動かす設定のメモ。

(参考)NginXのインストールテスト:逆襲のニート

ハイパフォーマンスHTTPサーバ Nginx入門
Clement Nedelcu
アスキー・メディアワークス
2011-04-21
3150円


FuelPHP入門
早川 聖司
ソーテック社
2012-06-02
2709円


↑これらの解説書にざっと目を通しておくと吉。(・∀・)



(1) ダウンロード
http://fuelphp.com/
↑ここからダウンロード。
バージョンは、FuelPHP1.4だった。



(2) アップロード
「oilコマンド」を使わないで、手動でWebサーバーにアップロードする。

ダウンロードした圧縮ファイルを展開してみると、中にgitの管理ファイルが残っていたので、一応削除しておく。
「.gitignore」
「.gitkeep」
「readme.md」
という3つのファイル。
あと、Apacheを使わないので、「.htaccess」も要らない。



(3) ディレクトリ構成
(例)「/var/www/html/subdomain.domain.com/」←このディレクトリが、サブドメインのドキュメントルートになっている場合。

ここに、FuelPHPの
「public」内の「index.php」と「assets」
「fuel」
をアップロードしてみた。

すると、
/var/www/html/subdomain/fuel/ (フォルダ)
/var/www/html/subdomain/assets/ (フォルダ)
/var/www/html/subdomain/index.php (ファイル)
の3つが並んでいる。

Webサーバー内の「subdomain」というフォルダが、「subdomain.domain.com」というURLにアクセスしたときに、表示される場所として、設定してあります。



(4) Nginxでサブドメインの追加
SSHでWebサーバーにアクセス。
「su」でルートになる。

サブドメインを使っているので、Nginxで、バーチャルホストの設定をしている。
→ サブドメインの追加作業。

Nginxの設定ファイルをviで編集。

# vi /usr/local/nginx/conf/nginx.conf



以下のような記述を追記する。


http {

# virtual host for subdomain
server {
server_name subdomain.domain.com;
listen 80;
root /var/www/html/subdomain;
index index.php index.html index.htm;

# Rewrite for FuelPHP
location / {
if (-f $request_filename) {
expires 30d;
break;
}
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?q=$1 last;
}
}

# access limit for dot file (ex -> .htaccess)
location ~ /\. { deny all; }

# PHP
location ~* \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
include fastcgi_params;
}
}
}



(【追記】2012/12/05 ここから)
セキュリティー上、フレームワークのファイルにはアクセスできないようにしておいた方が無難ですね。
FuelPHPのコアである「/var/www/html/subdomain/fuel/」にはアクセス禁止にする設定を追加しても良いと思います。
→Nginxの設定ファイルで、「location ~ /fuel/ { deny all; }」という一行を追加してもOK。
(上の例だと、# access limit for dot file (ex -> .htaccess)というアク禁の辺りに追記)

(参考)FuelPHPをNginxで動かしてみる @AKIBE

# FuelPHPの実行ファイルをアクセス不可にします。
location /fuel/ {
deny all;
}



↑あれ~~~!?
Nginxの設定ファイルの書き方だけど、Rewriteルールは、@AKIBEさんのやり方の方いいかも。。。

# すべてのアクセスをindex.phpに振ります。
location / {
try_files $uri /index.php?$uri&$args;
}


これだと、スッキリしてる。

Nginxの「location」ディレクティブ(設定項目)で、「try_files」というオプションが用意されており、これでアクセスするファイルを変更できるみたい。
=「Nginx try_files」で、レッツGoogle検索!!!

nginxの覚書 - Ktat's Wiki
nginx連載5回目: nginxの設定、その3 - locationディレクティブ - インフラエンジニアway - powerd by HEARTBEATS
なるほど、それもいいかもねー。

私のやり方は、CodeIgniterのやり方をそのまま踏襲しました。(=やりたいことは同じなので)
どっちがいいか、後で検討してみます。(どっちでもええかな?)
(【追記】2012/12/05 ここまで)


Nginxの設定ファイルの文法チェック。

# /usr/local/nginx/sbin/nginx -t


→エラーメッセージが出なければOK

Nginxを再起動する。

# service nginx restart





(5) FuelPHPのパーミッション変更
「/fuel/app/cache」
「/fuel/app/config」
「/fuel/app/logs」
「/fuel/app/tmp」
の4つのディレクトリをnginxからアクセス可能にする。
→とりあえず、パーミッションを「777」にしとけばOK。



(6) トップページにアクセステスト
「http://subdomain.domain.com/」にアクセスしてみる。
FuelPHPのデフォルトのトップページが表示されたら、インストール成功!

…なのだが、エラーメッセージがズラズラ表示された。orz

Fatal error: Uncaught exception 'Fuel\Core\PhpErrorException' with message 'date():


というようなエラーで、Google検索したら、解決策が紹介されていた。(助かります!)

(参考)
FuelPHP1.4のインストール : てるてる坊主
madroom project: FuelPHP1.4とconfigファイル
FuelPHPでデフォルトタイムゾーンを設定する | CAPH TECH

↓↓↓

「fuel/app/config/config.php」を編集する。


return array(
'default_timezone' => 'Asia/Tokyo'
);


を追記すれば、上記のエラーメッセージは消えた。

ほんでもって、FuelPHPのデフォルトページが表示された。
だけど、404のエラーページが表示された。orz

FuelPHPのデフォルトページ

FuelPHP自体は、動作しているみたいなので、とりあえずOKということにしよう。
デバッグは、明日でいいや…。(・ω・)

ヤッホー!明日からWebアプリ作るぞー!(・∀・)
金儲けじゃぞいwww
関連記事

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURL:
http://gooddays1.blog37.fc2.com/tb.php/934-ff942a33

FC2Ad