Установка и начало работы с Symfony2 на Ubuntu 14.04

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

Данная статья поможет установить и настроить Symfony 2 а также продемонстрирует процесс создания тестового приложения.

Требования

Для выполнения руководства нужно:

1: Установка PHP

Прежде чем начать, нужно установить PHP для окружения командной строки. Устанавливать полнофункциональный веб-сервер (например, Apache или Nginx) нет необходимости, потому что Symfony поставляется с консольной командой, которая позволяет быстро запускать и управлять встроенным веб-сервером PHP во время разработки приложения.

Для начала обновите кэш пакетного менеджера:

sudo apt-get update

Затем установите пакет php5-cli, чтобы иметь возможность использовтаь и запускать PHP-скрипты в командной строке.

sudo apt-get install php5-cli

Теперь PHP установлен на сервер. Чтобы убедиться в том, что установка прошла успешно, введите:

php -v

На экране появится похожий вывод:

PHP 5.5.9-1ubuntu4.11 (cli) (built: Jul 2 2015 15:23:08)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies

2: Настройка date.timezone в файле php.ini

Для корректной работы Symfony необходимо настроить date.timezone в файле (или файлах) php.ini. Как правило, на свежих серверах эта опция ещё не определена. В таком случае приложение Symfony не запустится.

Нужно отредактировать файл php.ini и настроить данную опцию. Этот файл находится в /etc/php5/cli/php.ini.

Откройте файл в текстовом редакторе:

sudo nano /etc/php5/cli/php.ini

Найдите в нём опцию date.timezone. Раскомментируйте эту строку и укажите в ней часовой пояс для приложния. К примеру, чтобы указать часовой пояс Europe/Amsterdam, нужно ввести:

[Date] ; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Europe/Amsterdam

3: Инсталлятор Symfony

Для создания нового проекта Symfony проще всего использовать официальный Symfony Installer. Это простой скрипт, предназначенный для упрощения начальной загрузки новых приложений Symfony.

Загрузить Symfony Installer и поместить его в /usr/local/bin можно с помощью команды:

sudo curl -LsS http://symfony.com/installer -o /usr/local/bin/symfony

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

sudo chmod a+x /usr/local/bin/symfony

Чтобы проверить работу инсталлятора, введите:

symfony

Вывод будет таким:

Symfony Installer (1.1.7)
=========================
This is the official installer to start new projects based on the
Symfony full-stack framework.
To create a new project called blog in the current directory using
the latest stable version of Symfony, execute the following command:
symfony new blog
. . .

4: Создание нового проекта Symfony

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

К примеру, чтобы создать проект по имени myproject, нужно использовать команды:

cd ~
symfony new myproject

Примечание: Замените условное имя myproject своим именем проекта.

Теперь в домашнем каталоге хранится каталог myproject, содержащий все компоненты нового приложения Symfony. Команда вернёт:

Output
Downloading Symfony...
Preparing project...
✔  Symfony 2.7.3 was successfully installed. Now you can:
* Change your current directory to /home/8host/myproject
* Configure your application in app/config/parameters.yml file.
* Run your application:
1. Execute the php app/console server:run command.
2. Browse to the http://localhost:8000 URL.
* Read the documentation at http://symfony.com/doc

5: Запуск приложения в консоли Symfony

Встроенный веб-сервер PHP (начиная с версии 5.4) предназначен для запуска приложений на стадии разработки с целью протестировать их работу.

Он значительно упрощает разработку, поскольку вам не придётся настраивать полнофункциональный веб-сервер (Apache, Nginx, и т.п.).

Symfony поставляется с консольной командой, которая упрощает процесс управления встроенным веб-сервером PHP, а также позволяет переводить его в фоновый режим (начиная с Symfony 2.6).

Консоль Symfony – это скрипт CLI, предоставляющий несколько команд для создания и тестирования приложения. Также консоль позволяет добавлять собственные пользовательские команды, написанные в PHP.

Веб-сервер можно запустить в любой момент при помощи команды:

server:run

Однако стандартные настройки команды Symfony позволяют принимать соединения только на локальный порт 8000. При необходимости задайте команде дополнительный параметр, указывающий другой IP-адрес, который должен слушать веб-сервер.

Чтобы разрешить соединения с внешних и внутренних сетей, запустите команду в каталоге проекта:

php app/console server:run 0.0.0.0:8000
Server running on http://0.0.0.0:8000
Quit the server with CONTROL-C.

Это запустит веб-сервер PHP, который будет слушать сетевые интерфейсы на порте 8000.

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

http://your_server_ip:8000

На экране появится приветственна страница Symfony.

Команда будет работать в активном терминале, пока вы не остановите её (CTRL + C). Чтобы веб-сервер работал в фоновом режиме, используйте:

php app/console server:start 0.0.0.0:8000
Web server listening on http://0.0.0.0:8000

Это переведёт сервер в фоновый режим, а текущую терминальную сессию можно будет использовать для выполнения других команд. Чтобы остановить сервер, введите:

php app/console server:stop 0.0.0.0:8000
Stopped the web server listening on http://0.0.0.0:8000

Проверить состояние сервера можно при помощи команды:

php app/console server:status 0.0.0.0:8000

Если сервер не запущен, вывод будет таким:

No web server is listening on http://0.0.0.0:8000

Если же сервер активен и работает на определённом IP-адресе и порте, вывод будет иметь такой вид:

Web server still listening on http://0.0.0.0:8000

Примечание: Команды server:stop и server:status должны содержать IP-адрес и номер порта, указанные при запуске сервера.

Теперь новое приложение Symfony2 запущено на встроенном веб-сервере PHP. Больше информации о Symfony2 можно найти в официальной документации фреймворка.

Tags: , ,

Добавить комментарий