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

Как запустить веб-приложение PHP от имени конкретного пользователя и группы в CentOS 5 с помощью Apache?

Я знаю, что есть разные способы сделать это, но я не уверен, что «лучший» способ подойдет для моей конкретной ситуации:

Моя первая мысль была использовать mod_fcgi так как я думаю, что это обычно делается в некоторых общих серверных средах, которые я использовал. Я, конечно, погуглил эту настройку, но большинство руководств, которые я нашел, были случайными сообщениями в блогах. Я бы хотел что-то более убедительное (например, HOWTO KB компании VPS или вики-сайт). Таким образом, я могу указать администратору на него как на общее руководство, которое, я уверен, он приспособится к тому, как он настроил этот конкретный сервер.

Я сомневаюсь, что вы найдете это аккуратно написанным из надежный источник.

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

Из коробки suPHP скомпилирован в параноидальном режиме, что означает, что вы должны указать пользователя и группу, которые вы хотите, чтобы PHP запускался как с suPHP_UserGroup директива для каждого виртуального хоста (также можно установить глобальное значение по умолчанию). Каждый виртуальный хост будет выглядеть примерно так

<VirtualHost *:80>
    suPHP_Engine on
    ServerName hostname.tld
    DocumentRoot /home/websites/hostname.tld
    suPHP_UserGroup hostname hostgroup
</VirtualHost>

Если у вас есть (или ожидаете иметь) большое количество хостов, описанный выше метод может стать трудным для администрирования. Вы можете скомпилировать suPHP самостоятельно и изменить paranoid режим для owner Режим. Это запускает сценарии от имени владельца / группы файла .php и позволяет использовать apache2. VirtualDocumentRoot и значительно упрощает настройку виртуального хоста.

<VirtualHost *:80>
    suPHP_Engine on
    ServerName something.tld
    ServerAlias *
    VirtualDocumentRoot /home/websites/%1/public_html
</VirtualHost>

Вам нужно будет отключить check_vhost_docroot в вашем suphp.conf, чтобы последняя конфигурация работала

;Check wheter script is within DOCUMENT_ROOT
check_vhost_docroot=false

Выполнение вышеуказанного позволяет apache «запускать» сайты в качестве пользователя / группы учетной записи.

Остальные ваши баллы - это базовое администрирование, о котором должен знать ваш администратор.