Радость от запуска первого проекта на Symfony, очень часто омрачена сообщением которое выводится на главной странице созданного проекта:
Congratulations! You have successfully created your symfony project.
Project setup successful
This project uses the symfony libraries. If you see no image in this page, you may need to configure your web server so that it gains access to the symfony_data/web/sf/ directory.
Существует по меньшей мере три способа решения этой проблемы. Подразумевается что у вас уже уставновлена Symfony и вы используете веб-сервер Apache.
Способ 1 — настройка virtual host
Это рекомендуемый метод создания рабочей среды (на самом деле это единственный реальный способ - другие, описанные ниже, только обходные пути) - вы всегда должны создать виртуальный хост для каждого приложения.
Давайте создадим virtual host для проекта symfony.local с использованием алиаса для подключения symfony библиотек:
<VirtualHost *:80> ServerName hotel.local ServerAlias www.hotel.local ServerAdmin webmaster@hotel.local DocumentRoot /www/hotel.local/public <Directory /www/hotel.local/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /www/hotel.local/cgi-bin/ <Directory /www/hotel.local/cgi-bin> AllowOverride All Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> Alias /sf /usr/share/php/data/symfony/web/sf <Directory "/usr/share/php/data/symfony/web/sf"> AllowOverride All Allow from All </Directory> ErrorLog /www/hotel.local/logs/error.log LogLevel warn CustomLog /www/hotel.local/logs/access.log combined </VirtualHost>
Теперь нужно перезагрузить сервер Apache
sudo /etc/init.d/apache2 restart
Обновив страницу своего проекта вы должны увидеть такую картинку:
Способ 2 — project freezing
Вы можете получить готовое к развертыванию пакетов из проекта Symfony с помощью комманды freeze. Если вы выполняете в корневом каталоге вашего проекта:
symfony freeze [/path/to/your/symfony/data/dir]
Все файлы Symfony ядра будут скопированы в текущий проект, в том числе те, которые где отсутствует в каталоге web/sf. Команда freeze также изменяет некоторые пути в конфигурации проекта так что теперь адрес Symfony библиотек, которые также были скопированы в проект не глобальные.
Основным недостатком этого способа является то, что, если вы хотите обновить Symfony вам придется использовать команду unfreeze (команда противоположной freeze) и использовать команду freeze снова для всех ваших проектов или копировать/перезаписывать файлы вручную.
Способ 3 — тупой метод
Если первые два метода вам не подходят можно просто скопировать каталог symfony_data_path/web/sf/ в каталог вашего веб сервера _project_path/web/. Как и во втором методе недостатком этого варианта является то, что после обновления Symfony вам придется вручную переписать эту папку снова во всех ваших проектах.
Источник
0 коммент.:
Отправить комментарий