Как установить и начать работу с Symfony 2 в Ubuntu 14.04

Вступление

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

В этом руководстве мы увидим, как установить, настроить и начать работу с приложением Symfony 2 в Ubuntu 14.04.

[.note] # Это настройкаdevelopment, предназначенная для ознакомления вас с Symfony и начала написания вашего первого проекта Symfony. Мы проведем вас через настройку и установку нового проекта Symfony.
#

Предпосылки

Для этого урока вам понадобятся:

  • Один сервер Ubuntu 14.04

  • Пользователь sudo без полномочий root, которого вы можете настроить, выполнивInitial Server Setup tutorial

[[step-1 -—- install-php]] == Шаг 1. Установка PHP

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

Во-первых, давайте обновим кеш менеджера пакетов:

sudo apt-get update

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

sudo apt-get install php5-cli

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

php -v

И вы должны получить вывод, похожий на этот:

OutputPHP 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

[[step-2 -—- configuring-date-timezone-in-php-ini]] == Шаг 2 - Настройка date.timezone в php.ini

Symfony требует, чтобы параметрdate.timezone был установлен в ваших файлахphp.ini. Если вы тестируете это руководство на новом сервере, этот параметр еще не определен. В таком случае ваше приложение Symfony не запустится.

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

Откройте файлphp.ini с помощью nano или вашего любимого редактора командной строки:

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

Найдите строку, содержащуюdate.timezone. Раскомментируйте директиву, удалив знак; в начале строки, и добавьте соответствующий часовой пояс для вашего приложения. В этом примере мы будем использоватьEurope/Amsterdam, но вы можете выбрать любойsupported timezone.

Модифицированный php.ini

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

Сохраните файл и выйдите.

[[step-3 -—- getting-the-symfony-installer]] == Шаг 3 - Получение установщика Symfony

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

Следующая команда загрузит установщик Symfony и поместит его на ваш путь/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

Вывод должен выглядеть так:

Output
 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

. . .

[[step-4 -—- created-a-new-symfony-project]] == Шаг 4 - Создание нового проекта Symfony

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

cd ~
symfony new myproject

Это создаст новую папкуmyproject внутри вашего домашнего каталога, содержащую новое приложение Symfony. Команда выдаст вывод, подобный следующему:

Output
 Downloading Symfony...

 Preparing project...

 ✔  Symfony 2.7.3 was successfully installed. Now you can:

    * Change your current directory to /home/sammy/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

[[step-5 -—- running-the-application-with-the-symfony-console]] == Шаг 5 - Запуск приложения с помощью консоли Symfony

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

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

Консоль Symfony - это CLI-сценарий, в котором есть несколько команд, помогающих создавать и тестировать приложение. Вы можете дажеinclude your own commands написать на PHP!

Веб-сервер можно запустить в любое время с помощью консольной командыserver:run. Однако настройки по умолчанию, используемые командой Symfony, будут принимать соединения только сlocalhost на порту8000. Если вы следуете этому руководству на внешнем сервере разработки / тестирования или на локальной виртуальной машине, вам нужно будет указать в команде дополнительный параметр, сообщающий веб-серверу прослушивать другой IP-адрес.

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

php app/console server:run 0.0.0.0:8000
OutputServer running on http://0.0.0.0:8000

Quit the server with CONTROL-C.

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

Теперь у вас должна быть возможность получить доступ к приложению, если вы укажете в браузереhttp://your_server_ip:8000. Вы должны увидеть такую ​​страницу:

Symfony App Preview

Команда будет работать в активном терминале до тех пор, пока вы не прекратите ее выполнение с помощьюCTRL+C. Чтобы веб-сервер работал в фоновом режиме, вы должны вместо этого использовать командуserver:start:

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

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

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

Вы также можете проверить состояние веб-сервера с помощью:

php app/console server:status 0.0.0.0:8000

Когда сервер не работает, вы должны получить следующий вывод:

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

Когда на указанном IP-адресе и порте запущен активный сервер, вы должны получить следующий вывод:

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

Просто помните, что командыserver:stop иserver:status должны включать ту же частьIPADDRESS:PORT, которую вы использовали при инициализации сервера с помощьюserver:start.

Заключение

Symfony - это полноценный PHP-фреймворк, подходящий для создания приложений любого размера. В этом руководстве мы увидели, как установить и начать работу с Symfony 2 на новом сервере Ubuntu 14.04, используя встроенный веб-сервер PHP для запуска приложения. Для получения дополнительной информации о том, как создавать приложения PHP с помощью Symfony, посмотрите ихofficial documentation.

Related