Какие конфигурации Apache/PHP Вы знаете и насколько хороший они?

В официальном руководстве говорится:

$CATALINA_BASE\bin\setenv.bat редактирования (создающий файл при необходимости) и добавляют путь к tc-собственным библиотекам, апрель и OpenSSL для СОЕДИНЕНИЯ КАНАЛОМ. Например:

set PATH=%PATH;C:\cygwin\home\support\tomcat-native-current-win32-src\jni\native\Debug;C:\cygwin\home\support\tomcat-native-current-win32-src\jni\apr\Debug;C:\OpenSSL\lib\VC

И это означает: добавьте "C:\cygwin\home\support\tomcat-native-current-win32-src\jni\native\Debug" к переменной среды "ПУТЬ", таким образом, я полагаю, что это - то, куда необходимо поместить этот файл.

8
задан 22 July 2010 в 18:52
4 ответа

Едва ли отвечая на Ваш вопрос, но я не получаю эту вещь о FastCGI, являющемся трудным настроить. Это отличается, что другие методы, которые это должно заменить (mod_php, mod_python...), таким образом, это может потребовать перезаписи части кода. Это может быть твердой частью, но для конфигурирования Apache, по крайней мере, я нахожу, что это - подпруга. Как пример, я тестировал приложение WSGI в Python, и я хотел видеть, как он выполнил со всеми протоколами это поддержки WSGI. Вот виртуальный файл хоста с конфигурациями для всех протоколов (с mod_fastcgi):

<VirtualHost *:8888>
DocumentRoot "/home/test/"
#FastCGIExternalServer /home/test/wsgi -host 127.0.0.1:3333
#SCGIMount / 127.0.0.1:3333
FastCgiServer /home/test/wsgi/fcgi.py -idle-timeout 60 -processes 1
<Directory "/home/test/wsgi/">
    Options +ExecCGI +FollowSymLinks
    AddHandler fastcgi-script .py
    #AddHandler wsgi-script .py
    #AddHandler cgi-script .py
</Directory>
</VirtualHost>

Это не делает кажется сложным мне. Несомненно, FastCGI поддерживает много опций, и его можно настроить до смерти, но это - другой вопрос.

Работать как другой пользователь, используйте suexec и FastCGIWrapper, затем это становится:

FastCGIWrapper On
<VirtualHost *:8888>
SuexecUserGroup test test
DocumentRoot "/home/test/"
FastCgiServer /var/www/test/fcgi.py -idle-timeout 60 -processes 1
<Directory "/var/www/test/">
    Options +ExecCGI +FollowSymLinks
    AddHandler fastcgi-script .py
</Directory>
</VirtualHost>

И см. эту ссылку для пользовательского php.ini, но необходимо смочь указать его с -initial-env опция, т.е.

FastCgiServer /var/www/test/fcgi.py -idle-timeout 60 -processes 1 -inital-env PHPRC=/blah/
2
ответ дан 2 December 2019 в 23:05
  • 1
    Да, добавление конфигурации апачу просто. Но Ваша конфигурация не позволяет выполнять сценарии от имени их владельца или по крайней мере определенным пользователем. Кроме того, пользовательский php.ini не может использоваться в Вашем случае (я предпочитаю ограничивать open_basedir для каждого virtualhost только для его каталога), –  Vladislav Rastrusny 22 April 2010 в 12:40
  • 2
    Я не знаю PHP хорошо, но это - те же проблемы, с которыми Вы сталкиваетесь с прямым CGI. И можно легко выполнить fastcgi как внешний сервер как любой пользователь, которого Вы любите. –  Dan Andreatta 22 April 2010 в 14:08
  • 3
    Добавленная дополнительная информация к ответу. –  Dan Andreatta 22 April 2010 в 16:29

Хороший кандидат: Apache 2 ITK MPM

apache2-mpm-itk (просто mpm-itk, если коротко) является MPM (Многопроцессорный Модуль) для веб-сервера Apache. mpm-itk позволяет Вам выполнять каждый из своих vhost под отдельным uid и ценурозом — короче говоря, сценарии и конфигурационные файлы для одного vhost больше не должны быть читаемыми для всех других vhosts.

Работал на один из наших клиентов очень хорошо с сотнями VirtualHosts с довольно большим количеством посетителей.

Вы получаете всех Профессионалов от выполнения PHP как модуль и разбираетесь в некоторых недостатках.

1
ответ дан 2 December 2019 в 23:05
  • 1
    Да, но обновляется за год до этого. И то, что еще более важно, открывает потенциальную целую безопасность. " Так как mpm-itk должен смочь к setuid (), он работает как корень (хотя ограничено с возможностями POSIX, где возможный), пока запрос не анализируется, и vhost полон решимости. Это означает, что любая дыра в системе безопасности перед запросом анализируется, будет корневая дыра в системе безопасности. (Наиболее вероятное место находится, вероятно, в mod_ssl.)" –  Vladislav Rastrusny 22 April 2010 в 11:14
  • 2
    Работы кода, очень стабильно и вероятно никакая причина обновить его. Модуль получил активного разработчика Debian (don' t знают об исходном разработчике). И it' s FOSS и не очень сложный. –  rkthkr 22 April 2010 в 13:08

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

Если производительность настолько важна, выполняет один сайт на VPS или Выделенном сервере и настраивает для производительности.

0
ответ дан 2 December 2019 в 23:05
  • 1
    Я просто спрашиваю о возможных вариантах. Не о выборе лучшего. Я выберу меня. –  Vladislav Rastrusny 25 April 2010 в 14:38

Выполнение PHP через FastCGI, конечно, даст Вам наибольшую гибкость. Мало того, что можно безопасно использовать Apache mpm-рабочего, можно даже использовать другой веб-сервер в целом (например, nginx).

Но оставаясь с Apache, "PHP через FastCGI" является в данный момент не одной опцией, но по крайней мере двумя: mod_fastcgi, mod_fcgid. Вдобавок ко всему, можно или использовать динамические, статические, или внешние процессы FastCGI; с или без suexec. И затем существует внутренний диспетчер процессов FastCGI PHP, который теперь заменяется очень хорошим PHP-FPM в PHP 5.3. Все те опции имеют различные за и против и могут привести к различным проблемам.

Учитывая выбор, я выбрал бы mod_fastcgi с PHP-FPM в данный момент, главным образом потому что он допускает чрезвычайно универсальные и стабильные установки.

3
ответ дан 2 December 2019 в 23:05

Теги

Похожие вопросы