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

С 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 на общем (или любом другом) сервере. Обычно вы используете ssh на удаленный сервер, но почему бы и не на локальный сервер. Особенно полезно при mogrifying больших изображений. Этот метод основан на том факте, что через ssh программа запускается как программа оболочки (в отличие от CGI), и оболочка имеет не так много памяти и ограничений по времени выполнения.

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

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

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

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

http://php-fpm.org/