AddThis Smart Layers

среда, 8 октября 2014 г.

Как установить Symfony2 фреймворк на сервер с CentOS 6

Как установить Symfony2 фреймворк на сервер с CentOS 6
На днях довелось познакомиться с новым для меня фреймворком Symfony2. В процессе знакомства столкнулся с несколькими проблемами при установке аппликации, созданной на основе этого фреймворка на сервер под управлением Cpanel (CentOS 6.5 64bit). Ниже подробное описание проблем и их решение.



С чего нужно начать? Конечно с изучения системных требований.
У базового фреймворка Symfony2 системные требования вполне стандартные, за одним небольшим исключением, ему необходимо расширение PHP Intl с библиотекой  ICU 4+

При этом, ньюанс заключается еще в том, что некоторые аппликации, написанные на этом фреймворке существенно повышают системные требования.

В моем случае речь идет об аппликации OroCRM, относительно новой системе CRM с открытым кодом, которая полностью интегрируется с нашей любимой Magento.

Для установки OroCRM понадобится PHP 5.4.9 и выше, а также расширение Intl с библиотекой ICU 4.4 и выше.

Так как я устанавливал аппликацию на абсолютно девственном виртуальном сервере, я не был никак ограничен в выборе версий для базового стека.

Как я уже написал, сервер у меня работает под управлением Cpanel, который существенно облегчает жизнь при первичной конфигурации и дальнейшей поддержке.

С чего я начал:
  • Apache 2.2
  • PHP 5.5
  • MySQL 5.6
  • Nginx 1.6.2 в роли Reverse Proxy
Сервер Apache и PHP со всеми необходимыми компонентами и расширениями компилируются при помощи фирменного механизма Cpanel EasyApache.

При выборе расширений PHP очень важно не устанавливать стандартное расширение Intl. Потому что в в этом случае оно установится вместе с библиотекой ICU 4.1 и Symfony2 мы уже не сможем установить без танцев с бубном.

Чуть позже мы установим это расширение при помощи PECL.

Почему именно PHP 5.5? А почему бы и нет? Тем более что акселлератор Zend Opcache уже встроен в его ядро.

После того, как компиляция завершилась можно начать процесс установки фреймворка Symfony2. Начать с тем чтобы буквально сразу же увидеть, что версия библиотеки ICU не соответствует системным требованиям.

Поэтому имеет смысл все же сначала обновить эту библиотеку.

Попытка обновить ее при помощи yum ни к чему не привела. Система утверждает что у нас уже стоит самая свежая версия.

Поэтому смело можно удалять старую версию, будем устанавливать новую из исходников.

# yum remove libciu
# yum remove libicu-devel

После этого идем на оффсайт ICU, находим там исходники наиболее актуальной версии и устанавливаем их. В моем случае речь идет о версии 54.1

Сразу же хочу сказать, при установке на CentOS 6.5 не нужно указывать никаких специальных ключей или менять стандартную конфигурацию. Устанавливаем просто as is. Процесс компиляции довольно долгий, можно спокойно пойти приготовить себе чашечку другую кофе.

# wget http://download.icu-project.org/files/icu4c/54.1/icu4c-54_1-src.tgz
# tar -xvf icu4c-54_1-src.tgz
# cd icu/source/
# ./runConfigureICU Linux
# make
# make install

На этом с установкой библиотеки ICU закончили.
Теперь нужно установить расширение PHP Intl, предварительно проверив, не была ли случайно установлена какая-нибудь старая версия этого расширения.

# pecl uninstall intl
# pecl install intl

В процессе установки система попросить указать путь к библиотеке ICU. Не нужно ничего указывать, просто жмем Enter и завершаем установку.
Расширение само должно прописаться в файле php.ini.

Перезапускаем apache и делаем проверку
# php -i | grep -i intl

Если все в порядке, то ответ будет примерно таким
intl
intl.default_locale => no value => no value
intl.error_level => 0 => 0
intl.use_exceptions => 0 => 0

Наконец можно приступать к установке Symfony2.

Как рекомендуют сами разработчики, желательно устанавливать этот фреймворк при помощи библиотеки управления зависимостями Composer.

# curl -s https://getcomposer.org/installer | php

Далее не имеет смысла дублировать здесь процесс установки фреймворка, так как он достаточно подробно описан на сайте разработчика.

В следующем посте опишу более подробно процесс установки системы OroCRM, которая, как я уже написал выше, создана на основе Symfony2, а также заострю внимание на некоторых проблемах, с которыми столкнулся в процесс установки.

Комментариев нет :

Отправить комментарий