Встановлення і налаштування Symfony

28/04/2015 0 symfony, встановлення, налаштування

Мета цього розділу — допомогти вам налаштувати і запустити робочий додаток, створений за допомогою Symfony. Для спрощення процесу створення нових додатків у Symfony передбачена програма зі встановлення.

Встановлення Symfony Installer

Використання програми Symfony Installer — єдиний рекомендований спосіб створення нових додатків на Symfony. Ця програма є PHP-додатком, який потрібно встановити у вашу систему лише один раз — і тоді він зможе створювати необмежену кількість додатків на Symfony.

Для цієї програми потрібна версія PHP 5.4 або вища. Якщо ви досі використовуєте стару версію PHP 5.3, то не зможете користуватися Symfony Installer. Що робити в цьому випадку, читайте нижче у підрозділі "Створення додатку на Symfony без допомоги Installer" нижче.

Залежно від вашої операційної системи, Installer потрібно встановлювати по-різному.

Операційні Системи Linux і Mac OS

Відкрийте командну консоль і виконайте наступні команди:

$ sudo curl -LsS http://symfony.com/installer -o /usr/local/bin/symfony
$ sudo chmod a+x /usr/local/bin/symfony

Це створить глобальну команду symfony у вашій системі.

Операційна Система Windows

Відкрийте командну консоль і виконайте таку команду:

 c:\> php -r "readfile('http://symfony.com/installer');" > symfony

Потім перемістіть завантажений файл symfony в каталог вашого проекту і запустіть його наступним чином:

c:\> move symfony c:\projects
c:\projects\> php symfony 

Створення Додатку на Symfony

Коли Symfony Installer встановлено, створіть свій перший додаток на Symfony з допомогою команди new:

# Linux, Mac OS X
$ symfony new my_project_name

# Windows
c:\> cd projects/
c:\projects\> php symfony new my_project_name

Ця команда створює новий каталог під назвою my_project_name, яка містить свіжий проект на основі стабільної версії Symfony, найновішої серед доступних. Крім того, Installer перевіряє, чи відповідає ваша система технічним вимогам для запуску додатків Symfony. Якщо ні, то ви побачите список змін, які необхідно внести, щоб вона відповідала цим вимогам.

З міркувань безпеки перед поширенням всі версії Symfony захищаються цифровим підписом. Якщо ви хочете перевірити цілісність будь-якої версії Symfony, дотримуйтесь вказівок, наведених у цій оригінальній статті.

Створення Проекту на Конкретній Версії Symfony

Якщо потрібно, щоб проект базувався на конкретній версії Symfony, використовуйте необов'язковий другий аргумент команди new:

# use the most recent version in any Symfony branch
$ symfony new my_project_name 2.3
$ symfony new my_project_name 2.5
$ symfony new my_project_name 2.6

# use a specific Symfony version
$ symfony new my_project_name 2.3.26
$ symfony new my_project_name 2.6.5 

Якщо ви хочете, щоб ваш проект базувався на останній LTS-версії Symfony, використовуйте lts в якості другого аргументу команди new: 
# Linux, Mac OS X
$ symfony new my_project_name lts

# Windows
c:\projects\> php symfony new my_project_name lts

Читайте в оригіналі про Процес випуску Symfony, щоб краще розуміти, чому існує кілька версій Symfony і яку з них вам варто для свого проекту.

Створення Додатків Symfony без Допомоги Installer

Якщо ви досі використовуєте PHP 5.3 або з інших причин не можете запустити Installer,  ви можете створювати додатки на Symfony, використовуючи альтернативний метод встановлення на основі Composer.

Composer — це менеджер залежностей, що використовується в сучасних РНР-додатках, а також може використовуватись для створення нових додатків на базі Symfony-фреймворк. Якщо ви не встановили його глобально, читайте в оригіналі статтю Глобальне встановлення Composer

Створення Додатку на Symfony з Допомогою Composer

Коли Composer буде встановлений на вашому комп'ютері, виконайте команду create-project для створення нового додатка на основі останньої стабільної версії Symfony:

$ composer create-project symfony/framework-standard-edition my_project_name

Якщо вам потрібно створити додаток на конкретній версії Symfony, вкажіть цю версію в якості другого аргументу команди create-project:

$ composer create-project symfony/framework-standard-edition my_project_name "2.3.*"

Якщо у вас повільний інтернет, вам може здатися, що Composer нічого не робить. Саме так вам і здається? Тоді додайте прапорець -vvv до попередньої команди — і побачите докладні відомості про все, що робить Composer.

Запуск Додатку на Symfony

Symfony використовує внутрішній веб-сервер, що надається РНР, для запуску додатків під час їх розробки. Таким чином, щоб запустити додаток на Symfony, потрібно переглянути каталог проекту і виконати наступну команду:

$ cd my_project_name/
$ php app/console server:run

Потім відкрийте браузер і зайдіть на http://localhost:8000 — ви побачите стартову сторінку Symfony:

Symfony Welcome Page

 

 

 

 

 

 

 

 

 

 

 

Замість стартової сторінки ви можете побачити порожню сторінку або сторінку з помилкою. Це пов'язано з неправильною конфігурацією доступу до папки. Залежно від вашої операційної системи, є кілька варіантів вирішення цієї проблеми. Всі вони описані нижче в підрозділі "Налаштування прав доступу".

Внутрішній веб-сервер PHP доступний в PHP 5.4 і більш пізніх версіях. Якщо ви досі використовуєте застарілий PHP 5.3 версії, ви повинні налаштувати віртуальний хост у своєму веб-сервері.

Команда server:run підходить тільки при розробці додатку. Для запуску додатків на Symfony на робочих серверах вам потрібно буде налаштувати веб-сервер Apache або Nginx, як описано в оригінальному розділі Налаштування веб-сервера.

Завершивши роботу над додатком Symfony, ви можете зупинити сервер за допомогою команди server:stop:

$ php app/console server:stop

Перевірка Конфігурації та Запуск Додатку Symfony

Додатки Symfony комплектуються візуальним тестером конфігурації веб-сервера, щоб визначити, чи підходить конфігурація вашого сервера для використання Symfony. Щоб перевірити конфігурацію, використовуйте наступний URL:           

http://localhost:8000/config.php

У разі виявлення будь-яких невідповідностей, виправте їх, перш ніж рухатися далі.

Налаштування Прав Доступу

При встановленні Symfony одне з найпоширеніших правил — це те, що каталоги app/cache і app/logs повинні бути доступні на запис як для веб-сервера, так і для користувача, від імені якого виконуються команди з командного рядка. В UNIX-системах, якщо користувач, з-під якого запускається веб-сервер, відрізняється від користувача командного рядка, ви можете спробувати одне з наступних рішень.

1. Встановіть одного й того ж користувача для CLI і веб-сервера

В ІТ-колах звичною практикою є використання одного й того ж UNIX-користувача для CLI і веб-сервера, бо це дозволяє уникати питань з доступами при створенні нових проектів. Для цього можна відредагувати конфігурацію веб-сервера (наприклад, в більшості випадків це httpd.conf або apache2.conf для Apache) і призначити для нього того самого користувача, що і для CLI (наприклад, для Apache — оновити значення User і Group).

2. Використання ACL на системі, яка підтримує chmod +a

Багато систем дозволяють використовувати команду chmod +a. Спробуйте це для початку, а якщо отримаєте повідомлення про помилку — спробуйте наступний метод. З його допомогою можна спробувати визначити користувача веб-сервера і призначити його HTTPDUSER.

$ rm -rf app/cache/*
$ rm -rf app/logs/*

$ HTTPDUSER=`ps axo user,comm | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\ -f1`
$ sudo chmod +a "$HTTPDUSER allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs
$ sudo chmod +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs

3. Використання ACL на системі, яка не підтримує chmod +a

Деякі системи не підтримують chmod +a, але підтримують іншу утиліту під назвою setfacl. Можливо, вам буде потрібно увімкнути підтримку ACL на своєму розділі і встановити setfacl перед використанням (зокрема, це знадобиться, якщо ви працюєте з Ubuntu). З допомогою цього можна спробувати визначити користувача веб-сервера і призначити його HTTPDUSER.

$ HTTPDUSER=`ps axo user,comm | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\ -f1`
$ sudo setfacl -R -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX app/cache app/logs
$ sudo setfacl -dR -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX app/cache app/logs

Якщо це не працює, спробуйте додати опцію -n.

4. Без використання ACL

Якщо жоден з попередніх методів не підійшов вам, змініть umask таким чином, щоб каталоги cache і log були доступні на запис групі або ж всім (залежно від того, знаходяться користувачі веб-сервера і командного рядка в одній і тій самій групі чи ні). Для цього потрібно розмістити наступний рядок на початку файлів app/console, web/app.php і web/app_dev.php.

umask(0002); // This will let the permissions be 0775

// or

umask(0000); // This will let the permissions be 0777

Зверніть увагу, що використання ACL рекомендується при наявності доступу до них на вашому сервері, тому що заміна umask не є безпечною щодо потоків.

Оновлення Додатків на Symfony

На цьому етапі ви створили повністю функціональний додаток на Symfony, в якому ви почнете розвивати власний проект. Додаток на Symfony залежить від ряду зовнішніх бібліотек. Вони завантажуються в каталог vendor/ і керуються виключно з допомогою Composer.

Оновлення цих сторонніх бібліотек часто є дуже корисним для запобігання помилок і вразливостей. Виконайте команду update для Composer, щоб оновити їх всі відразу:

$ cd my_project_name/
$ composer update

Залежно від складності проекту, процес оновлення може зайняти до кількох хвилин.

У Symfony передбачена команда, що перевіряє наявність вразливих місць залежностей вашого проекту:

$ php app/console security:check

В цілях безпеки дуже корисно виконувати цю команду регулярно. Це дасть вам можливість оперативно оновлювати або заміняти вразливі залежності.

Встановлення Демо Додатку на Symfony

Демо додаток на Symfony є повноцінним додатком, який показує рекомендовані шляхи створення інших додатків на основі Symfony. Додаток вважається навчальним інструментом для новачків у Symfony, тож його вихідний код переповнений коментарями та порадами, що стануть у нагоді будь-якому початківцю. 

Для того, щоб завантажити демо додаток Symfony, запустіть команду demo із Symfony Installer будь-де у системі: 

# Linux, Mac OS X
$ symfony demo

# Windows
c:\projects\> php symfony demo

Як тільки додаток завантажиться, увійдіть до каталогу symfony_demo/ та запустіть команду php app/console server:run у вбудованому в PHP веб-сервері. І для того, щоб уже почати використовувати демо додаток на Symfony, відкрийте браузер і перейдіть за посиланням http://localhost:8000.

Встановлення Дистрибутиву Symfony

Дистрибутиви Symfony є повнофункціональними додатками і включають в себе основні бібліотеки Symfony, набори корисних пакетів, продуману структуру каталогів і певну стандартну конфігурацію. Власне, коли ви створювали додаток на Symfony в попередніх розділах, ви насправді завантажили стандартний дистрибув Symfony, що називається Symfony Standard Edition.

Symfony Standard Edition на сьогоднішній день є однозначно найпопулярнішим дистрибутивом і найкращим вибором для розробників, які тільки починають працювати з Symfony. Проте, спільнота Symfony опублікував деякі інші популярні дистрибутиви, які ви можете використовувати в своїх додатках:

1) Symfony CMF Standart Edition є найкращим дистрибутивом для початку роботи з проектом Symfony CMF — проекту, який полегшує розробникам додавання функціоналу CMS для додатків, побудованих на Symfony framework.

2) Symfony REST Edition показує, як створювати додаток з RESTful API, використовуючи FOSRestBundle і кілька інших схожих комплектів.

Використання Системи Контролю Версій

Якщо ви використовуєте систему контролю версій Git, ви можете спокійно комітити свій проект у звичному режимі. Адже додатки Symfony вже містять файл .gitignore, спеціально підготовлений для Symfony.

Додаткові інструкції про те, як найкраще налаштувати проект, що зберігатиметься в Git, читайте у розділі Як створити і зберегти проект на Symfony в Git.

Чек-аут Оновленого Додатку Symfony

При використанні Composer для управління залежностями додатка, рекомендується ігнорувати всю директорію vendor/, перш ніж як закомітити її код в репозиторій. Це означає, що при чек-ауті додатку на Symfony з репозиторія Git, не буде каталогу vendor/ і додаток не працюватиме за замовчуванням.

Щоб змусити його працювати, перевірте додаток на Symfony, а потім виконайте команду install Composer, щоб завантажити і встановити всі залежності, необхідні для додатку:

$ cd my_project_name/
$ composer install

Звідки Composer знає, які саме залежності потрібно встановлювати? Справа у тому, що коли додаток Symfony комітиться у репозиторій, файли composer.json і composer.lock комітяться також. Ці файли повідомляють Composer, які залежності (і які конкретно версії), потрібно встановити в додатку.

Початок Розробки

Тепер, коли у нас є повнофункціональний додаток на Symfony, можна починати розробку! Ваш дистрибутив може містити деякі зразки коду — прочитайте файл README.md, що включений в дистрибутив (відкрийте його як текстовий файл), щоб дізнатися, який зразок коду був включений у ваш дистрибутив.

Якщо ви новачок у Symfony, ознайомтеся з розділом "Створення першої сторінки у Symfony", де ви дізнаєтеся, як створювати сторінки, змінювати конфігурацю і робити всі інші необхідні дії з вашим новим додатком.

Не забудьте також почитати оригінал Довідника, що містить широкий спектр статей про вирішення конкретних проблем з Symfony.

 

Поділитися