ISPConfigで使用するためにさまざまなLinuxディストリビューションにsuPHPをインストールする方法(2.2.20以上)
バージョン2.2.20以降、ISPConfigはsuPHPのサポートを改善しました。この記事では、ISPConfigでサポートされているさまざまなディストリビューションにsuPHPをインストールする方法について説明します。 (以前のバージョンのISPConfigでsuPHPを使用したことがある場合でも、インストールは機能します。)
これがあなたのために働くという保証はありません!
1 Debian Etch / Ubuntu 7.10
DebianおよびUbuntuの場合、パッケージlibapache2-mod-suphpが存在しますが、このパッケージの問題は、-with-setidを使用してコンパイルされていないため、suPHP_UserGroupディレクティブ(ISPConfigで使用される)をサポートしていないことです。 -mode=paranoidスイッチ。したがって、mod_suphpを手動でビルドする必要があります。
まず、通常のPHP5モジュールを(ルートとして)無効にします:
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
Fedora8およびCentOS5.1では、DebianおよびUbuntu(suPHP_UserGroup)と同じ理由で、mod_suphpを手動でビルドする必要があります。
まず、通常の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では、DebianやUbuntu(suPHP_UserGroup)と同じ理由で、mod_suphpを手動でビルドする必要があります。
まず、通常のPHP5モジュールを無効にします。
vi /etc/httpd/modules.d/70_mod_php.conf
LoadModule行をコメントアウトします:
<IfDefine HAVE_PHP5> <IfModule !mod_php5.c> #LoadModule php5_module extramodules/mod_php5.so </IfModule> </IfDefine> [...] |
次に、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_UserGroupディレクティブを理解するsuPHPパッケージが付属しているため、自分でビルドする必要はありません。
まず、通常のPHP5モジュールを無効にします。 / etc / sysconfig / apache2を開き、APACHE_MODULES行からphp5を削除します(この行のように見えるように、モジュールは異なる場合がありますが、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
次に、/ etc / sysconfig/apache2のAPACHE_MODULES行にsuphpを追加します。このように:
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" [...] |
OpenSUSEのsuPHPパッケージには、suPHPをグローバルに有効にするsuPHP構成が付属しています。したがって、今すぐこの構成を無効にして、WebサイトごとにISPConfigでsuPHPを有効または無効にできるようにする必要があります。
vi /etc/apache2/conf.d/mod_suphp.conf
そのファイルでは、すべてをコメントアウトしています:
#<IfModule mod_suphp.c> # 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 # # <Location /> # suPHP_AddHandler application/x-httpd-php # </Location> #</IfModule> # in your vhost you need: #<Virtualhost *> # suPHP_UserGroup someuser somegroup #</Virtualhost> |
最後に実行します:
SuSEconfig
/etc/init.d/apache2 restart
5ISPConfigの構成
最後に、通常のPHP構成ではなく、suPHP構成をApachevhostsに書き込む必要があることをISPConfigに通知する必要があります。これを行うには、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'; [...] |
これで、ISPConfigでWebサイトに対してPHPを有効にするたびに、ISPConfigはそのWebサイトのvhost構成にsuPHP構成を書き込みます。
6つのリンク
- suPHP:http://www.suphp.org
- ISPConfig:http://www.ispconfig.org