Назад | Перейти на главную страницу

Хорошая структура каталога / разрешения Wordpress (LNMP)?

Отказ от ответственности: Прежде чем кто-либо умно упомянет Google (или что-то подобное), я просто хотел бы отметить, что я задаю этот вопрос, потому что не могу найти статью или статьи, которые мне нравятся.


Предисловие:

Инстанс Amazon EC2 Micro (VPS) с Сервер Ubuntu 10.10 + nginx + php-fpm + Wordpress.

Вопрос:

Очевидно, нет правильного или неправильного ответа, но тем не менее - Учитывая мой стек, какую структуру каталогов и разрешения для пользователей / групп вы бы порекомендовали?

Конечно, безопасность всегда вызывает беспокойство, поэтому идеальная структура / разрешения не будут иметь рисков для безопасности (например, chmod 777 wp-content), но также не должны иметь проблем с правильной работой (загрузка изображений в wp-content, плагины). Также помните, что мы имеем дело с Nginx, а не с Apache.

Я пробовал несколько решений, ни одно из которых меня пока не устраивает. Надеемся получить лучшие идеи!

Поместите WordPress в корневой каталог, определенный с местоположением сервера в вашем nginx sites-enabled / site-name.conf

Используйте SVN для загрузки и установки WordPress

$ cd public_html

$ svn co http://core.svn.wordpress.org/tags/3.1.2 .

chown www-data:www-data public_html/ -R

Убедитесь, что Nginx работает как www-data, или измените пользователя и группу на nginx выше.

Когда WordPress будет установлен, все категории будут 755, а файлы будут 644, что безопасно.

На данный момент я составляю руководство по этому поводу по той причине, что нет много хорошей информации о том, как лучше всего настроить точную архитектуру, которую вы описали выше.

Моя конфигурация похожа на конфигурацию Chirs_O, описанную выше.

/ SRV / www /

/site1.com/logs
/site1.com/public_html

/site2.com/logs
/site2.com/public_html

/site3.com/logs
/site3.com/public_html

В ситуации, когда я единственный администратор, которому необходимо управлять файлами на каждом сайте, я обычно передаю право владения файлом конкретному пользователю, чтобы я мог легко перемещать файлы scp / ftp с локального на каждый сайт.

Обычно я использую следующую команду

chown -R myuser:myuser /site1.com

Это позволяет мне передавать файлы без проблем с разрешениями, а также является хорошей безопасной установкой для обслуживания этих файлов.

Обратной стороной этой конфигурации является то, что вы столкнетесь со всевозможными проблемами с установкой плагинов, обновлениями WordPress и т. Д. (И загрузкой изображений).

Перед установкой плагинов и обновлений WordPress я обычно меняю владельца сайта с myuser на www-data с помощью той же команды

chown -R www-data:www-data /site1.com

Затем я устанавливаю все плагины, которые мне нужны, а затем сбрасываю разрешения обратно для myuser.

Некоторые люди оставляют www-data в качестве основного владельца, но я понимаю, что это не лучшая настройка безопасности, но я наткнулся на конфигурацию разрешений для nginx / php5-fpm, но которая обеспечивает простоту передачи файлов под отдельными учетными записями ftp / ssh, позволяя Плагин WordPress устанавливает / обновляет без необходимости устанавливать разрешения 777 для определенных папок, что является проблемой и имеет свои собственные проблемы с безопасностью.

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

/home/myuser/www/site1.com/public_html

Это гарантирует, что учетная запись ftp / ssh для этого пользователя будет ограничена его собственной домашней учетной записью. В настоящее время все еще существует необходимость вернуть право собственности на www-data для обновлений wordpress и т. Д., Но я пытаюсь выяснить, есть ли безопасный способ добавления этих учетных записей пользователей в группу www-data, чтобы разрешить лучший из обоих мировых сценариев. Сообщу вам, если я получу рабочий конфиг.