У меня есть Debian 6 VPS, на котором я хочу разместить несколько сайтов для себя и друга. Является ли хорошей идеей размещать наши собственные сайты в нашем домашнем каталоге, например /home/user/sites/mysite.com, и создавать его как виртуальный хост?
Должен ли я позволить учетной записи www-data также быть частью группы «пользователи», чтобы она могла выполнять / создавать каталоги, например, для wordpress?
Или вы порекомендуете вместо этого размещать сайты из / var / www /?
Мы будем очень благодарны за любые отзывы или советы, так как я очень хочу узнать простой / эффективный способ добиться этого.
Размещение сайтов внутри вашего домашнего каталога небезопасно; все, что тебе нужно сделать, это a+x
домашний каталог пользователя, чтобы Apache мог находиться там, что не представляет угрозы безопасности в каком-либо значимом смысле. Для еще большей безопасности создавайте отдельных пользователей для любого динамического контента, чтобы проблема безопасности на одном динамическом сайте не вызывала риска повреждения для всех других ваших сайтов.
Также не используйте mod_php
для любой системы, в которой работает более одного сайта, потому что (как вы заметили) вам затем нужно играть в игры с разрешениями, чтобы веб-сервер мог писать динамически генерируемый контент. Вместо этого используйте что-то вроде suPHP (или FCGI или suExec для общего содержимого CGI), чтобы запускать PHP-код каждого пользователя как самих себя, а не как веб-сервер. Это обеспечивает лучшую изоляцию и позволяет избежать сложных игр с разрешениями (например, www-data
в users
группа, которая просто нечиста).
По соображениям безопасности лучше размещать файлы вне каталога / home. Вы не сможете читать каталог /home/user/sites/mysite.com без изменения разрешений для каталога / home. Что вы можете сделать, так это создать символическую ссылку, например:
/var/www/html/user1 -> /home/user1/sites
И ваш DocumentRoot будет / var / www / html / user1 с флагом allowymlinks.