Удобное размещение папки с проектом Symfony

На практике столкнулся с хостингом (netpoint), где стандартное устройство папок Symfony может не заработать. Здесь я опишу как нашёл решение такой проблемы.

На хостинге, который я обычно использую, сделали большую бяку, которая мешает жить порой. А именно там стоит запрет на подключение файлов, находящихся ниже уровня web_dir. Это настройка в php.ini include_path=.;... вот эта самая первая точечка портит картину маслом. То есть я не могу, как в инструкции Symfony сказано, закинуть содержимое myproject/web в корень веб-каталога на сервер, а весь проект положить рядом с ним в недосягаемости хакеров. Пришлось напрячь мозг и изобрести щадящий метод реорганизации папок. Хочу узнать как он вам, стоит ли внимания такой способ и насколько по-вашему он безопасен.

Как обычно, я закачиваю всё из symfony/web в корень веб-каталога. Теперь всю папку проекта (в моём случае myproject) я закидываю в этот же веб каталог. Получается:

|--+ public_html
   |--+ myproject
   |  |-- apps
   |  |-- cache
   |  |-- congig, и так далее
   |-- css
   |-- js
   |-- images, и так далее

Изменяю то что обычно меняют в файле index.php и всё начинает работать. Но есть один нюанс, ради которого проект кладут отдельно. Если папка проекта не достаточно надёжно спрятана, или названа не достаточно длинно/хитро, то ваши конфиги с паролями к базе данных станут известны всему миру. Что делать? Решение пришло неожиданно. Кладу в папку myproject .htaccess файл, который просто запрещает доступ к внутренностям. Содержимое .htaccess такое:

<Limit GET POST OPTIONS PROPFIND>
  Order allow,deny
  Deny from all
</Limit>

На все запросы к папке проекта сервер теперь выдаёт Forbidden и все конфиги в целости и сохранности. По-моему проблема решена?

Кстати сказать, такой способ мне нравится куда больше и на своём dev-сервере. Я изначально создаю такую же структуру чтобы потом легко синхронизировать проект с production.

BlackCrystalБиблиотека → Удобное размещение папки с проектом Symfony

Скрипт ВКонтакте MP3

Скрипт стирания выборочных сообщений со стены ВКонтакте

Скрипт удаления из всех групп ВКонтакте

Регенерация Session Id в Symfony - фича или баг?

Скрипт стирания сообщений со стены ВКонтакте

AJAX-запросы между доменами

Найти друзей слова causes. Часть первая.

Удобное размещение папки с проектом Symfony

Подготовка мини-копий картинок (thumbs) на лету

Расширяем возможности sfWebResponse

Отображение ошибок валидации

Проверка персонального кода sfValidatorIsikukood

Правила и соглашение

1999-2009 BlackCrystal ¬|г Clan.    2007-2012 BlackCrystal Ltd.    2011-2012 BlackCrystal Club.