Почему Dropbox может вызвать проблемы с путями + разрешениями с путём виртуального хоста apache2 в Ubuntu?
Я пытаюсь создать среду разработки на моей 64-битной машине с 12.04 Ubuntu, и у меня было самое ужасное время заставить виртуальных хостов работать. Я наконец понял, в чем проблема, но я не могу понять это на самом деле.
Я установил корень документа для моих виртуальных хостов в моем домашнем каталоге, а именно:
/ Главная / роберт / Dropbox / WWW / personville
Когда я захожу на www.personvillepress2.com в браузере, я получаю
Запрещено У вас нет прав доступа к / на этом сервере. Сервер Apache/2.2.22 (Ubuntu) по адресу www.personvillepress2.com Порт 80
В логах вижу
[Сб 16 июня 09:55:25 2012] [крит] [клиент 127.0.0.1] (13) Отказано в доступе: /home/robert/Dropbox/.htaccess pcfg_openfile: невозможно проверить файл htaccess, убедитесь, что он доступен для чтения
Вместо этого я перемещаю корневой каталог документа в / home / robert / www / personville
измените настройки виртуального хоста соответствующим образом, перезагрузите, а затем вдруг все работает! Это плохо, потому что я хочу сохранить все мои источники в папке Dropbox для резервного копирования.
Мои разрешения для папки dropbox кажутся достаточно нормальными:
robert@kundera-linux:~/Dropbox$ ls -al
total 1036
drwx------ 29 robert robert 4096 Jun 15 09:11 .
drwxr-xr-x 60 robert robert 4096 Jun 15 21:15 ..
-rw-rw-r-- 1 robert robert 29 Jun 15 09:11 .dropbox
drwxrwxr-x 2 robert robert 262144 Jun 13 05:22 .dropbox.cache
drwxrwxr-x 5 robert robert 4096 Jun 9 00:00 www
Нет символических ссылок или необычно строгих разрешений. Кроме того, я не вижу проблем.htaccess, которые могли бы вызвать какие-либо проблемы (и почему apache2 заботился о проблемах с разрешениями.htaccess выше корневого каталога документа?)
Я ценю любые идеи о том, как решить эту проблему таким образом, чтобы я мог сохранить исходные файлы в Dropbox.
Неработающий файл виртуального хоста находится ниже:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName personvillepress2.com
ServerAlias www.personvillepress2.com
# DocumentRoot /var/www
DocumentRoot /home/robert/Dropbox/www/personville
<Directory /home/robert/Dropbox/www/personville>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/personvillepress2error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Обновление: я вижу, что другие сталкивались с этой проблемой прежде. https://stackoverflow.com/questions/9460052/how-can-i-use-a-dropbox-directory-as-a-virtual-host-document-root-in-osx
Я не очень беспокоюсь о безопасности здесь - это окно разработчика; Я в основном беспокоюсь о резервном копировании и доступе с других машин. Я думаю об использовании git для развертывания на живом сайте, поэтому все, что я хочу, - это способ резервного копирования моих локальных данных. Кто-нибудь может предложить решение? Благодарю.
1 ответ
Для меня это выглядит как простая проблема с разрешениями. В Ubuntu Apache работает как пользователь www-data
группа www-data
, Как мы видим из вашего каталога, список разрешений на ваш ~/Dropbox
каталог (через .
) являются drwx------
или же 700
, Таким образом, Apache как www-data:www-data
отказано в доступе.
chmod 755 ~/Dropbox
вероятно, исправит непосредственную проблему. В общем, вам нужно будет предоставить o:rx
разрешения на каталоги и o:r
разрешения для файлов, чтобы разрешить Apache доступ к файлам.