Не все web-проекты в этом мире – это крупные и высоко нагруженные системы. Есть также огромное число мелких и средних проектов. Давайте немного взглянем на последние. То что они небольшие и типовые – не значит что для них нельзя использовать symfony. Даже нужно, если у вас на поддержке 20 штук таких – будет проще обслуживать.
Итак, имеем маленький/средний сайтик на symfony. Здорово, но на нашем хостинге мы имеем доступ только в document root сервера! Это не беда, symfony достаточно гибок для того чтобы развернуть его в таких условиях. Ниже я приведу два способа.
1. Когда таки есть ssh доступ.
В этом случае все достаточно просто. Допустим у нас такая структура:
~home ----site.name -------- www
- мы можем выложить наш проект как ни в чем ни бывало в
~/home/site.name
и просто переименоватьweb -> www
- мы также можем создать в
~home
директориюsite.name.lib
и скопировать туда весь проект. После этого можно удалить~/home/site.name/www
и сделать symlink (ln -s)~/home/site.name.lib/web
->~/home/site.name.lib/www
- Этот способ также можно применить когда у вас есть доступ только в
~/home/www
(т.е. для конкретного сайта) и там также располагаются директории поддоменов (если выложить туда symfony проект – то получится та еще каша) - Можете оптимизироваться как вам нужно, в зависимости от ваших предпочтений и ограничений хостера.
Но этот пример на самом деле не очень показателен. Так или иначе приткнуть сайт там можно было изначально.
2. Когда есть только ftp доступ в document root (public_html или www)
Такое тоже еще бывает. Толи заказчик чего-то боится, толи хостер такой. Не важно. В этом случае мы можем:
- Перенести все директории проекта например в
web/system
(кроме нее самой естественно) - Модифицировать index.php:
require_once(dirname(__FILE__).'/system/config/ProjectConfiguration.class.php');
- Можно также добавить .htaccess в web/system типа
deny from all
Ничего сложного ) Можно сделать сборку для типовых проектов – под себя.
Если есть только доступ по ФТП, как быть из publish – assets?
В смысле как выполнить команду symfony plugin:publish-assets? Я бы выполнил ее заранее на dev сервере или на локальном компьютере.
Написала 1-ый сайт на Symfony. На лок. машине все работает. Хочу перенести на хостинг.
Все сделала, как в п. 2.На хостинге тестовом нельзя исправить httpd.conf. При вызове index.php – пустая стр. При вызове frontend_dev.php – “You are not allowed to access this file. Check fronted_dev.php for more information.” Все пути исправила. Подскажите, пожалуйста, что делать.
fronted_dev.php изначально разрешает доступ только c localhost. Можно временно закомментировать в нём строку
die(‘You are not allowed to access this file. Check ‘.basename(__FILE__).’ for more information.’);
И после этого сможете отладить проблемы вашей инсталляции. В крайнем случае пишете мне по скайпу, разберёмся.