選擇一項:命令列安装 | 手动安装
命令列安装
目前只能在 *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 档案
- 下载 Fuel 框架
- 解壓縮下载的档案
- 执行
$ php composer.phar update
來安装所有依賴套件 - 将档案移动到你的伺服器
- 注意:在程式码裡的 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 类別裡的 类別常数。