[TOC]
# 要求
Phalcon需要運行PHP。其松耦合設計允許開發人員安裝Phalcon并使用其功能而無需額外擴展。某些組件與其他擴展有依賴關系。例如,使用數據庫連接將需要`php_pdo` 擴展。如果您的RDBMS是MySql / MariaDb或Aurora數據庫,您還需要 `php_mysqlnd` 擴展。同樣,使用帶有Phalcon的PostgreSql數據庫需要 `php_pgsql` 擴展。
## 硬件
Phalcon旨在盡可能少地使用資源,同時提供高性能。雖然我們已經在各種低端環境中測試了Phalcon(例如0.25GB RAM,0.5 CPU),但您選擇的硬件將取決于您的應用需求。
我們的網站和博客(以及其他網站)托管在具有512MB RAM和1核CPU的Amazon VM上。
## 軟件
* PHP >= 5.5
>[danger] 您應該始終嘗試使用最新版本的Phalcon和PHP同時解決bug,安全性增強和性能。PHP 5.5將在不久的將來被棄用,而Phalcon 4將僅支持PHP 7。
Phalcon需要以下擴展才能運行(最低):
* `curl`
* `gettext`
* `gd2` (to use the `Phalcon\Image\Adapter\Gd` class)
* `libpcre3-dev` (Debian/Ubuntu), `pcre-devel` (CentOS), `pcre` (macOS)
* `json`
* `mbstring`
* `pdo_*`
* `fileinfo`
* `openssl`
### 可選,具體取決于您的應用程序的需求
* [PDO](http://php.net/manual/en/book.pdo.php) 擴展以及相關的RDBMS特定擴展(即[MySQL](http://php.net/manual/en/ref.pdo-mysql.php), [PostgreSql](http://php.net/manual/en/ref.pdo-pgsql.php) 等)
* [OpenSSL](http://php.net/manual/en/book.openssl.php) 擴展
* [Mbstring](http://php.net/manual/en/book.mbstring.php) 擴展
* [Memcache](http://php.net/manual/en/book.memcache.php), [Memcached](http://php.net/manual/en/book.memcached.php) 或其他相關的緩存適配器,具體取決于您對緩存的使用情況
# 安裝
由于Phalcon被編譯為PHP擴展,因此其安裝與任何其他傳統PHP框架有些不同。Phalcon需要作為模塊安裝和加載到Web服務器上。
## Linux
要在Linux上安裝Phalcon,您需要在您的發行版中添加我們的存儲庫,然后進行安裝。
### 基于DEB的發行版(Debian,Ubuntu等)
#### 存儲庫安裝
將存儲庫添加到您的分發中:
##### 穩定版
```bash
curl -s https://packagecloud.io/install/repositories/phalcon/stable/script.deb.sh | sudo bash
```
或
##### 嘗鮮版
```bash
curl -s https://packagecloud.io/install/repositories/phalcon/nightly/script.deb.sh | sudo bash
```
>[warning] 這只需要執行一次,除非您的發行版更改或您想要從穩定版本切換到嘗鮮版本。
#### Phalcon安裝
要安裝Phalcon,您需要在終端中發出以下命令:
##### PHP 5.x
```bash
sudo apt-get update
sudo apt-get install php5-phalcon
```
##### PHP 7
```bash
sudo apt-get update
sudo apt-get install php7.0-phalcon
```
#### 其他源
#### Ond?ej Sury
如果您不想在[packagecloud.io](https://packagecloud.io/phalcon)上使用我們的存儲庫,您可以隨時使用[Ond?ej Sury](https://launchpad.net/~ondrej/+archive/ubuntu/php/)提供的存儲庫。
回購存儲庫:
```php
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
```
還有Phalcon:
```php
sudo apt-get install php-phalcon
```
### 基于RPM的發行版(CentOS,Fedora等)
#### 存儲庫安裝
將存儲庫添加到您的分發中:
##### 穩定版
```bash
curl -s https://packagecloud.io/install/repositories/phalcon/stable/script.rpm.sh | sudo bash
```
or
<a name='installation-linux-rpm-repository-nightly'></a>
##### 嘗鮮版
```bash
curl -s https://packagecloud.io/install/repositories/phalcon/nightly/script.rpm.sh | sudo bash
```
>[warning] 這只需要執行一次,除非您的發行版更改或您想要從穩定版本切換到嘗鮮版本。
#### Phalcon安裝
要安裝Phalcon,您需要在終端中發出以下命令:
##### PHP 5.x
```bash
sudo yum update
sudo yum install php56u-phalcon
```
##### PHP 7
```bash
sudo yum update
sudo yum install php70u-phalcon
```
#### 其他源
##### Remi
[Remi Collet](https://github.com/remicollet) Remi Collet為基于RPM的安裝維護著一個出色的存儲庫。您可以在[此處](https://blog.remirepo.net/pages/Config-en)找到有關如何為其分發啟用它的說明。
之后安裝Phalcon就像以下一樣簡單:
```bash
yum install php56-php-phalcon3
```
其他版本可用于特定于體系結構(x8/x64)以及特定于PHP(5.5,5.6,7.x)
## FreeBSD
一個端口可用于FreeBSD。要安裝它,您需要發出以下命令:
### `pkg_add`
```bash
pkg_add -r phalcon
```
### Source
```bash
export CFLAGS="-O2 --fvisibility=hidden"
cd /usr/ports/www/phalcon
make install clean
```
## Gentoo
Gentoo的可以在 [https://github.com/smoke/phalcon-gentoo-overlay](https://github.com/smoke/phalcon-gentoo-overlay) 找到安裝Phalcon
## macOS
在macOS系統上,您可以使用`brew`,`macports`或源代碼編譯和安裝擴展:
### 要求
* PHP 5.5.x/5.6.x/7.0.x/7.1.x
* XCode
### Brew
由于[homebrew/php](https://brew.sh/2018/01/19/homebrew-1.5.0/) tap 已被棄用并且正在被刪除,因此已經創建了Phalcon的自定義存儲庫。
PHP 5.5尚未移植到`homebrew/core`,因此不再存在。另一方面,PHP 7.2已被添加。
```bash
brew tap tigerstrikemedia/homebrew-phalconphp
brew install php56-phalcon
brew install php70-phalcon
brew install php71-phalcon
brew install php72-phalcon
```
### MacPorts
```bash
sudo port install php55-phalcon
sudo port install php56-phalcon
```
編輯你的php.ini文件,然后在最后追加:
```ini
extension=php_phalcon.so
```
重啟您的web服務器。
## Windows
要在Windows上使用Phalcon,您需要安裝phalcon.dll。我們根據目標平臺編譯了幾個DLL。DLL可以在我們的[下載](https://phalconphp.com/en/download/windows)頁面中找到。
確定您的PHP安裝和架構。如果您下載錯誤的DLL,Phalcon將無法正常工作。`phpinfo()`包含此信息。在下面的示例中,我們將需要DLL的NTS版本:

可用的DLL是:
| 架構 | 版本 | 類型 |
|:------------:|:-------:| --------------------- |
| x64 | 7.x | Thread safe |
| x64 | 7.x | Non Thread safe (NTS) |
| x86 | 7.x | Thread safe |
| x86 | 7.x | Non Thread safe (NTS) |
| x64 | 5.6 | Thread safe |
| x64 | 5.6 | Non Thread safe (NTS) |
| x86 | 5.6 | Thread safe |
| x86 | 5.6 | Non Thread safe (NTS) |
| x64 | 5.5 | Thread safe |
| x64 | 5.5 | Non Thread safe (NTS) |
| x86 | 5.5 | Thread safe |
| x86 | 5.5 | Non Thread safe (NTS) |
編輯你的php.ini文件,然后在最后追加:
```ini
extension=php_phalcon.dll
```
重啟您的web服務器。
<a name='installation-sources'></a>
## 源碼編譯
從源代碼編譯類似于大多數環境(Linux/macOS)。
### 要求
* PHP 5.5.x/5.6.x/7.0.x/7.1.x
* GCC 編譯 (Linux/Solaris/FreeBSD) 或 Xcode (macOS)
* re2c >= 0.13
* libpcre-dev
您可以使用相關的包管理器在系統中安裝這些包。流行的Linux發行版的說明如下:
#### Ubuntu
```bash
sudo apt-get install php5-dev libpcre3-dev gcc make
```
#### Suse
```bash
sudo zypper install php5-devel gcc make
```
#### CentOS/Fedora/RHEL
```bash
sudo yum install php-devel pcre-devel gcc make
```
### 編譯Phalcon
我們首先需要從Github存儲庫中克隆Phalcon
```bash
git clone https://github.com/phalcon/cphalcon
```
現在構建擴展
```bash
cd cphalcon/build
sudo ./install
```
您現在需要將`extension=phalcon.so`添加到PHP ini并重新啟動Web服務器,以便加載擴展。
```ini
# Suse: Add a file called phalcon.ini in /etc/php5/conf.d/ with this content:
extension=phalcon.so
# CentOS/RedHat/Fedora: Add a file called phalcon.ini in /etc/php.d/ with this content:
extension=phalcon.so
# Ubuntu/Debian with apache2: Add a file called 30-phalcon.ini in /etc/php5/apache2/conf.d/ with this content:
extension=phalcon.so
# Ubuntu/Debian with php5-fpm: Add a file called 30-phalcon.ini in /etc/php5/fpm/conf.d/ with this content:
extension=phalcon.so
# Ubuntu/Debian with php5-cli: Add a file called 30-phalcon.ini in /etc/php5/cli/conf.d/ with this content:
extension=phalcon.so
```
## 高級編譯
Phalcon會自動檢測您的架構,但是,您可以強制編譯特定的架構:
```bash
cd cphalcon/build
# One of the following:
sudo ./install --arch 32bits
sudo ./install --arch 64bits
sudo ./install --arch safe
```
如果自動安裝程序失敗,您可以手動構建擴展:
```bash
git clone https://github.com/phalcon/cphalcon
# cd cphalcon/build/php5/32bits
cd cphalcon/build/php5/64bits
# NOTE: for PHP 7 you have to use
# cd cphalcon/build/php7/32bits
# or
# cd cphalcon/build/php7/64bits
make clean
phpize --clean
export CFLAGS="-O2 --fvisibility=hidden"
./configure --enable-phalcon
make
make install
```
如果你有特定的PHP版本運行:
```bash
git clone https://github.com/phalcon/cphalcon
# cd cphalcon/build/php5/32bits
cd cphalcon/build/php5/64bits
# NOTE: for PHP 7 you have to use
# cd cphalcon/build/php7/32bits
# or
# cd cphalcon/build/php7/64bits
make clean
/opt/php-5.6.15/bin/phpize --clean
export CFLAGS="-O2 --fvisibility=hidden"
./configure --with-php-config=/opt/php-5.6.15/bin/php-config --enable-phalcon
make
make install
```
您現在需要將`extension=phalcon.so`添加到PHP ini并重新啟動Web服務器,以便加載擴展。
您可以在Web服務器根目錄中創建一個包含以下內容的小腳本:
```php
<?php
phpinfo();
```
并將其加載到您的Web瀏覽器上。Phalcon應該有一個部分。如果沒有,請確保您的擴展已正確編譯,您已對 `php.ini` 進行了必要的更改,并且您已重新啟動Web服務器。
您還可以從命令行檢查安裝:
```bash
php -r 'print_r(get_loaded_extensions());'
```
這將輸出類似于此的內容:
```php
Array
(
[0] => Core
[1] => libxml
[2] => filter
[3] => SPL
[4] => standard
[5] => phalcon
[6] => pdo_mysql
)
```
您還可以使用CLI查看安裝的模塊:
```bash
php -m
```
>[danger] 請注意,在某些基于Linux的系統中,您可能需要更改兩個`php.ini`文件,一個用于Web服務器(Apache/Nginx),另一個用于CLI。如果僅為Web服務器加載Phalcon,則需要找到CLI`php.ini`并為要加載的模塊添加必要的附加內容。
- 常規
- Welcome
- 貢獻
- 生成回溯
- 測試重現
- 單元測試
- 入門
- 安裝
- Web服務器設置
- WAMP
- XAMPP
- 教程
- 基礎教程
- 教程:創建一個簡單的REST API
- 教程:V?kuró
- 提升性能
- 教程:INVO
- 開發環境
- Phalcon Compose (Docker)
- Nanobox
- Phalcon Box (Vagrant)
- 開發工具
- Phalcon開發者工具的安裝
- Phalcon開發者工具的使用
- 調試應用程序
- 核心
- MVC應用
- 微應用
- 創建命令行(CLI)應用程序
- 依賴注入與服務定位
- MVC架構
- 服務
- 使用緩存提高性能
- 讀取配置
- 上下文轉義
- 類加載器
- 使用命名空間
- 日志
- 隊列
- 數據庫
- 數據庫抽象層
- Phalcon查詢語言(PHQL)
- ODM(對象文檔映射器)
- 使用模型
- 模型行為
- ORM緩存
- 模型事件
- 模型元數據
- 模型關系
- 模型事務
- 驗證模型
- 數據庫遷移
- 分頁
- 前端
- Assets管理
- 閃存消息
- 表單
- 圖像
- 視圖助手(標簽)
- 使用視圖
- Volt:模板引擎
- 業務邏輯
- 訪問控制列表(ACL)
- 注解解析器
- 控制器
- 調度控制器
- 事件管理器
- 過濾與清理
- 路由
- 在session中存儲數據
- 生成URL和路徑
- 驗證
- HTTP
- Cookies管理
- 請求環境
- 返回響應
- 安全
- 加密/解密
- 安全
- 國際化
- 國際化
- 多語言支持