Я использую свою машину для разработки XUbuntu 12.04, и я установил стек LAMP, используя tasksel install lamp-server
. Я безуспешно пытался настроить виртуальные хосты в каталогах моих личных проектов. Я просмотрел пример конфигурации vhost в документации apache (Запуск нескольких именных веб-сайтов на одном IP-адресе). Я пробовал предложения из множества руководств и сообщений в блогах, и у меня было множество проблем (Тайм-аут, страница «Работает» вместо index.php, 403 Запрещено).
Я включил модуль userdir и добавил себя в группу www-data. Права доступа и владельцы соответствующих файлов:
/home/dan/Projects/phpinfo/www
: 775, принадлежит дану: www-data/home/dan/Projects/phpinfo/www/index.php
: 664, принадлежит дану: www-dataНесмотря на то, что корень веб-сайта и все, что ниже, доступно для чтения всем, я не могу войти в него как пользователь www-data (используя sudo -s www-data
).
Вот как сейчас выглядит моя конфигурация. Я получаю 403 Forbidden, когда завиваюсь http://phpinfo.local
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName phpinfo.local
DocumentRoot /home/dan/Projects/phpinfo/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/dan/Projects/phpinfo/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride All
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
Require all granted /home/dan/Projects/phpinfo/www
</Directory>
ErrorLog /home/dan/Projects/phpinfo/logs/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /home/dan/Projects/phpinfo/logs/access.log combined
</VirtualHost>
Соответствующая строка в /etc/hosts
:
127.0.0.1 phpinfo.local
Как я могу настроить виртуальные хосты в произвольных каталогах и позволить Apache и мне создавать и изменять файлы и каталоги ниже корневого веб-сайта vhost? Однажды мне удавалось осуществить это на другой машине после многих проб и ошибок, но я просто не могу повторить это на этот раз.
Обновить
В дополнение к решению Шейна обязательно перезагрузитесь после добавления в группу. На данный момент эта настройка работает должным образом. У меня и Apache есть доступ на запись в подкаталоги, в которых есть 775
разрешения и принадлежат www-data:www-data
(не dan:www-data
).
В www-data
пользователю также потребуется возможность перемещаться по родительским каталогам ( +x
бит) - держу пари, что /home/dan/
разве миру не позволено проникнуть в него?