いずれかを選択してください: コマンドラインからインストール | 手動でインストール

コマンドラインからインストール

この方法は現在 *nix システム (Linux, OS X, Unix など) でのみ動作します。

我々のクイックインストーラは 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 により定義された依存ライブラリを取得する php composer.phar update も実行します。

手動でインストール

これはバーチャルホストのルートディレクトリに FuelPHP フレームワークをデフォルトインストールします。

GitHub から最新のリリースを clone する

$ cd /where/ever/your/virtualhost/root/is
$ git clone git://github.com/fuel/fuel.git .
$ ./composer.phar self-update
$ ./composer.phar update --prefer-dist

最後のドットを忘れないでください。さもないと、バーチャルホストのルートディレクトリに fuel というフォルダが作成されます!

あるいは、Composer を使いすべてを一度にインストールできます:

$ composer create-project fuel/fuel:dev-1.7/master --prefer-dist .

GitHub から最新の開発ブランチを clone する

$ cd /where/ever/your/virtualhost/root/is
$ git clone git://github.com/fuel/fuel.git -b 1.8/develop .
$ ./composer.phar self-update
$ ./composer.phar update

最後のドットを忘れないでください。さもないと、バーチャルホストのルートディレクトリに fuel というフォルダが作成されます!

別の方法として、Composer を使いすべてをインストールすることもできます:

$ composer create-project fuel/fuel:dev-1.8/develop --prefer-source .

Zip ファイルをダウンロードする

  1. Fuel フレームワークをダウンロードします
  2. ダウンロードしたファイルを解凍します
  3. ファイルをサーバに移動します
    • ソース内の public ディレクトリは Web サーバの公開用ディレクトリ、例えば、 public_html, public, htdocs などになります。 その内容をそこへ移動するか Fuel を使用したい webroot のサブディレクトリへ移動します。
    • fuel ディレクトリを公開ディレクトリの外に置くことをセキュリティの観点から推奨します。
    • index.php 内のパスを編集し、あなたの app, core, packages ディレクトリに合わせます。
    /
      docs/
      fuel/
        app/
        core/
        packages/
      public/
        .htaccess
        assets/
        index.php
      oil
    

インストールの後は、フレームワークがアクセスする必要のあるフォルダのパーミッションが正しいことを確認してください。デフォルトのフォルダを書き込み可能にする oil タスクが用意されています:

$ php oil refine install
	Made writable: APPPATH/cache
	Made writable: APPPATH/logs
	Made writable: APPPATH/tmp
	Made writable: APPPATH/config

Composer

バージョン 1.6 から、FuelPHP は Composer パッケージマネージャを使い、動的に依存コンポーネントを、 Packagist、Github または独自に定義された場所からプルします。バージョン 1.7.2 からは、 FuelPHP フレームワークのすべてのコンポーネントを Composer 経由でインストールします。Composer は composer.json ファイルにより制御されます。そのファイルはインストールした FuelPHP のルートにあります。 composer コマンドをすぐに簡単に実行できるように、 FuelPHP に composer.phar ライブラリを含んでいます:

$ php composer.phar self-update
$ php composer.phar update

重要なフレームワークのコンポーネントが Composer 経由でロードされるため、このステップを実行しないと、FuelPHP は起動しません!

設定

メインの設定は app/config/config.php にあります。好きに編集してください。

URL rewriting

Fuel comes with default rewrite rules for Apache (.htaccess) and IIS (web.config). You can find these files in the web application DOCROOT, by default this is the "public folder". If you use Nginx, please find an example here.

Please note that in some default webserver configuration, URL rewriting is disabled by default. To quickly check if this is the case, make a typo in your rewrite config (for example, in your .htaccess file). If your webserver can read and process the file, a typo should give you a 500 Server error. If the typo you introduced doesn't make a change, changes are rewriting or htaccess processing is disabled in the global config.

ドキュメントルート内にインストールする

ポイント 3 で説明したように、セキュリティの観点から Web サーバのドキュメントルート内に Fuel をインストール しない ことを強く推奨します。

しかしながらそうしたいケースもあります。例えば、Apache の大量の動的なバーチャルホストモジュールのある (ローカルの) 開発環境は、 Web サーバを再起動せずに新しい開発環境を素早く構築するために使用されます。

これが必要な場合、ルートと決めたフォルダに FuelPHP をインストールします。その後、publc フォルダに移動し、 すべてのファイルを 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 クラスの クラス定数 にあります。