Разворачиваем symfony в document root

Не все 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

Ничего сложного ) Можно сделать сборку для типовых проектов – под себя.

p.s. заметка рассчитана на начинающего symfony-разработчика. Когда я начинал, мне этой информации не хватало…

This entry was posted in Профессиональное and tagged , , , , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

2 Comments

  1. denys281
    Posted 2011/05/11 at 8:20 pm | Permalink

    Если есть только доступ по ФТП, как быть из publish – assets?

    • Posted 2011/05/12 at 8:18 am | Permalink

      В смысле как выполнить команду symfony plugin:publish-assets? Я бы выполнил ее заранее на dev сервере или на локальном компьютере.

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">