Sections

Требования

Phalcon требует PHP для запуска. Его слабо связанный дизайн позволяет разработчикам один раз установив Phalcon, использовать его возможности везде, без дополнительных расширений. Однако некоторые его компоненты зависят от других расширений. Например, использование подключений к базам данных, требует расширения php_pdo. Если ваша СУБД MySql/MariaDb или Aurora, вам так же понадобится расширение php_mysqlnd. Аналогично, использование базы данных PostgreSql с Phalcon, требует расширения php_pgsql.

Аппаратное обеспечение

Phalcon разработан таким образом, чтобы потреблять как можно меньше ресурсов, взамен предлагая высокую производительность. Хотя мы и тестировали Phalcon на маломощных машинах (например с 256 MB RAM и процессором 500 MHz), оборудование, которое вы будете выбирать, будет зависеть от потребностей приложения.

Наш веб-сайт и блог (а также другие сайты) работают на Amazon VM с 512 MB RAM и 1 vCPU.

Программное обеспечение

  • PHP > = 5.5
Рекомендуется всегда использовать последние версии Phalcon и PHP из соображений стабильности, улучшения безопасности, а также производительности. Поддержка PHP 5.x будет прекращена в ближайшее время. Phalcon 4 будет поддерживать только PHP 7.

Phalcon нуждается в следующем минимальном наборе расширений:

  • curl
  • gettext
  • gd2 (для использования класса Phalcon\Image\Adapter\Gd)
  • libpcre3-dev (Debian/Ubuntu), pcre-devel (CentOS), pcre (macOS)
  • json
  • mbstring
  • pdo_*
  • fileinfo
  • openssl

Дополнительно, в зависимости от потребностей вашего приложения

  • Расширение PDO, а также расширение для работы с соответствующей СУБД (MySQL, PostgreSql и т.д.)
  • Расширение OpenSSL
  • Расширение Mbstring
  • Расширение Memcache, Memcached или любое другое, в зависимости от планируемого драйвера кеша

Установка

Since Phalcon is compiled as a PHP extension, its installation is somewhat different than any other traditional PHP framework. Phalcon needs to be installed and loaded as a module on your web server.

Linux

Перед установкой Phalcon в Linux, необходимо добавить репозиторий.

DEB дистрибутивы (Debian, Ubuntu, и т.д.)

Настройка репозитория

Добавьте репозиторий для вашего дистрибутива:

Стабильные релизы
curl -s https://packagecloud.io/install/repositories/phalcon/stable/script.deb.sh | sudo bash

или

Ночные релизы
curl -s https://packagecloud.io/install/repositories/phalcon/nightly/script.deb.sh | sudo bash
Это необходимо сделать один раз, при смене дистрибутива или переключении со стабильных сборок на ночные.

Установка Phalcon

Чтобы установить Phalcon выполните следующие команды в терминале:

PHP 5.x
sudo apt-get update
sudo apt-get install php5-phalcon

PHP 7
sudo apt-get update
sudo apt-get install php7.0-phalcon

Сторонние PPA-репозитории

Ondřej Surý

Так же существует возможность использовать репозиторий Ondřej Surý, вместо packagecloud.io</0>.</p>

Добавление репозитория:

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update

установка Phalcon:

sudo apt-get install php-phalcon

RPM дистрибутивы (CentOS, Fedora, и т.д.)

Настройка репозитория

Добавьте репозиторий для вашего дистрибутива:

Стабильные релизы
curl -s https://packagecloud.io/install/repositories/phalcon/stable/script.rpm.sh | sudo bash

или

Ночные релизы
curl -s https://packagecloud.io/install/repositories/phalcon/nightly/script.rpm.sh | sudo bash
Это необходимо сделать один раз, при смене дистрибутива или переключении со стабильных сборок на ночные.

Установка Phalcon

Чтобы установить Phalcon выполните следующие команды в терминале:

PHP 5.x
sudo yum update
sudo yum install php56u-phalcon

PHP 7
sudo yum update
sudo yum install php70u-phalcon

Сторонние RPM-репозитории

Remi

Remi Collet поддерживает отличный репозиторий для операционных систем использующих RPM-пакеты. Вы можете найти инструкции о том, как включить его для вашего дистрибутива здесь.

Установка Phalcon, после того, проста:

yum install php56-php-phalcon3

Доступны версии для архитектур x86/x64 и PHP 5.5/5.6/7.x.

FreeBSD

A port is available for FreeBSD. To install it you will need to issue the following commands:

pkg_add

pkg_add -r phalcon

Сборка из исходников

export CFLAGS="-O2 --fvisibility=hidden"

cd /usr/ports/www/phalcon

make install clean

Gentoo

Оверлей для установки Phalcon может быть найден здесь: https://github.com/smoke/phalcon-gentoo-overlay

macOS

В macOs вы можете скомпилировать и установить расширение из исходников, либо воспользоваться brew или macports:

Необходимое программное обеспечение

  • Набор инструментов для разработчика PHP 5.5.x/5.6.x/7.0.x/7.1.x (php-dev)
  • XCode

Brew

As the homebrew/php tap has been deprecated and is in the process of being removed, A custom repository for Phalcon has been created.

PHP 5.5 has not been ported to homebrew/core and as such no longer exists. PHP 7.2 on the other hand has been added.

brew tap tigerstrikemedia/homebrew-phalconphp
brew install php56-phalcon
brew install php70-phalcon
brew install php71-phalcon
brew install php72-phalcon

MacPorts

sudo port install php55-phalcon
sudo port install php56-phalcon

Откройте ваш php.ini и добавьте в конец файла:

extension=php_phalcon.so

Перезагрузите веб-сервер.

Windows

Для использования Phalcon в Windows вам понадобится установить phalcon.dll. Мы подготовили различные DLL для большинства целевых платформ. DLL могут быть найдены на нашей страничке загрузок.

В первую очередь определите вашу версию PHP, а также архитектуру. Обратите внимание, если вы скачаете неподходящую версию DLL, Phalcon работать не будет. Вам может помочь функция phpinfo(), которая выводит соответствующую информацию. В приведенном ниже примере, нам понадобится NTS версия DLL:

phpinfo

Доступны следующие DLL:

Архитектура Версия Тип
x64 7.x Потокобезопасный
x64 7.x Не являющийся потокобезопасным (NTS)
x86 7.x Потокобезопасный
x86 7.x Не являющийся потокобезопасным (NTS)
x64 5.6 Потокобезопасный
x64 5.6 Не являющийся потокобезопасным (NTS)
x86 5.6 Потокобезопасный
x86 5.6 Не являющийся потокобезопасным (NTS)
x64 5.5 Потокобезопасный
x64 5.5 Не являющийся потокобезопасным (NTS)
x86 5.5 Потокобезопасный
x86 5.5 Не являющийся потокобезопасным (NTS)

Откройте ваш php.ini и добавьте в конец файла:

extension=php_phalcon.dll

Перезагрузите веб-сервер.

Компиляция из исходников

Сборка из исходников похожа в большинстве сред (Linux/macOs).

Необходимое программное обеспечение

  • Набор инструментов для разработчика PHP 5.5.x/5.6.x/7.0.x/7.1.x (php-dev)
  • Компилятор GCC (Linux/Solaris/FreeBSD) или Xcode (macOS)
  • re2c >= 0.13
  • libpcre-dev (libpcre3-dev)

You can install these packages in your system with the relevant package manager. Instructions for popular linux distributions are below:

Ubuntu

sudo apt-get install php5-dev libpcre3-dev gcc make

Suse

sudo zypper install php5-devel gcc make

CentOS / Fedora / RHEL

sudo yum install php-devel pcre-devel gcc make

Компиляция Phalcon

Для начала необходимо получить Phalcon с официального репозитория на Github

git clone https://github.com/phalcon/cphalcon

затем собрать расширение

cd cphalcon/build
sudo ./install

Вам понадобится добавить extension=phalcon.so в ваш php.ini и перезапустить веб-сервер для загрузки расширения.

# Suse: создайте файл phalcon.ini в /etc/php5/conf.d/ со следующим содержимым:
extension=phalcon.so

# CentOS/RedHat/Fedora: создайте файл phalcon.ini в /etc/php.d/ со следующим содержимым:
extension=phalcon.so

# Ubuntu/Debian с apache2: создайте файл 30-phalcon.ini в /etc/php5/apache2/conf.d/ со следующим содержимым:
extension=phalcon.so

# Ubuntu/Debian с php5-fpm: создайте файл 30-phalcon.ini в /etc/php5/fpm/conf.d/ со следующим содержимым:
extension=phalcon.so

# Ubuntu/Debian с php5-cli: создайте файл 30-phalcon.ini в /etc/php5/cli/conf.d/ со следующим содержимым:
extension=phalcon.so

Расширенная компиляция

Инсталлятор Phalcon способен автоматически обнаружить целевую архитектуру. Однако, вы можете указать архитектуру явно, при запуске:

cd cphalcon/build

# Одна из следующих команд установит Phalcon для нужной архитектуры:
sudo ./install --arch 32bits
sudo ./install --arch 64bits
sudo ./install --arch safe

Если в результате автоматической установки произошел сбой, вы можете попробовать собрать расширение вручную:

git clone https://github.com/phalcon/cphalcon
# cd cphalcon/build/php5/32bits
cd cphalcon/build/php5/64bits

# Обратите внимание:
# Для PHP 7 вам необходимо использовать
# cd cphalcon/build/php7/32bits
# или
# cd cphalcon/build/php7/64bits

make clean
phpize --clean

export CFLAGS="-O2 --fvisibility=hidden"
./configure --enable-phalcon

make
make install

Если у вас не стандартная версия PHP:

git clone https://github.com/phalcon/cphalcon
# cd cphalcon/build/php5/32bits
cd cphalcon/build/php5/64bits

# Обратите внимание:
# Для PHP 7 вам необходимо использовать
# cd cphalcon/build/php7/32bits
# или
# 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 и перезапустить веб-сервер для загрузки расширения.

Можно создать небольшой скрипт в корне веб-сервера, следующего содержания:

<?php

phpinfo();

и загрузить его в браузере. В появившемся результате, среди прочего, вы должны увидеть секцию Phalcon. Если такой секции нет, убедитесь в том, что модуль был скомпилирован правильно, вы сделали необходимые изменения в файле php.ini, а также веб-сервер был перезагружен.

Также вы можете проверить вашу установку из командной строки:

php -r 'print_r(get_loaded_extensions());'

Это выведет что-то похожее на это:

Array
(
    [0] => Core
    [1] => libxml
    [2] => filter
    [3] => SPL
    [4] => standard
    [5] => phalcon
    [6] => pdo_mysql
)

Также вы можете проверить установку модуля командой:

php -m
Обратите внимание, в большинстве Linux систем вы должны изменить два файла php.ini. Один для веб-сервера (Apache/Nginx), другой — для CLI. Если вы столкнетесь с тем, что Phalcon загружается только для веб-сервера, вам нужно будет найти php.ini относящийся к CLI и внести в него необходимые изменения, для загрузки модуля в консольном режиме.