Правильные разрешения для /var/www и wordpress
Я настроил сервер LAMP, и у меня есть доступ через SSH и к странице "все работает" из веб-браузера изнутри моей сети (по ip-адресу) и извне с помощью dyndns.
У нас есть несколько проектов Wordpress, которые находятся в подкаталогах в /var/www/wordpress1 /var/www/wordpress2 и т. Д. Я не могу получить доступ к этим подкаталогам из браузера, чтобы настроить WP- или (я полагаю), чтобы увидеть контент в браузере. В моем браузере появляется ошибка 403 Forbidden.
Я предполагаю, что это проблема с разрешениями. Подскажите, пожалуйста, правильные настройки для разрешений:
- Позвольте разработчикам и мне читать / писать.
- разрешить настройку WP и делать свое дело
- Разрешить посетителям доступ к сайтам через Интернет.
Я должен также упомянуть, что подпапка на самом деле является сим-ссылкой на папку на другом внутреннем жестком диске - я не думаю, что это будет иметь значение, но я подумал, что должен раскрыть.
total 12
drwxr-xr-x 2 root root 4096 2012-07-12 10:55 .
drwxr-xr-x 13 root root 4096 2012-07-11 20:02 ..
lrwxrwxrwx 1 root root 43 2012-07-11 20:45 admin_media -> /root/django_src/django/contrib/admin/media
-rw-r--r-- 1 root root 177 2012-07-11 17:50 index.html
lrwxrwxrwx 1 root root 14 2012-07-11 20:42 media -> /hdd/web/media
lrwxrwxrwx 1 root root 18 2012-07-12 10:55 wordpress -> /hdd/web/wordpress
Вот результат использования chown -R www-data:www-data /var/www
total 12
drwxr-xr-x 2 www-data www-data 4096 2012-07-12 10:55 .
drwxr-xr-x 13 root root 4096 2012-07-11 20:02 ..
lrwxrwxrwx 1 www-data www-data 43 2012-07-11 20:45 admin_media -> /root/django_src/django/contrib/admin/media
-rw-r--r-- 1 www-data www-data 177 2012-07-11 17:50 index.html
lrwxrwxrwx 1 www-data www-data 14 2012-07-11 20:42 media -> /hdd/web/media
lrwxrwxrwx 1 www-data www-data 18 2012-07-12 10:55 wordpress -> /hdd/web/wordpress
Я все еще не могу получить доступ через браузер.
4 ответа
Во-первых, вы должны убедиться, что ваше имя пользователя включено в www-data группа. Если нет, вы можете добавить свое имя пользователя как www-data группа
sudo adduser $USER www-data
После этого вы должны сменить владельца /var/www на ваше имя пользователя.
sudo chown $USER:www-data -R /var/www
Следующим шагом, для общей практики, вы должны изменить разрешение на 755 (rwxr-xr-x), не рекомендуется менять разрешение на 777 по соображениям безопасности
sudo chmod u=rwX,g=srX,o=rX -R /var/www
Относительно конкретного разрешения для WordPress или Laravel или другой платформы, то вы можете прочитать документацию соответственно.
Надеюсь, поможет...
По-видимому, это то, как это рекомендуется в Руководстве по Ubuntu Server:
Глава 11. Веб-серверы.
1.4. Совместное разрешение на запись
Чтобы более чем один пользователь мог выполнять запись в один и тот же каталог, необходимо предоставить разрешение на запись группе, которую они совместно используют. В следующем примере предоставляется разрешение на совместную запись в /var/www/html группе "веб-мастеров"
Я использую www-данные. Просто замените "веб-мастеров" на вашу группу, убедитесь, что вы добавили пользователя в группу, конечно.
sudo chgrp -R webmasters /var/www/html
sudo find /var/www/html -type d -exec chmod g=rwxs "{}" \;
sudo find /var/www/html -type f -exec chmod g=rws "{}" \;
Я только что протестировал его с Dreamweaver со своего рабочего стола Mac и загрузил и заменил файлы, добавленные файлы и т. Д., И он сохраняет правильные разрешения за одним исключением, локальный пользователь становится владельцем новых файлов вместе с www-данными, но любые файлы, созданные пользователем root в Каталог html сохраняет свои права доступа как root, но редактируется локальным пользователем.
$ls -l
$-rw-rw-r-- 1 localUser www-data 11505 May 28 09:56 index2.html
$-rw-rwSr-- 1 root www-data 11535 May 28 09:58 index.html
Надеюсь, что это проясняет ситуацию и помогает утомленным, потому что я знаю, что всегда устал от этой ситуации, но теперь это ясно для меня.
Да, и я настоятельно рекомендую использовать sftp с ключами для доступа к вашему ftp, отлично работает для меня и не нуждается в PureFTP или любом другом небезопасном способе доставки файлов на сайт. На сайте Digital Ocean есть несколько хороших руководств по защите вашего сервера с помощью ключей ssh:
Как настроить аутентификацию на основе ключей SSH на сервере Linux
Чтение руководства по установке Ubuntu.
chown -R www-data /usr/share/wordpress
Может быть, проще установить его таким образом, чем пытаться разархивировать файлы на /var/www
https://help.ubuntu.com/community/WordPress...
В любом случае WordPress работает на Apache... правильно? если вы хотите сделать это таким образом.. вы показываете, что делать как @metamorph, а затем дать разрешение на apache2 httpd.conf как это:
<VirtualHost *:80>
ServerName site
ServerName site.domain
DocumentRoot /srv/www/wordpress.site
DirectoryIndex index.php
</VirtualHost>
а потом default-server.conf,
<Directory "/srv/www/wordpress.site">
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Может быть, лучше сделать шаг за шагом https://help.ubuntu.com/community/WordPress
Убедитесь, что Apache имеет права на выполнение /hdd/web/media а также /hdd/web/wordpress,
Бежать:
chmod o+x /root /root/site /root/site/about
Кроме того, Apache должен быть настроен для разрешения доступа к каталогу в файловой системе. Это должен сделать системный администратор, вставив директиву в файлы конфигурации apache (httpd.conf).
Поскольку настоящий каталог находится в корневом веб-каталоге, он должен быть доступен, но FollowSymLinks, возможно, не был включен для каталога - это также необходимо добавить в директиву.