Фреймворк Symfony набирает все большую популярность в среде профессиональных PHP программистов и его компоненты используются в работе многих CMS'ок.

Вступление

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

В отличии от полноценных фреймворков, Symfony - это набор компонентов которые можно установить и использовать индивидуально. Эти компоненты являются основой фреймворка, но также их модно использовать отдельно, т.е. без связи друг с другом. Для установки компонентов можно использовать Composer - очень удобно и практично.

Кроме того, Symfony2 состоит из отдельных компонентов, которые называются бандлами. Этот "швейцарский нож" программиста помогает очень быстро начать новый проект. Сообщество Symfony рекомендует брать сборку Standard Edition как самый оптимальный и простой вариант для начала нового проекта. Эта сборка содержит наиболее популярные бандлы, при помощи которых можно быстро настроить и запустить систему в работу.

В этой статье мы покажем как установить этот фреймворк Symfony2 и как начать его использовать в повседневной работе. Для этого, мы предполагаем, что у Вас уже запущен сервер на базе Ubuntu VPS с привилегиями sudo и доступом к терминалу. Дополнительно, необходимо на сервере настроить вебсервисы, желательно LAMP стек (Linux, Apache, MySQL и PHP), но также можно настроить Nginx. Проверьте чтобы была установлена версия PHP 5.3.3 или выше.

 

Установка

Существует 2 основных способа установки фреймворка. Можно просто скачать и распаковать архив дистрибутива в папку проекта или воспользоваться удобной утилитой Composer. В этой статье, мы пойдем по первому пути и скачаем Symfony прямо в нашу корневую директорию ваебсервера: /var/www. Все файлы фреймворка внутри архива находятся в директории Symfony, поэтому не придется создавать дополнительных директорий. Перейдите в /var/www и скачайте архив:

cd /var/www
wget http://symfony.com/download?v=Symfony_Standard_Vendors_2.4.4.tgz

Возьмите ссылку на нужную версию на странице загрузки Symfony. После окончания загрузки распакуйте архив (название архива может отличаться, в зависимости от выбранной версии):

tar -zxvf download?v=Symfony_Standard_Vendors_2.3.3.tgz

Теперь у Вас появится папка с названием Symfony, в которой содержатся все файлы фреймворка. Можете удалить файл архива с вашего VPS сервера если любите поддерживать чистоту и порядок.

 

Права доступа

Есть несколько файлов и директорий для которых нужно настроить права доступа. Необходимо сделать из доступными для записи вебсервера. Если в качестве вебсервера используется Apache, то он работает от пользователя www-data и группы www-data. Выполните следующие команды в терминале (в директории приложения) для того, чтобы рекурсивно изменить владельца файлов и папок:

chown -R root:www-data app/cache
chown -R root:www-data app/logs
chown -R root:www-data app/config/parameters.yml

Это сделает их (и все внутри) принадлежащими пользователю root и группе www-data. Теперь давайте убедимся что пользователи группы также имеют право записи в эти директории:

chmod -R 775 app/cache
chmod -R 775 app/logs
chmod -R 775 app/config/parameters.yml
 

Настройка сервера

Далее, проверьте конфигурацию вебсервера и убедитесь, что все работает нормально. Symfony2 имеет возможность протестироваться. Для этого перейдите по адресу:

http://www.example.com/Symfony/web/config.php

Если при запуске видите ошибку: "This script is only accessible from localhost", это говорит о том, что Вы пытаетесь получить доступ удаленно. При использовании VPS сервера так и должно быть. Давайте настроим фреймворк для удаленного доступа.

Откройте файл config.php из директории /web Вашего недавно загруженного фреймворка. Найдите следующие строки:

if (!in_array(@$_SERVER['REMOTE_ADDR'], array(
    '127.0.0.1',
    '::1',
))) {

Здесь нужно добавить в массив новое значение с Вашим IP адресом для которого нужно разрешить доступ к внутренним ресурсам Symfony, которые предназначены для разработчика. Можете поискать Google "как определить IP" чтобы узнать как определить свой адрес и затем вставить его в массив примерно так:

if (!in_array(@$_SERVER['REMOTE_ADDR'], array(
    '127.0.0.1',
    '::1',
    'YOUR IP',
))) {

Думаю теперь Вы сможете получить доступ к тестированию конфигурации из удаленного веб-браузера. Постарайтесь следовать следующим инструкциям на странице отладки для лучшей настройки совместной работы VPS и Symfony. Решив основные проблемы о которых сообщила страница отладки, можете нажать на кнопке "Bypass configuration and go to the Welcome page" чтобы перейти на домашнюю страницу Вашего нового Symfony2 приложения.

Если Вы видите ошибку: "You are not allowed to access this file. Check app_dev.php for more information", то необходимо открыть файл app_dev.php из директории /web фреймворка и закомментировать следующий код:

if (isset($_SERVER['HTTP_CLIENT_IP'])
    || isset($_SERVER['HTTP_X_FORWARDED_FOR'])
    || !in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', 'fe80::1', '::1'))
) {
    header('HTTP/1.0 403 Forbidden');
    exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
}

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

 

Глобальные Настройки

На приветственной странице приложения, которое только что было создано Вы можете нажать кнопку Configure чтобы пройти мастер конфигурации в браузере. На первой странице, можно настроить данные для подключения к базе данных. Фреймворк предложит несколько драйверов для подключения к базам данных: MySQL, SQLite, PosgreSQL, Oracle и т.д. Затем нажмите Next и сгенерируйте секретный ключ для защиты от CSRF атак.

Если после этого нажать Next, введенная информация будет сохранена в файл parameters.yml расположенный в директории app/config. Если Вы правильно выполнили действия в начале по установке прав доступа к файлам, то процесс должен быть успешно завершен. Если же нет, то можете скопировать и вставить код в файл самостоятельно.

 

Вендоры / Зависимости

Symfony проект зависит от некоторых внешних библиотек. You can find these in a folder called /vendor of your project and are downloaded and managed by the PHP dependency manager called Composer. Можете обратиться к этой статье чтобы узнать о работе с Composer, а также получить больше информации о нем.

Внимание: Когда Вы запустите команды php composer.phar install или php composer.phar update, Composer очистит кэши и установленные ассеты. Дополнительно, это обратно изменит права доступа для папки app/cache, поэтому Вам прийдется повторить процедуру выше по установке прав доступа и сделать их доступными для записи вебсервера на VPS.

 

В заключение

В этом руководстве мы показали как установить PHP фреймворк Symfony2 и как сделать его начальную настройку. В следующий раз, мы продемонстрируем несколько концепций работы Symfony приложения.

Оригинальная статья: How To Install and Get Started with Symfony 2 on an Ubuntu VPS
Перевод: Иван Кодер

Add new comment

Image CAPTCHA
Enter the characters shown in the image.