От suPHP до mod_php

У меня есть 64-битный сервер Centos6, Apache/2.2.15, PHP5.3.3, один виртуальный хост на основе IP и четырех имен, а также SSL/SNI для предоставления https в дополнение к http. Все эти хосты назначены различным пользователям Linux. У меня есть root-доступ к серверу, и все эти пользователи мои, а другие не имеют доступа к серверу. Сервер использует suPHP и SuExec для запуска cgi-процессов в качестве этих пользователей вместо пользователя apache.

Теперь я понял, что suPHP очень медленный по сравнению с mod_php. Изначально я перешел на suPHP, потому что ранее все эти 4 учетные записи находились на разных общих серверах, и было довольно легко перенести их на один сервер и обслуживать пользователей Linux.

Но поскольку сервер принадлежит мне, я думаю, что мне не нужен suPHP, и я рассматриваю возможность использования только DSO (mod_php).

Я рассматриваю следующий рабочий процесс:
1) Изменение пользователя Apache на одного из моих пользователей Linux, например. user1.
2) Смена владельца файлов другого пользователя на user1. У каждого пользователя есть собственный корень документа (public_html) в /home/user1, /home/user2 и т. Д.
3) Поскольку некоторые процессы потребляют слишком много ресурсов и необходимы для запуска командной строки, все пользователи имеют отдельный доступ без пароля к этому серверу (shell_exec("ssh user1@localhost 'someprogam'"), shell_exec("ssh user2@localhost 'someprogram'") так далее). После этой передачи только пользователю apache (т.е. user1) нужен такой доступ, как ssh к localhost, поэтому другие ssh-вещи могут быть удалены. Совет! Это кстати хороший способ переопределить ограничения ресурса php на общем (или любом другом) сервере. Обычно вы подключаетесь к удаленному серверу, но не к локальному. Особенно полезно при mogrifying больших изображений. Этот метод основан на том факте, что через ssh программа запускается как программа оболочки (по сравнению с CGI), а оболочка имеет не так много памяти и ограничений по времени выполнения.

После этих шагов пользователь apache (то есть user1) будет иметь доступ к / home через rwx и все под ним.

Этот рабочий процесс в порядке? Я предполагаю, что нет никаких угроз безопасности (снаружи или внутри), потому что все пользователи и сайты на сервере являются моими собственными, и я не могу найти причину, почему DSO (mod_php) в этом случае будет более небезопасным, чем suPHP.

Эта передача требует изменения десятков строк кода, но я предполагаю, что ускорение настолько велико, что процесс имеет смысл.

1 ответ

Возможно, стоит подумать о переходе на PHP FastCGI вместо этого, вы получите все преимущества скорости от mod-php5, но вы можете сохранить разделение привилегий пользователя.

http://php-fpm.org/

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