Установка suPHP · 3 min read · Nov 21, 2025

Как установить suPHP на различных дистрибутивах Linux для использования с ISPConfig (2.2.20 и выше)

Как установить suPHP на различных дистрибутивах Linux для использования с ISPConfig (2.2.20 и выше)

Версия 1.0
Автор: Фалко Тимме

Начиная с версии 2.2.20, ISPConfig улучшил поддержку suPHP. Эта статья объясняет, как установить suPHP на различных дистрибутивах, поддерживаемых ISPConfig. (Если вы использовали suPHP с предыдущими версиями ISPConfig, ваша установка все равно будет работать.)

Я не даю никаких гарантий, что это сработает для вас!

1 Debian Etch / Ubuntu 7.10

Для Debian и Ubuntu существует пакет libapache2-mod-suphp, однако проблема с этим пакетом заключается в том, что он не поддерживает директиву suPHP_UserGroup (которая используется ISPConfig), потому что он не был скомпилирован с использованием ключа –with-setid-mode=paranoid. Поэтому мы должны собрать mod_suphp вручную.

Сначала мы отключаем обычный модуль PHP5 (от имени root):

a2dismod php5  
/etc/init.d/apache2 restart

Затем мы устанавливаем необходимые зависимости для сборки mod_suphp:

apt-get install php5-cgi apache2-prefork-dev

Теперь мы можем скачать и собрать suPHP следующим образом:

cd /tmp  
wget http://www.suphp.org/download/suphp-0.6.2.tar.gz  
tar xvfz suphp-0.6.2.tar.gz  
cd suphp-0.6.2  
./configure --prefix=/usr --sysconfdir=/etc --with-apache-user=www-data --with-setid-mode=paranoid --with-apxs=/usr/bin/apxs2  
make  
make install

Наконец, мы добавляем модуль suPHP в нашу конфигурацию Apache…

vi /etc/apache2/httpd.conf

| LoadModule suphp_module /usr/lib/apache2/modules/mod_suphp.so |

… и перезапускаем Apache:

/etc/init.d/apache2 restart

2 Fedora 8 / CentOS 5.1

На Fedora 8 и CentOS 5.1 мы должны собрать mod_suphp вручную по тем же причинам, что и для Debian и Ubuntu (suPHP_UserGroup).

Сначала мы отключаем обычный модуль PHP5:

vi /etc/httpd/conf.d/php.conf

Закомментируйте строку LoadModule:

| [...] #LoadModule php5_module modules/libphp5.so [...] |

Затем мы устанавливаем необходимые зависимости для сборки mod_suphp:

yum install php-cli httpd-devel

Теперь мы можем скачать и собрать suPHP следующим образом:

cd /tmp  
wget http://www.suphp.org/download/suphp-0.6.2.tar.gz  
tar xvfz suphp-0.6.2.tar.gz  
cd suphp-0.6.2/  
./configure --prefix=/usr --sysconfdir=/etc --with-apr=/usr/bin/apr-1-config --with-apxs=/usr/sbin/apxs --with-apache-user=apache --with-setid-mode=paranoid --with-php=/usr/bin/php-cgi --with-logfile=/var/log/httpd/suphp_log --enable-SUPHP_USE_USERGROUP=yes  
make  
make install

Наконец, мы добавляем модуль suPHP в нашу конфигурацию Apache…

vi /etc/httpd/conf.d/suphp.conf

| LoadModule suphp_module modules/mod_suphp.so |

… и перезапускаем Apache:

/etc/init.d/httpd restart

3 Mandriva 2008.0

На Mandriva 2008.0 мы должны собрать mod_suphp вручную по тем же причинам, что и для Debian и Ubuntu (suPHP_UserGroup).

Сначала мы отключаем обычный модуль PHP5:

vi /etc/httpd/modules.d/70_mod_php.conf

Закомментируйте строку LoadModule:

| #LoadModule php5_module extramodules/mod_php5.so [...] |

Затем мы устанавливаем необходимые зависимости для сборки mod_suphp:

urpmi php-cgi apache-devel

Теперь мы можем скачать и собрать suPHP следующим образом:

cd /tmp  
wget http://www.suphp.org/download/suphp-0.6.2.tar.gz  
tar xvfz suphp-0.6.2.tar.gz  
cd suphp-0.6.2/  
./configure --prefix=/usr --sysconfdir=/etc --with-apr=/usr/bin/apr-1-config --with-apxs=/usr/sbin/apxs --with-apache-user=apache --with-setid-mode=paranoid --with-php=/usr/bin/php-cgi --with-logfile=/var/log/httpd/suphp_log --enable-SUPHP_USE_USERGROUP=yes  
make  
make install

Наконец, мы добавляем модуль suPHP в нашу конфигурацию Apache…

vi /etc/httpd/modules.d/A36_mod_suphp.conf

| LoadModule suphp_module modules/mod_suphp.so |

… и перезапускаем Apache:

/etc/init.d/httpd restart

4 OpenSUSE 10.3

OpenSUSE 10.3 поставляется с пакетом suPHP, который понимает директиву suPHP_UserGroup, поэтому нам не нужно собирать его самостоятельно.

Сначала мы отключаем обычный модуль PHP5. Откройте /etc/sysconfig/apache2 и удалите php5 из строки APACHE_MODULES (так, чтобы она выглядела примерно так - ваши модули могут отличаться, но php5 больше не должен быть в списке):

vi /etc/sysconfig/apache2

| [...] APACHE_MODULES="actions alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user authn_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif ssl suexec userdir rewrite ruby" [...] |

Запустите

SuSEconfig

после этого.

Теперь мы устанавливаем suPHP следующим образом:

yast -i suphp

Затем мы добавляем suphp в строку APACHE_MODULES в /etc/sysconfig/apache2, например, так:

vi /etc/sysconfig/apache2

| [...] APACHE_MODULES="actions alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user authn_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif ssl suexec userdir rewrite ruby suphp" [...] |

Пакеты suPHP для OpenSUSE поставляются с конфигурацией suPHP, которая включает suPHP глобально. Поэтому мы должны отключить эту конфигурацию сейчас, чтобы мы могли включать или отключать suPHP в ISPConfig для каждого сайта отдельно:

vi /etc/apache2/conf.d/mod_suphp.conf

В этом файле мы закомментируем все:

| # # suPHP_Engine on # # AddType application/x-httpd-php .php # AddType application/x-httpd-php .php3 # AddType application/x-httpd-php .php4 # AddType application/x-httpd-php .php5 # AddHandler application/x-httpd-php .php # # DirectoryIndex index.php index.php3 index.php4 index.php5 # # # suPHP_AddHandler application/x-httpd-php # # # в вашем vhost вам нужно: # # suPHP_UserGroup someuser somegroup # |

Наконец, мы запускаем:

SuSEconfig  
/etc/init.d/apache2 restart

5 Настройка ISPConfig

Наконец, мы должны сказать ISPConfig, что он должен записывать конфигурацию suPHP в виртуальные хосты Apache вместо обычной конфигурации PHP. Для этого мы открываем файл конфигурации ISPConfig /home/admispconfig/ispconfig/lib/config.inc.php и устанавливаем $go_info[“server”][“apache2_php”] на suphp:

vi /home/admispconfig/ispconfig/lib/config.inc.php

| [...] $go_info["server"]["apache2_php"] = 'suphp'; [...] |

Теперь, когда вы включаете PHP для веб-сайта в ISPConfig, ISPConfig будет записывать конфигурацию suPHP в конфигурацию виртуального хоста этого веб-сайта.

6 Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.