選擇一項:命令列安裝 | 手動安裝

命令列安裝

目前只能在 *nix 系統(Linux、OS X、Unix、等等)運行。

我們的快速安裝程序是一個精簡的 Oil 套件介面,能讓你以一行命令建立一個新的專案,你也不再需要在你的 Oil 命令前加上 'php'。

要安裝快速安裝程序,只要打開一個 shell 並執行以下命令:

$ curl get.fuelphp.com/oil | sh

這將會需要你的密碼授權,因為它會安裝指令碼到 /usr/bin。

現在你已經可以在你的專案裡使用 'oil' 這個命令取代 'php oil'。

如果你已經在 1.6 版前安裝 oil 指令碼,你也必須重新安裝來讓它運行 composer!

要建立一個新的專案,只要運行:

$ oil create <project_name>

這將在你所給名稱的目錄裡建立一個文件夾,接著複製儲存庫中的檔案與所有子模組到該目錄。

請注意:這也將運行 $ oil refine install,使必要的目錄為可寫入, 以及 $ php composer.phar update 來拉取(pull)定義在 composer 的相依套件。

手動安裝簡介

接下來的方法將在你的虛擬主機根目錄安裝預設的 Fuel 框架。

從 github 複製最新的發行版本

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

從 github 複製最新的開發分支

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

或者,你也可以使用 composer 一氣呵成地安裝一切:

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

別忘了那一個點號,否則這會在你的虛擬主機根目錄中建立一個稱為 fuel 的文件夾!

下載 zip 檔案

  1. 下載 Fuel 框架
  2. 解壓縮下載的檔案
  3. 執行 $ php composer.phar update 來安裝所有依賴套件
  4. 將檔案移動到你的伺服器
    • 注意:在程式碼裡的 public 目錄,等於你的網頁伺服器的公開文件目錄, 也就是 public_html、public、htdocs 等。移動其內容到這些目錄, 或一個你要使用 Fuel 的網頁根目錄下的子目錄。
    • 安全起見, 放置 Fuel 目錄於公開文件目錄之外。
    • 編輯 index.php 裡的路徑指向你的應用程式、核心以及套件的目錄。
    /
      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 套件管理器來動態拉取(pull)相依套件, 不管是從 Packagist、Github、或從一個自定義位置。 從 1.7.2 版開始,所有 FuelPHP 框架元件也透過 composer 安裝。 Composer 是經由 composer.json 檔案控制,你會在你的 FuelPHP 安裝的根目錄找到它。為了方便, 我們包括了 composer.phar 函式庫,這樣你就可以直接執行 composer:

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

如果你沒有執行此步驟,FuelPHP 將不會啟動,因為整個框架元件是透過 composer 被載入!

配置

主要的配置在 app/config/config.php,根據你的喜好編輯它。

安裝在文件根目錄

如同第三點所提及的,為了安全起見,我們非常建議將 Fuel 安裝在文件根目錄。

不過,也有一些情況下你想這樣做,例如:在(本地)開發環境,使用 Apache 的動態質量虛擬主機模組(Apache's dynamic mass virtual hosting module) 快速設定新的開發環境,而不須重啟網頁伺服器。

如果你需要它,在你已經設計用做安裝根目錄的文件夾安裝 FuelPHP。在你完成之後,進到 public 文件夾, 把 public 文件夾的東西移動到上一層,並移除 public 文件夾。該文件夾唯一的目的是為你的網頁伺服器根文件提供錨點。 你不再需要它了,因為你已經在根文件的文件夾安裝 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,你可能仍然想要存取安裝在相同文件夾結構下的其他東西。

假設你已經在根文件的 "/deep/sub/folder" 文件夾中安裝了 FuelPHP, 你通常不得不使用 URL http://example.org/deep/sub/folder 來存取你的 FuelPHP 應用程式。

Apache

透過放置此 .htaccess 到更高的文件夾,如果沒有找到相符的檔案或目錄名稱, 你可以讓瀏覽器重導向到你的 FuelPHP 應用程式:

<IfModule mod_rewrite.c>
	RewriteEngine on

	# 發送請求到子文件夾,如果它不是真實檔案、文件夾,或者它是 root 請求
	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

	# 發送請求到子文件夾,如果它不是真實檔案、文件夾,或者它是 root 請求
	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 規則到 virtualhost 定義。

Nginx

Nginx 不支援客戶端配置檔案,所以你需要為虛擬主機添加 rewrite 到 Nginx 配置檔案中。 你可以使用這個做為指南:

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/ /deep/sub/folder/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 /var/www/fuelphp/public$fastcgi_script_name;
	}
}

設定環境

預設情況下,環境設定為開發模式。Fuel 使用環境去定義使用哪個資料庫設定,但你也可以應用在其他事情上。

要設定環境,將以下這行放進你的 .htaccess 中。

SetEnv FUEL_ENV production

對於 Nginx,你使用如上範例所見的 "fastcgi_param" 語句。詳細可用選項在 Fuel 類別裡的 類別常數