Я уже пару дней борюсь с этой проблемой. Я пытаюсь изменить каталог www по умолчанию для веб-сервера Apache / 2.4.6 (Ubuntu) под LinuxMint16 и сделать так, чтобы он указывал на жесткий диск NTFS, который я разделяю с другой установкой Windows. Этот жесткий диск смонтирован в / media / crash / Yari, и, что бы я ни пробовал, ничего не работает .. в то время как если я изменю каталог www по умолчанию на что-то еще на том же жестком диске, где установлен Linux, все будет работать, как ожидалось.
Ниже приведены все изменения, которые я сделал, чтобы заставить все работать:
Папка, в которой мне нужен мой новый www, - / media / crash / Yari / www. Таким образом, я отредактировал файл /etc/apache2/apache2.conf:
DocumentRoot /media/crash/Yari/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /media/crash/Yari/www>
#Options FollowSymLinks
Options Indexes FollowSymLinks Includes ExecCGI MultiViews
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
Впоследствии, как я видел из этого сообщения https://askubuntu.com/questions/11840/how-to-chmod-on-an-ntfs-or-fat32-partition/91054#91054 Я определил UUID своего жесткого диска, набрав
sudo blkid
и отредактировал файл / etc / fstab, добавив эту строку UUID = # my-hd-uuid # / media / crash / Yari ntfs-3g auto, users, permissions 0 0
Чтобы быть уверенным, что пользователь apache (в моем случае: www-data) имел права доступа к файлам внутри нового каталога www, я изменил группу и владельца всех файлов на жестком диске с помощью
sudo chgrp -R www-data /media/crash/Yari
sudo chown -R www-data /media/crash/Yari
sudo chmod -R 775 /media/crash/Yari
Я проверил разрешения нового каталога www и содержащихся в нем файлов, выполнив
sudo ls -l /media/crash/Yari
и все файлы и каталог отображаются как drwxrwxr-x 1 www-data www-data, поэтому предыдущие изменения разрешений были выполнены правильно.
К сожалению, я наверняка чего-то упускаю, так как все вышеперечисленное было бесполезно! Надеюсь, кто-то может помочь, большое спасибо за любую помощь.
Чтобы apache мог получить доступ к каталогу, он должен иметь права доступа не только к этому каталогу, но и ко всем каталогам над ним. Итак, вам нужно разрешить доступ для чтения www-data к /media
и /media/crash
так же как /media/crash/Yari
.
В общем, я бы рекомендовал, чтобы пользователь apache не имел доступа на запись в каталог, в котором находятся веб-страницы. Этого должно быть достаточно, чтобы разрешить запись в каталоги, используемые для журналов, файлов run / pid и любых файлов кеша. Конечно, если у вас есть, например, приложение cgi, которое записывает на диск, вы должны разрешить ему делать это, но было бы более безопасно хранить любые такие файлы в отдельном каталоге.
В любом случае, чтобы решить сиюминутную проблему, либо измените групповое владение /media
и /media/crash
на www-data или измените их права доступа на 755.
Немного боялся менять разрешения /media
потому что у меня есть 2 других жестких диска в этом каталоге, которые я должен использовать под Windows, и последнее изменение разрешения на /media/crash/Yari
сделал этот жесткий диск недоступным для записи под Windows.
Я отредактировал файл /etc/fstab
изменив строку
UUID=#my-hd-uuid# /media/crash/Yari ntfs-3g auto,users,permissions 0 0
в
UUID=#my-hd-uuid# /sharedhd ntfs-3g auto,users,permissions 0 0
тогда новый default-www был бы /sharedhd/www
и мне не пришлось менять разрешения /media
и /media/crash
.
Наконец, я хочу отметить, что изменение владельца некоторых папок с помощью
sudo chgrp -R www-data /media/crash/Yari
sudo chown -R www-data /media/crash/Yari
В моем случае это было ошибкой, потому что это повредило права собственности в Windows, сделав все файлы и папки недоступными. Единственное, что мне нужно было сделать, это изменить /etc/fstab
файл и изменить разрешения с помощью
sudo chmod -R 777 /sharedhd
К сожалению, предоставив разрешения 775, я не смог редактировать те же файлы и каталоги под Windows, поэтому я был вынужден использовать 777 ... Если у этого метода есть некоторые недостатки, о которых я должен знать, или если есть лучший способ сделать это без дайте root-доступ ко всем файлам, дайте мне знать!