#php #oop #ubuntu #yii #lamp
#php #ооп #ubuntu #yii #lamp
Вопрос:
Я решил начать кодирование с использованием ООП и фреймворка PHP. Я успешно установил Yii на сервере разработки и создал веб-приложение. Теперь я хотел бы переместить защищенную папку на уровень за пределами корня документа по соображениям безопасности. Мой вопрос в том, как это сделать, когда есть несколько поддоменов, с которыми я также буду использовать Yii.
У меня есть опыт работы с PHP, но не в стиле ООП, и это мой первый шаг в ООП и фреймворках. Кроме того, у меня установлена система LAMP на Ubuntu для разработки.
Ниже приведена моя структура пути, которая соответствует производственному серверу. У меня есть сайт верхнего уровня и несколько других сайтов верхнего уровня и сайтов поддоменов для одного из сайтов верхнего уровня.
сайт верхнего уровня — / home/ mark / public_html /{файлы первого сайта}
сайт верхнего уровня — /home/mark / public_html/website-two.com /{веб-сайт-два файла}
сайт верхнего уровня — / home / mark / public_html/website-three.com /{веб-сайт-три файла}
мои поддомены — / home /mark / public_html /sub1.website-three. com / {вложенные файлы}
мои поддомены — /home/mark/public_html/sub2.website-три.com /{вложенные файлы}
мои поддомены — /home/mark/public_html/sub3.website-три.com /{вложенные файлы}
У меня установлен Yii по адресу: /home /mark/Yii
Я создал веб-приложение по адресу: /home/mark/public_html/sub1.website-three.com и получил доступ к веб-приложению Yii локально по адресуhttp://sub1.website-three / …. Я не использую http://localhost поскольку у меня есть виртуальные хосты и поддомены. Все это работает, и мы создадим больше веб-приложений на других поддоменах в разделе website-three.
Могу ли я переименовать защищенную папку в sub_protected и поместить ее в / home / mark, а затем для моего следующего веб-приложения назвать защищенную папку sub2_protected и так далее? Должен ли я использовать другую структуру путей??? Кроме того, я полагаю, мне нужно будет отредактировать protected/config/main.php для каждого сайта, чтобы отразить изменения???
Любая помощь была бы высоко оценена. Не могу дождаться, когда это будет настроено, чтобы я мог глубже погрузиться в Yii…пока выглядит очень интригующе.
Ответ №1:
Вы можете назвать защищенную папку как угодно и поместить ее в любое место вашей файловой системы, к которому пользователь вашего веб-сервера имеет доступ, так что да, схема / home / mark / sub * n *_protected будет работать.
Однако, особенно если ваши сайты похожи и имеют какой-либо общий код, возможно, было бы эффективнее использовать одну защищенную папку и настроить массив правил urlManager в вашем основном файле конфигурации и загрузить соответствующую базу правил на имя хоста. Затем у вас могут быть выделенные контроллеры для каждого хоста, а также каталоги представлений. Я часто делал это для мобильных версий, где вы также можете добавить обнаружение мобильных устройств в микс.
Если сайты разные, использование отдельных защищенных каталогов также может иметь смысл. Например, я буду использовать отдельный защищенный каталог для инструментов администрирования на основе сгенерированных в Gii каркасов.
Если сайты очень похожи, вы также можете захотеть ознакомиться с темами:http://www.yiiframework.com/doc/guide/1.1/en/topics.theming
Комментарии:
1. Спасибо, я действительно переместил и переименовал защищенную папку, но теперь думаю о том, что вы сказали. Сайты очень похожи… та же структура данных, тот же макет, просто разные имена и разные цвета / изображения и т.д. Если я смогу заставить их всех использовать одну и ту же защищенную папку, а затем использовать темы, это звучит как правильный путь. Как насчет совместного использования одной и той же базы данных? Добавляет ли это какие-либо проблемы к совместному использованию защищенной папки или с темами?
2. Нет, я не вижу никаких проблем с общим доступом к одной и той же БД. Если по какой-то причине вы этого не хотели, вы всегда можете использовать тот же метод, описанный выше, для загрузки разных правил для urlManager и загрузки разных настроек БД, даже использовать разные префиксы таблиц для разных сайтов / хостов.
Ответ №2:
Конечно, вы можете поместить защищенную папку в корень документа. Просто используйте для веб-сайта следующий код в вашей конфигурации:
return array(
'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'..',
и ваша protected
папка будет просмотрена
/home/mark/protected
Комментарии:
1. Спасибо, я переместил и переименовал защищенную папку, а конфигурация изменилась, чтобы отразить изменения. Все работает… но теперь подумаю о темах и базе данных и наилучшем способе их обработки. Эта страница также помогла… yiiframework.com/wiki/116 /…