前提条件
FuelPHPはインストールとパッケージの依存管理にComposerを利用しています。下記のインストール方法はComposerが存在していることを前提としているので、 FuelPHPのインストールを続ける前に、あなたのローカル環境にComposerがインストールされていることを確認してください。 Composerをあなたのマシンにインストールする方法はこちらのページを参照してください。
コマンドラインからのインストール
Oil を使用する
我々のクイックインストーラは Oil パッケージ用に書き下ろされたインターフェースです。これを使用すると 1つのコマンドで新しいプロジェクトを生成することができます。oil コマンドで php
を使用する必要もありません。
クイックインストーラをインストールするためには、シェルを開き次のコマンドを実行するだけです:
$ curl get.fuelphp.com/oil | sh
この場合、スクリプトを /usr/bin にインストールするためパスワードを尋ねてくるでしょう。
これであなたのプロジェクトでは php oil
の代わりに oil
だけを使用することができます。
バージョン 1.6 以前の oil スクリプトをインストール済みの場合は、composer を実行させるために再度、インストールし直す必要があります!
新しいプロジェクトを作成するには単に以下を実行します:
$ oil create <project_name>
これで、カレントディレクトリにあなたが指定したプロジェクト名のフォルダが作成されます。そしてリポジトリとすべてのサブモジュールをそのフォルダに複製します。
Note: これは、必要なディレクトリを書き込み可能にするための $ oil refine install
も実行します。
そして、Composer により定義された依存ライブラリを取得する $ composer update
も実行します。
この方法は現在 *nix システム (Linux, OS X, Unix など) でのみ動作します。
Composer を使用する
これはバーチャルホストのルートディレクトリに FuelPHP フレームワークをデフォルトインストールします。
GitHub から最新のリリースを clone する
$ cd /where/ever/your/virtualhost/root/is
$ git clone git://github.com/fuel/fuel.git .
$ composer install --prefer-dist
最後のドットを忘れないでください。さもないと、バーチャルホストのルートディレクトリに fuel というフォルダが作成されます!
別の方法として、Composer を使いすべてをインストールすることもできます:
$ composer create-project fuel/fuel --prefer-dist .
最初の方法は、gitリポジトリとしてインストールされたアプリケーションを含めてインストールできる利点があります。 リポジトリを独自の git サーバー変更することができます。これにより、あなたのアプリケーション開発はバージョン管理下にあります。
2つ目の方法は、全ての依存関係を持つ完全なパッケージを作成します。もし、 git リポジトリに追加したい場合は、全ての依存関係をそれに追加します。 もし、全てのアプリケーションの依存関係をダウンロードするためにローカルで composer を実行する手段がない production をターゲットサーバとする場合は、 こちらを利用した方がよいでしょう。
GitHub から最新の開発ブランチを clone する
$ cd /where/ever/your/virtualhost/root/is
$ git clone git://github.com/fuel/fuel.git -b 1.9/develop .
$ composer install
最後のドットを忘れないでください。さもないと、バーチャルホストのルートディレクトリに fuel というフォルダが作成されます!
別の方法として、Composer を使いすべてをインストールすることもできます:
$ composer create-project fuel/fuel:dev-1.9/develop --prefer-source .
どちらも全く同じことを行い、ローカルの git リポジトリにクローンとして最新の開発版をインストールします。
Zip ファイルをダウンロードする
何らかの理由で、 Composer にアクセスできない場合は、 Zip ファイルでFuel Framework をダウンロードすることができます。
これは、 Composer コマンド create-project fuel/fuel --prefer-dist .
が生成するものと全く同じものを含んでいます。
デフォルトのインストールを変更する
インストール後、インストールしたディレクトリには次のようなフォルダ構造が配置されます:
/
docs/
fuel/
app/
core/
packages/
public/
.htaccess
assets/
index.php
oil
この構造では、ソース上の public ディレクトリは、 Web サーバの公開ディレクトリと同一です。 もし、Webサーバの設定で自分のパブリックフォルダ (またはドキュメントルート) を定義できない場合は、 public ディレクトリの内容をプロバイダが指定するフォルダ (public_html 、 public 、 htdocs など) に移動します。
fuel ディレクトリの場所を変更したい場合、または fuel ディレクトリ内の任意のディレクトリを移動する場合、 正しい app 、 core および packages ディレクトリを指すように Web フロントローダー (public/index.php) と コマンドラインフロントローダー (oil) に定義された定数を変更する必要があります。
インストールの後は、フレームワークがアクセスする必要のあるフォルダのパーミッションが正しいことを確認してください。 デフォルトのフォルダを書き込み可能にする oil タスクが用意されています:
$ oil refine install
Made writable: APPPATH/cache
Made writable: APPPATH/logs
Made writable: APPPATH/tmp
Made writable: APPPATH/config
もしこのページのはじめに記載されている oil をインストールしていない場合は、次のようにインストールしたルートディレクトリから oil を実行することができます:
$ cd /where/ever/your/virtualhost/root/is
$ php oil refine install
Made writable: APPPATH/cache
Made writable: APPPATH/logs
Made writable: APPPATH/tmp
Made writable: APPPATH/config
設定
メインの設定は app/config/config.php にあります。好きに編集してください。
URL のリライト
Fuel には Apache (.htaccess) と IIS (web.config) のデフォルトの リライトルールが付属されています。 これらのファイルは Web アプリケーションの DOCROOT (デフォルトでは public フォルダ) で見つけることができます。 Nginx を使用する場合は、 こちらの例から見つけてください。
デフォルトの Web サーバの構成によっては、 URL の rewrite がデフォルトで無効になっていることに注意してください。 このような場合を迅速にチェックするには、リライト定義 (例えば .htaccess) に入力ミスをします。 Web サーバがそのファイルを読み込み処理することができる場合は、入力ミスによって 500 サーバエラーになるはずです。 もしあなたが記述した入力ミスで変更がない場合は、リライトが書き換えられているかグローバル定義で htaccess 処理が無効に なっています。
ドキュメントルート内にインストールする
セキュリティ上の理由から、 Web サーバのドキュメントルート内に Fuel をインストールすることは 強く推奨されていません 。
しかしながらそうしたいケースもあります。例えば、Apache の大量の動的なバーチャルホストモジュールのある (ローカルの) 開発環境は、 Web サーバを再起動せずに新しい開発環境を素早く構築するために使用されます。
これが必要な場合、ルートと決めたフォルダに FuelPHP をインストールします。その後、public フォルダに移動し、 すべてのファイルを 1つ上の階層に移動し、public フォルダを削除します。public フォルダの唯一の目的は、Web サーバのドキュメントルートのためのアンカーポイントを提供することです。 FuelPHP をドキュメントルートフォルダにインストールしたら、もはや必要ありません。
移動した後、index.php の中のアプリケーション、パッケージ、フレームワークコアの場所を変更します:
define('APPPATH', realpath(__DIR__.'/fuel/app/').DIRECTORY_SEPARATOR);
define('PKGPATH', realpath(__DIR__.'/fuel/packages/').DIRECTORY_SEPARATOR);
define('COREPATH', realpath(__DIR__.'/fuel/core/').DIRECTORY_SEPARATOR);
いくつかのフォルダをより深くするのはどうでしょう?
違いはありません。手順はまったく同じです。
しかしながら、この場合のアプリケーションへのアクセスは、フォルダ構成のため少々複雑になるかもしれません。同じフォルダ構成のまま移動したファイル群にそのままアクセスすることは、 従来の .htaccess ではできません。
FuelPHP がドキュメントルートの "/deep/sub/folder" にインストールされているとすると、通常ならば http://example.org/deep/sub/folder でアプリーケーションにアクセスする必要があります。
Apache
上位フォルダのどこかに以下の .htaccess を置くことで、存在しないファイルやディレクトリにアクセスがあった場合に、 あなたのアプリケーションにリダイレクトをさせることができます:
<IfModule mod_rewrite.c>
RewriteEngine on
# 存在するファイルやフォルダでなかったり、ルートへのリクエストの場合、リクエストをサブフォルダに送る
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d [OR]
RewriteCond $1 ^$
RewriteRule ^(.*)$ /deep/sub/folder [R=301,L]
</IfModule>
これはリダイレクトであることに注意してください。ユーザにサブフォルダを隠しません。もし、サブフォルダを隠したい場合は、代わりに以下を使ってください:
<IfModule mod_rewrite.c>
RewriteEngine on
# 存在するファイルやフォルダでなかったり、ルートへのリクエストの場合、リクエストをサブフォルダに送る
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d [OR]
RewriteCond $1 ^$
RewriteRule ^(.*)$ /deep/sub/folder [QSA,L]
</IfModule>
もちろん、もし "sub" フォルダに配置した場合は、URL から "sub/folder" を隠せますが、"deep" は隠せません...
.htaccess を有効にすると Apache はかなりスローダウンすることに注意してください。サーバ設定へのアクセス権を持っている場合は、 これを無効にし、バーチャルホストの定義に rewrite のルールを追加することを検討してください。
Nginx
Nginx はクライアントの設定ファイルをサポートしていませんので、Nginx の設定ファイルにバーチャルホストのための rewrite ルールを追加する必要があります。 ガイドラインとして以下を使用できます:
server {
server_name fuelphp.local;
# これらのファイルに Nginx が書き込めることを確認する
access_log /var/www/fuelphp/nginxlogs/access.log;
error_log /var/www/fuelphp/nginxlogs/error.log;
root /var/www/fuelphp/public;
location / {
index index.php;
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param FUEL_ENV "production";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
環境を設定する
デフォルトでは、環境は開発モードにセットされています。Fuel は環境を使用して、使用するデータベース設定を定義します。しかし、他のことにも利用できます。
環境を設定するために、.htaccess ファイルに次の行を追加します。
SetEnv FUEL_ENV production
Nginx では、上の例にあるように "fastcgi_param" 文を使います。使用できるオプションの詳細は Fuel クラスの クラス定数 にあります。