01 Установка
Требования
PHP 7.2
Phalcon v4 поддерживает только PHP 7.2 и выше. PHP 7.1 был выпущен 2 года назад, и его активная поддержка прекратилась, поэтому мы решили следовать активно поддерживаемым версиям PHP.
PSR
Phalcon требует расширения PSR. Расширение можно загрузить и скомпилировать из этого репозитория GitHub. Инструкции по установке доступны в файле README
репозитория. Как только расширение будет скомпилировано и доступно в вашей системе, вам нужно будет загрузить его на ваш php.ini
. Вам нужно будет добавить эту строку:
extension=psr.so
до
extension=phalcon.so
В качестве альтернативы некоторые дистрибутивы добавляют числовой префикс в ini
файлы. Если это так, выберите высокое число для Phalcon (например, 50-phalcon.ini
).
С помощью Pecl это расширение будет установлено автоматически.
PDO
Поскольку Phalcon слабо связан, он предоставляет функциональность без необходимости дополнительных расширений. Однако некоторые компоненты полагаются на дополнительные расширения для работы. При необходимости подключения к базе данных и доступа к ней необходимо установить расширение php_pdo
. IЕсли ваша СУБД-MySQL/MariaDB или Aurora, вам также понадобится расширение php_mysqlnd
. Аналогично, использование базы данных PostgreSql с Phalcon требует расширения php_pgsql
.
Аппаратное обеспечение
Phalcon разработан таким образом, чтобы потреблять как можно меньше ресурсов, взамен предлагая высокую производительность. Несмотря на то, что мы протестировали Phalcon в различных средах низкого класса (например, 0,25 ГБ оперативной памяти, 0,5 процессора), оборудование, которое вы выберете, будет зависеть от потребностей вашего приложения.
Наш веб-сайт и блог (а также другие сайты) работают на Amazon VM с 512 MB RAM и 1 vCPU.
Программное обеспечение
Наряду с PHP 7.2 или выше, в зависимости от потребностей вашего приложения и необходимых компонентов Phalcon, вам может потребоваться установить следующие расширения:
- curl
- fileinfo
- gettext
- gd2 (для использования класса Phalcon\Image\Adapter\Gd)
- imagick (для использования класса Phalcon\Image\Adapter\Imagick)
- json
libpcre3-dev
(Debian/Ubuntu),pcre-devel
(CentOS),pcre
(macOS)- PDO Расширение, а также соответствующее конкретное расширение СУБД (т. е. MySQL, PostgreSql и т.д.)
Дополнительно, в зависимости от потребностей вашего приложения
- Расширение PDO, а также расширение для работы с соответствующей СУБД (MySQL, PostgreSql и т.д.)
- Расширение OpenSSL
- Расширение Mbstring
- Расширение Memcache, Memcached или любое другое, в зависимости от планируемого драйвера кеша
Примечание: установка этих пакетов зависит от операционной системы, а также от используемого менеджера пакетов (если таковой имеется). Пожалуйста, ознакомьтесь с соответствующей документацией о том, как установить эти расширения.
Для пакета libpcre3-dev
можно использовать следующие команды:
Pecl
Метод установки Pecl доступен для Windows, Linux и MacOS. Под windows будут использоваться предварительно скомпилированные dll-файлы. Под Linux и MacOS он будет компилировать Phalcon локально, чтобы можно было быстрее использовать другой метод установки на этих платформах. Для установки с помощью Pecl убедитесь, что у вас установлен pecl/pear.
pecl channel-update pecl.php.net pecl install phalcon
Debian
sudo apt-get install libpcre3-dev
а затем попробуйте установить Phalcon еще раз
CentOS
sudo yum install pcre-devel
Mac/Osx с помощью Brew
brew install pcre
Без brew
, вам нужно зайти на сайт PCRE и скачать последнюю версию pcre:
tar -xzvf pcre-8.42.tar.gz cd pcre-8.42 ./configure --prefix=/usr/local/pcre-8.42 make make install ln -s /usr/local/pcre-8.42 /usr/sbin/pcre ln -s /usr/local/pcre-8.42/include/pcre.h /usr/include/pcre.h
Для Maverick
brew install pcre
если это дает вам ошибку, вы можете использовать
sudo ln -s /opt/local/include/pcre.h /usr/include/ sudo pecl install apc
Установка
Поскольку Phalcon компилируется как расширение PHP, его установка несколько отличается от любого другого традиционного фреймворка PHP. Phalcon должен быть установлен и загружен как модуль веб-сервера.
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
Основные релизы (alpha, beta и т.д.)
curl -s https://packagecloud.io/install/repositories/phalcon/mainline/script.deb.sh | sudo bash
Примечание: это нужно сделать только один раз, если только ваш дистрибутив не изменится или вы не захотите переключиться со стабильной сборки на ночную.
Установка Phalcon
Чтобы установить Phalcon выполните следующие команды в терминале:
PHP 7
sudo apt-get update sudo apt-get install php7.2-phalcon
Сторонние PPA-репозитории
Ondřej Surý
Так же существует возможность использовать репозиторий Ondřej Surý, вместо packagecloud.io.
Добавление репозитория:
sudo add-apt-repository ppa:ondrej/php sudo apt-get update
установка Phalcon:
sudo apt-get install php-phalcon4
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
Основные релизы (alpha, beta и т.д.)
curl -s https://packagecloud.io/install/repositories/phalcon/mainline/script.rpm.sh | sudo bash
Примечание: это нужно сделать только один раз, если только ваш дистрибутив не изменится или вы не захотите переключиться со стабильной сборки на ночную.
Установка Phalcon
Чтобы установить Phalcon выполните следующие команды в терминале:
sudo yum update sudo yum install php72u-phalcon
Сторонние RPM-репозитории
Remi
Remi Collet поддерживает отличный репозиторий для операционных систем использующих RPM-пакеты. Вы можете найти инструкции о том, как включить его для вашего дистрибутива здесь.
Установка Phalcon, после того, проста:
yum install php56-php-phalcon4
Дополнительные версии доступны как для конкретной архитектуры (x86 / x64), так и для конкретной версии PHP
FreeBSD
Порт для FreeBSD. Для его установки необходимо выполнить следующие команды:
pkg_add
pkg_add -r phalcon4
Сборка из исходников
export CFLAGS="-O2 --fvisibility=hidden" cd /usr/ports/www/phalcon4 make install clean
Gentoo
Оверлей для установки Phalcon может быть найден здесь: https://github.com/smoke/phalcon-gentoo-overlay
Raspberry Pi
Для Raspberry Pi нет репозитария, поэтому надо компилировать из исходников.
sudo -s git clone https://github.com/phalcon/cphalcon cd cphalcon/ git checkout tags/v4.0.0 ./ zephir fullclean zephir build
Для комманды git checkout tags/v4.0.0 ./ список доступных версий можно узнать с помощью комманды:
git tag
И соответственно заменить v4.0.0 на наиболее свежую версию.
Также необходимо увеличить размер файла подкачки со 100 МБ по умолчанию до не менее 2000 МБ. Потому что компилятору не хватает оперативной памяти.
sudo -s nano /etc/dphys-swapfile
Замена CONF_SWAPSIZE=100
на CONF_SWAPSIZE=2000
После сохранения настроек перезагрузите демон:
/etc/init.d/dphys-swapfile stop /etc/init.d/dphys-swapfile start
macOS
В macOs вы можете скомпилировать и установить расширение из исходников, либо воспользоваться brew
или macports
:
Необходимое программное обеспечение
Brew включает бинарные пакеты, поэтому вам не нужно самостоятельно компилировать Phalcon. Если вы хотите скомпилировать расширение самостоятельно, вам необходимо установить следующие зависимости:
- Набор инструментов для разработчика PHP 7.2.x/7.3.x (php-dev)
- XCode
Brew
Brew
Бинарная установка (предпочтительно):
brew tap phalcon/extension https://github.com/phalcon/homebrew-tap brew install phalcon
Компиляция phalcon:
brew tap phalcon/extension https://github.com/phalcon/homebrew-tap brew install phalcon --build-from-source
MacPorts
sudo port install php72-phalcon sudo port install php73-phalcon
Откройте ваш php.ini и добавьте в конец файла:
extension=php_phalcon.so
Перезагрузите веб-сервер.
Windows
Для использования Phalcon в Windows вам понадобится установить phalcon.dll. Мы подготовили различные DLL для большинства целевых платформ. DLL могут быть найдены на нашей страничке загрузок.
В первую очередь определите вашу версию PHP, а также архитектуру. Обратите внимание, если вы скачаете неподходящую версию DLL, Phalcon работать не будет. Вам может помочь функция phpinfo()
, которая выводит соответствующую информацию. В приведенном ниже примере, нам понадобится NTS версия DLL:
Доступны следующие DLL:
Архитектура | Версия | Тип |
---|---|---|
x64 | 7.x | Потокобезопасный |
x64 | 7.x | Не являющийся потокобезопасным (NTS) |
x86 | 7.x | Потокобезопасный |
x86 | 7.x | Не являющийся потокобезопасным (NTS) |
Откройте ваш php.ini и добавьте в конец файла:
extension=php_phalcon.dll
Перезагрузите веб-сервер.
Компиляция из исходников
Сборка из исходников похожа в большинстве сред (Linux/macOs).
Необходимое программное обеспечение
- Набор инструментов для разработчика PHP 7.2.x/7.3.x (php-dev)
- Компилятор GCC (Linux/Solaris/FreeBSD) или Xcode (macOS)
- re2c >= 0.13
- libpcre-dev (libpcre3-dev)
Эти пакеты можно установить в системе с помощью соответствующего диспетчера пакетов. Ниже приведены инструкции для популярных дистрибутивов linux:
Ubuntu
sudo apt-get install php7-dev libpcre3-dev gcc make
Suse
sudo zypper install php7-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
Компиляция Phalcon
cd cphalcon/ git checkout tags/v4.0.1 ./ zephir fullclean zephir build
Проверьте модуль
php -m | grep phalcon
Вам понадобится добавить 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
Приведенные выше инструкции позволят скомпилировать и установить модуль в вашей системе. Вы также можете скомпилировать расширение и добавить его вручную в ini
файл:
cd cphalcon/ git checkout tags/v4.0.0 ./ zephir fullclean zephir compile cd ext phpize ./configure make && make install
Если вы используете метод, описанный выше, вам нужно добавить extension=phalcon.so
в вашем php.ini
как для CLI, так и для веб-сервера.
Настройка Сборки
По умолчанию мы компилируем, чтобы быть максимально совместимыми со всеми процессорами (gcc -mtune=native -O2 -fomit-frame-pointer
). Если вы хотите, чтобы компилятор генерировал оптимизированный машинный код, соответствующий процессору, на котором он в данный момент работает, вы можете установить свои собственные флаги компиляции, экспортировав CFLAGS перед сборкой. Например
export CFLAGS="-march=native -O2 -fomit-frame-pointer" zephir build
Это создаст наилучший возможный код для этого чипсета, но, скорее всего, сломает скомпилированный объект на более старых чипсетах.
Общий Хостинг
Запуск вашего приложения на общем хостинге может ограничить вас в установке Phalcon, особенно если у вас нет корневого доступа. Некоторые панели управления веб-хостингом, к счастью, имеют поддержку Phalcon.
cPanel & WHM
cPanel & WHM поддерживают Phalcon с помощью Easy Apache 4 (EA4). Вы можете установить Phalcon, включив модуль в Easy Apache 4 (EA4).
Plesk
Панель управления plesk не поддерживает Phalcon, но вы можете найти инструкции по установке на веб-сайте Plesk