Предоставьте разрешение apache для записи в / home / * / www / directories

LAMP server newbie here:

У меня есть веб-сервер (на VPS, к которому у меня есть полный доступ root), в котором я настраиваю несколько пользователей с веб-сайтами.

У меня установлены apache2 и php, и я вручную указал несколько сайтов для них в каталоге / etc / apache2 / sites-enable (символически привязывая их к доступным сайтам, как обычно).

Я фактически не использую каталог / var / www /, вместо этого предпочитаю следующую настройку:

/home/user1/www/websiteone.com/ /home/user1/www/subdomain.websiteone.com/ /home/user1/www/differentwebsiteone.com/ /home/user2/www/websitetwo.com/ /home/user3/www/websitethree.com/

и т. д. и т. д. и т. д. Надеюсь, вы увидите, где я

У меня есть две проблемы:

Apache не может писать в эти каталоги. Есть ли простое и ясное объяснение того, как я могу добиться этого для всех / home / * / www / directories ТОЛЬКО (и рекурсивно) для записи на www-data, не предоставляя пользователю 1 доступ на запись к user2 и т. Д.? Предпочтительным является простой шаг, который ретроактивно работает на всех будущих пользователях, но я не возражаю против его ручной настройки, если это невозможно. Во-вторых: в некоторых случаях я хотел бы, скажем, user2 иметь доступ к файлам differentwebsiteone.com (в домашнем каталоге user1), но не предоставлять им доступ ко всему остальному (так что какая-то символическая ссылка появляется как / home / user2 /www/differentwebsiteone.com). Могу ли я достичь этого легко? Возможно, перемещение файлов сайта в / var / www / и символическое привязку к соответствующим домашним каталогам? Или что-то? Совет очень ценится!

Спасибо!

3
задан 19 July 2011 в 06:24

7 ответов

Apache работает как один пользователь для всех сайтов, поэтому, если вы предоставили ему доступ к записи в / home / user1 / www, user2 также сможет писать PHP-скрипты, которые могут писать в / home / user1 / www. Вам нужно запустить PHP за пределами обычных методов, чтобы иметь возможность отделять пользователей.

Там хорошая запись здесь по существу различных методов:

http: // boomshadow .net / tech / php-handlers /

Мне нравится fastcgi, но если вам не нужна производительность, suPHP, вероятно, вы хотите.

Еще один интересный новый, не упомянутый есть контейнеры LXC, которые действительно были не все, что можно использовать в 10.04, но с тех пор созрели совсем немного. Это позволяет создавать то, что похоже на другой сервер внутри вашего VPS, но не виртуализован .. его просто содержится в пределах его собственного пространства процесса.

3
ответ дан 25 May 2018 в 19:45
  • 1
    Ах, я не знал, что FastCGI смог обрабатывать запущенные скрипты в качестве владельца скрипта! Мне совсем не понравился внешний вид suPHP, поэтому я рад, что у меня есть хорошая альтернатива! – TC Fox 21 July 2011 в 09:13

Apache работает как один пользователь для всех сайтов, поэтому, если вы предоставили ему доступ к записи в / home / user1 / www, user2 также сможет писать PHP-скрипты, которые могут писать в / home / user1 / www. Вам нужно запустить PHP за пределами обычных методов, чтобы иметь возможность отделять пользователей.

Там хорошая запись здесь по существу различных методов:

http: // boomshadow .net / tech / php-handlers /

Мне нравится fastcgi, но если вам не нужна производительность, suPHP, вероятно, вы хотите.

Еще один интересный новый, не упомянутый есть контейнеры LXC, которые действительно были не все, что можно использовать в 10.04, но с тех пор созрели совсем немного. Это позволяет создавать то, что похоже на другой сервер внутри вашего VPS, но не виртуализован .. его просто содержится в пределах его собственного пространства процесса.

3
ответ дан 25 July 2018 в 21:34

Apache работает как один пользователь для всех сайтов, поэтому, если вы предоставили ему доступ к записи в / home / user1 / www, user2 также сможет писать PHP-скрипты, которые могут писать в / home / user1 / www. Вам нужно запустить PHP за пределами обычных методов, чтобы иметь возможность отделять пользователей.

Там хорошая запись здесь по существу различных методов:

http: // boomshadow .net / tech / php-handlers /

Мне нравится fastcgi, но если вам не нужна производительность, suPHP, вероятно, вы хотите.

Еще один интересный новый, не упомянутый есть контейнеры LXC, которые действительно были не все, что можно использовать в 10.04, но с тех пор созрели совсем немного. Это позволяет создавать то, что похоже на другой сервер внутри вашего VPS, но не виртуализован .. его просто содержится в пределах его собственного пространства процесса.

3
ответ дан 31 July 2018 в 13:33

Apache работает как один пользователь для всех сайтов, поэтому, если вы предоставили ему доступ к записи в / home / user1 / www, user2 также сможет писать PHP-скрипты, которые могут писать в / home / user1 / www. Вам нужно запустить PHP за пределами обычных методов, чтобы иметь возможность отделять пользователей.

Там хорошая запись здесь по существу различных методов:

http: // boomshadow .net / tech / php-handlers /

Мне нравится fastcgi, но если вам не нужна производительность, suPHP, вероятно, вы хотите.

Еще один интересный новый, не упомянутый есть контейнеры LXC, которые действительно были не все, что можно использовать в 10.04, но с тех пор созрели совсем немного. Это позволяет создавать то, что похоже на другой сервер внутри вашего VPS, но не виртуализован .. его просто содержится в пределах его собственного пространства процесса.

3
ответ дан 2 August 2018 в 03:11

Apache работает как один пользователь для всех сайтов, поэтому, если вы предоставили ему доступ к записи в / home / user1 / www, user2 также сможет писать PHP-скрипты, которые могут писать в / home / user1 / www. Вам нужно запустить PHP за пределами обычных методов, чтобы иметь возможность отделять пользователей.

Там хорошая запись здесь по существу различных методов:

http: // boomshadow .net / tech / php-handlers /

Мне нравится fastcgi, но если вам не нужна производительность, suPHP, вероятно, вы хотите.

Еще один интересный новый, не упомянутый есть контейнеры LXC, которые действительно были не все, что можно использовать в 10.04, но с тех пор созрели совсем немного. Это позволяет создавать то, что похоже на другой сервер внутри вашего VPS, но не виртуализован .. его просто содержится в пределах его собственного пространства процесса.

3
ответ дан 4 August 2018 в 19:04

Apache работает как один пользователь для всех сайтов, поэтому, если вы предоставили ему доступ к записи в / home / user1 / www, user2 также сможет писать PHP-скрипты, которые могут писать в / home / user1 / www. Вам нужно запустить PHP за пределами обычных методов, чтобы иметь возможность отделять пользователей.

Там хорошая запись здесь по существу различных методов:

http: // boomshadow .net / tech / php-handlers /

Мне нравится fastcgi, но если вам не нужна производительность, suPHP, вероятно, вы хотите.

Еще один интересный новый, не упомянутый есть контейнеры LXC, которые действительно были не все, что можно использовать в 10.04, но с тех пор созрели совсем немного. Это позволяет создавать то, что похоже на другой сервер внутри вашего VPS, но не виртуализован .. его просто содержится в пределах его собственного пространства процесса.

3
ответ дан 6 August 2018 в 03:23

Apache работает как один пользователь для всех сайтов, поэтому, если вы предоставили ему доступ к записи в / home / user1 / www, user2 также сможет писать PHP-скрипты, которые могут писать в / home / user1 / www. Вам нужно запустить PHP за пределами обычных методов, чтобы иметь возможность отделять пользователей.

Там хорошая запись здесь по существу различных методов:

http: // boomshadow .net / tech / php-handlers /

Мне нравится fastcgi, но если вам не нужна производительность, suPHP, вероятно, вы хотите.

Еще один интересный новый, не упомянутый есть контейнеры LXC, которые действительно были не все, что можно использовать в 10.04, но с тех пор созрели совсем немного. Это позволяет создавать то, что похоже на другой сервер внутри вашего VPS, но не виртуализован .. его просто содержится в пределах его собственного пространства процесса.

3
ответ дан 7 August 2018 в 21:09

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

Похожие вопросы: