Intereting Posts
SQL-дизайн и / или класс PHP для хранения динамических двумерных массивов? Функция PostGIS для объединения геометрии LINE вместе? Использование прозрачного PNG в качестве маски для клипа Curl Post-server не возвращает ответ DVLA-соскабливание ASPx Force загружает несколько файлов blob в php Входной параметр $ _GET, являющийся массивом PHP gzuncompress с ошибками чтения и записи файлов PHP. Как запретить пользователю входить в систему с нескольких компьютеров одновременно? PHP x86 Как получить размер файла> 2 ГБ без внешней программы? Отправка почты (в Localhost) с помощью библиотеки электронной почты CodeIgniter из gmail не работает Подключение непосредственно к Redis с (на стороне клиента) javascript? Лечение «Бэк-кнопок» python формат datetime с "st", "nd", "rd", "th" (английский порядковый суффикс), как PHP "S" Как автоматически выйти из системы при закрытии браузера? как передать строку запроса в ошибке ошибки 404 через .htaccess?

Пользователи и группы Linux для сервера LAMP

Какова наилучшая практика для настройки сервера LAMP с точки зрения пользователей и групп Linux? Если на одном и том же сервере есть несколько сайтов, лучше ли иметь одного пользователя, которому принадлежат все исходные файлы (и загрузки) сайта, которые находятся в той же группе, что и apache, или иметь другого пользователя для каждого сайта (так что у каждого сайта есть свой crontab)? Или что-то еще?

По какой-то причине этот вопрос никогда не рассматривается в книгах PHP / MySQL / Linux, с которыми я столкнулся.

На нашей платформе у каждого htdocs и т. Д. Есть собственный пользователь. Это означает, что если один сайт взломан, другие должны быть в порядке.

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

Я предполагаю, что вы не хотите сходить с ума и получить WHM для cPanel и, возможно, захотите сделать это неэффективно.

Я считаю, что лучше всего, чтобы каждый пользователь получал доступ к своему пространству от своего имени пользователя и группы – особенно если не связанные пользователи могут использовать веб-сервер.

Если у вас более 10 доменов и пользователей и вы хотите, чтобы учетные записи были разделены на собственное пространство, я бы рассмотрел возможность использования Webmin с VirtualMin, установленного на сервере. Это легко справляется с этими проблемами, в рамках бесплатной установки. В противном случае вам придется покупать коммерческий продукт или обрабатывать все вручную – настоящую боль, но это может быть сделано (не рекомендуется для коммерческого предприятия).

Кроме того, Xen и VMS могут быть чрезмерными, но также не так легко управлять, как Webmin / VirtualMin для 10-100 + учетных записей.

Лучший выбор – создать VirtualHost для каждого домена, используя Apache с модулем suPHP. Таким образом, каждый сайт будет принадлежать пользователю и запускаться с разрешения этого пользователя. Webroot каждого сайта должен быть помещен под homedir пользователя, чтобы предотвратить локальную атаку.

Если вы используете одного и того же пользователя для каждого веб-сайта, это означает, что пользователь с сайтаA может получить доступ к файлам чтения / записи в файлы сайта.

Я несколько лет занимался небольшим хостингом, и мой ответ: «Это зависит».

Прежде всего, существует разница между Apache Module (mod_php). CGI и FastCGI. Хороший список со всеми плюсами и минусами можно найти здесь: режимы Apache php

Когда дело доходит до обеспечения безопасности, все режимы имеют плюсы и минусы.

Поскольку мы размещали относительно небольшое количество Доменов с умеренным трафиком, я решил остаться с mod_php и использовать конфигурацию vhost.

Я также использовал разных пользователей FTP для каждого корневого каталога vhost (конечно).

Конфигурирование vhosts (по одному на каждого клиента) позволяет вам отключать домены простым способом, не прокладывая себе путь через смехотворно большой httpd.conf и создавая ошибки на пути.