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

Права Apache в моих домашних папках

У меня есть выделенный сервер под управлением Ubuntu 10.04 с 10 пользователями. Несколько недель назад я настраивал Apache с псевдонимом для каждого пользователя, у каждого был www / внутри своего / home /, и я указал субдомен для каждого www /

Alias /foo /home/foo/www/
    <Directory /home/foo/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>

Он хорошо работает с обычным веб-сайтом, но когда я хочу использовать shell_exec с PHP, у меня возникают проблемы с правами. Apache не имеет достаточных прав для записи в папку. Я попытался добавить группу www-data в www / &, чтобы предоставить моим пользователям права на www-data, но это не работает ...

Вот результат команды ls -a

drwxr-xr-x  8 foo www-data  4096 2012-07-24 08:44 www/

Есть ключ к тому, чтобы это исправить?

Вы захотите использовать userdir вместо этого в Apache.

Он позволяет Apache получить доступ к определенному каталогу в домашнем каталоге ваших пользователей - по умолчанию

/home/foo/public_html

http://www.techytalk.info/enable-userdir-apache-module-ubuntu-debian-based-linux-distributions/ есть довольно хорошее руководство о том, как это настроить.

С вашей текущей схемой разрешений на www-папке, www-data-group получила только права на чтение и выполнение в каталоге. Дайте ему права на запись с помощью следующей команды:

chmod 0775 www

Если каталог содержит больше каталогов, и вам необходимо применить новые разрешения рекурсивно, вы можете выполнить следующие команды:

find www -type d -exec chmod 0775 '{}' \;
find www -type f -exec chmod 0664 '{}' \;