Я пытаюсь создать среду разработки на моей 64-битной машине с Ubuntu 12.04, и мне было чертовски трудно заставить работать виртуальные хосты. Я наконец понял, в чем проблема, но на самом деле не могу этого понять.
Я установил корень документа для моих виртуальных хостов в моем домашнем каталоге, а именно:
/ главная / Роберт / 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, убедитесь, что он доступен для чтения
Вместо этого я перемещаю корневой каталог моего документа в / главная / Роберт / 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 для развертывания на действующем сайте, поэтому все, что мне нужно, это способ резервного копирования моих локальных данных. Кто-нибудь может предложить решение? Спасибо.
Мне это кажется простой проблемой с разрешениями. В Ubuntu Apache работает как пользователь www-data
группа www-data
. Как мы видим из вашего каталога, в котором перечислены разрешения для вашего ~/Dropbox
каталог (через .
) являются drwx------
или 700
. Таким образом, Apache как www-data:www-data
отказано в доступе.
chmod 755 ~/Dropbox
возможно устранит сиюминутную проблему. В общем, вам нужно будет предоставить o:rx
разрешения на каталоги и o:r
разрешения на файлы, чтобы разрешить Apache доступ к файлам.