Как настроить Yii для нескольких поддоменов, чтобы защищенная папка находилась вне корня документа для каждого поддомена - PullRequest
0 голосов
/ 07 июня 2011

Я решил начать кодирование с использованием ООП и фреймворка PHP.Я успешно установил Yii на сервер разработки и создал веб-приложение.Теперь я хотел бы переместить защищенную папку на уровень вне корня документа по соображениям безопасности.Мой вопрос заключается в том, как это сделать, когда есть несколько поддоменов, с которыми я также буду использовать Yii.

У меня есть опыт работы с PHP, но не в стиле ООП, и это мой первый шаг в ООП и фреймворках.Кроме того, у меня установлена ​​система LAMP в Ubuntu для разработки.

Ниже приведена структура моего пути, которая соответствует производственному серверу.У меня есть сайт верхнего уровня и несколько других сайтов верхнего уровня и сайтов поддоменов для одного из сайтов верхнего уровня.

сайт верхнего уровня - / home / mark / public_html / {website one files}
top levelsite - /home/mark/public_html/website-two.com/ enjwebsite-two files}
сайт верхнего уровня - /home/mark/public_html/website-three.com/ndomwebsite-three файлы}
мои поддомены - /home/mark/public_html/sub1.website-three.com/ndomsub файлы}
мои поддомены - /home/mark/public_html/sub2.website-three.com/ enjsub2 файлы} * enjsub2}
мои поддомены - /home/mark/public_html/sub3.website-three.com/atellsub3 файлы}

У меня установлен Yii по адресу: / home / mark / Yii

Iсоздал веб-приложение по адресу: /home/mark/public_html/sub1.website-three.com и получил доступ к веб-приложению Yii локально по адресу http://sub1.website -three / .... Я не использую http://localhost, так как у меня есть виртуальные хосты и субдомены.Все это работает, и я буду создавать дополнительные веб-приложения в других поддоменах под веб-сайтом 3.

Могу ли я переименовать защищенную папку в sub_protected и поместить ее в / home / mark, а затем для моего следующего веб-приложения имязащищенная папка sub2_protected и так далее?Должен ли я использовать другую структуру пути ???Кроме того, я считаю, что мне нужно будет редактировать защищенный / config / main.php для каждого сайта, чтобы отразить изменения ???

Любая помощь будет принята с благодарностью.Не могу дождаться, чтобы настроить это, чтобы я мог погрузиться в Yii ... пока выглядит очень интригующе.

Ответы [ 2 ]

2 голосов
/ 08 июня 2011

Вы можете назвать защищенную папку как угодно и поместить ее в любое место в вашей файловой системе, к которой имеет доступ пользователь вашего веб-сервера, так что схема yes / home / mark / sub * n * _защищенная будет работать.

Однако, особенно если ваши сайты похожи и имеют какой-либо общий код, может быть более эффективно использовать одну защищенную папку и настроить массив правил urlManager в вашем основном конфигурационном файле и загрузить соответствующую базу правил на имя хоста , После этого вы можете иметь выделенные контроллеры для каждого хоста, а также просматривать каталоги. Я часто делал это для мобильных версий, где вы также можете добавить мобильное обнаружение в смесь.

Если сайты различны, использование отдельных защищенных каталогов также может иметь смысл. Например, я буду использовать отдельный защищенный каталог для инструментов администратора на основе сгенерированных Gii скаффолдингов.

Если сайты очень похожи, вы также можете проверить темы: http://www.yiiframework.com/doc/guide/1.1/en/topics.theming

1 голос
/ 07 июня 2011

Конечно, вы можете поместить защищенную папку в корневой каталог документа. Просто используйте для веб-сайта следующий код в вашей конфигурации:

return array(
    'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'..',

и ваша папка protected будет просматриваться на

/home/mark/protected
...