Почему 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 доступ к файлам.

Другие вопросы по тегам