Назад | Перейти на главную страницу

Как настроить виртуальные хосты на машине Ubuntu dev в произвольных каталогах с разрешениями на запись для Apache и меня?

Я использую свою машину для разработки XUbuntu 12.04, и я установил стек LAMP, используя tasksel install lamp-server. Я безуспешно пытался настроить виртуальные хосты в каталогах моих личных проектов. Я просмотрел пример конфигурации vhost в документации apache (Запуск нескольких именных веб-сайтов на одном IP-адресе). Я пробовал предложения из множества руководств и сообщений в блогах, и у меня было множество проблем (Тайм-аут, страница «Работает» вместо index.php, 403 Запрещено).

Я включил модуль userdir и добавил себя в группу 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/ разве миру не позволено проникнуть в него?