Симфония диктует стиль работы, свойственный для работы с ПО под unix системами. Т.е. чтобы что то сделать, вам необходимо сначала понять как это сделать. Разберем «как это сделать» под Windows на примере WAMP (комплект из Windows, Apache, MySQL, PHP и пр.) конфигураций Denwer и Open Server.
Ставить будем третью версию Symfony. Чтобы её поставить, ваша WAMP система должна удовлетворять определенным требованиям к версиям ПО. При установке понадобится использовать Phar — утилиту для создания исполняемых архивов в PHP и работы с ними. Она появилась с версии 5.2, и уже в PHP 5.3 есть в комплекте поставки. Для 2-й версии Symfony этого было бы достаточно, но третья версия ещё более требовательна, и нам уже нужен PHP от 5.5.9. Вот полный список обязательных условий:
- минимальная версия PHP — 5.5.9;
- JSON включен;
- ctype включен;
- в
php.ini
нужно указать настройкиdate.timezone.
Ставим Symfony под Denwer 3
Последняя (07.03.2016) сборка денвера содержит PHP 5.3.13. Т.е. PHP придется подтянуть ручками хотя бы до необходимого минимума. При этом и версия Apache потребуется не 2.2, а 2.4 (читайте об обновлении Apache с 2.2 до 2.4 в Denwer).
Я обновил Denwer до Apache 2.4 и PHP 5.6.
Нам придется выполнять запуск php скриптов из консоли, потому желательно настроить переменную %PATH% из переменных окружения Windows, добавив туда путь к папке с PHP. У меня, к примеру это D:\denwer\usr\local\php5. Как поправить переменные окружения Windows.
При запуске PHP из консоли, используя php денвера, вы несомненно увидите сообщения об ошибке вроде:
1 |
Warning: PHP Startup: Unable to load dynamic library '/usr/local/php5/ext\php_xsl.dll' |
Это можно исправить в \denwer\usr\local\php5\php.ini, установив вместо
1 |
extension_dir = "/usr/local/php5/ext" |
полный путь, используя букву подключаемого Denwer диска (у меня она — Z):
1 |
extension_dir = "z:/usr/local/php5/ext" |
Загрузка симфонии происходит в два этапа.
Загрузчик-установщик
Создайте новый хост в Denwer. Я для примера, назвал проект new-site.local, создав соответствующие папки:
1 2 |
z:/home/new-site.local z:/home/new-site.local/www |
Скачиваем последнюю версию установщика, для чего в консоли (cmd.exe) вводим команду:
1 2 |
z:/home/new-site.local/www> php -r "file_put_contents('symfony', file_get_contents('https://symfony.com/installer'));" |
Загруженный установщик теперь сохранен в phar-файле symfony. Он позволит выполнять разные команды в будущем, но сейчас мы создадим с его помощью новый проект.
Создание проекта
Воспользуемся только что загруженным установщиком. Вызовем его через php с директивой new и именем проекта — my_project
1 |
z:/home/new-site.local/www> php symfony new my_project |
По окончанию работы скрипта, мы увидим сообщение, что Symfony успешно установлен и стандартные инструкции:
- Задайте конфигурацию проекта в файле app/config/parameters.yml
- Читайте документацию на сайте http://symfony.com/doc
Проверка установки
Перезапустите Denwer, если не сделали этого после создания папок new-site.local. Нужно обновить конфигурацию.
В браузере остаётся набрать адрес созданного проекта symfony — http://new-site.local/my_project/web/
Устанавливаем Symfony 3 под WAMP Open Server.
У меня установлена сборка Open Server 5.2.2. В настройках выберите нужные версии модулей Apache 2.4 и PHP 5.6.
Создадим хост new-site.local на нашем сервере, добавив одноименную папку в /OpenServer/domains. У меня это
1 |
D:\OpenServer\domains\new-site.local |
Перезапустим сервер для актуализации данных.
Подготовительный этап закончен, осталось только выполнить непосредственные операции по установке Symfony.
В качестве консоли я использую консоль из меню Open Server (Дополнительно -> Консоль)
Переходим в каталог new-site.local и выполняем знакомые уже команды — получаем загрузчик, создаём новый проект. После выполнения всех операций, видим сообщение об успешной установке.
Проверим, все ли ок. Наберем вновь в браузере адрес — http://new-site.local/my_project/web/. В случае успеха, браузер покажет вот такую страницу:
Спасибо за полезную статью!
Спасибо за статью! все легко и понятно, а главной кроссплатформенно! ))
Столкнулся с проблемой, ничего кроме заглавной страницы Symfony не работает, если запустить встроенный сервер php bin/console server:run то все работает. Какие еще настройки нужно сделать в OpenServer чтобы заработало?
В корне проекта добавить файл .htaccess (для Apache2) и добавьте в него следующее содержимое:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /index.php [L,QSA]