CentOS7 で suPHP のインストール

SuExecでphp-cgiはサイトが増えるとアップデートするときとか面倒なイメージがあるのででsuPHPにしようとおもったら、CentOS7はパッケージにはなっていない模様。
ちょっとポリシーに反するのですが、ソースからいれてみたメモ
 
 
インストールに必要なパッケージをインストール

yum install apr-devel httpd-devel libtool gcc-c++

 
 
パッケージのダウンロードと展開

wget http://suphp.org/download/suphp-0.7.2.tar.gz
tar zxvf suphp-0.7.2.tar.gz

 
 
CentOS7ではちょっと修正が必要なようなのでパッチを作ってくれた人のものをダウンロード
最後の参考URLより拝借

wget -O suphp.patch https://lists.marsching.com/pipermail/suphp/attachments/20130520/74f3ac02/attachment.patch
patch -Np1 -d suphp-0.7.2 < suphp.patch

内容は以下のような感じApache2.4に対応してないのかな?

diff -uN a/configure.ac b/configure.ac
--- a/configure.ac	2013-05-20 19:26:56.000000000 +0300
+++ b/configure.ac	2013-05-20 20:33:03.616154646 +0300
@@ -66,7 +66,7 @@
                     | cut -f2 -d"/" \
                     | cut -f1 -d" "`
     major_version=`echo $APACHE_VERSION|cut -f1,2 -d.`
-    if test "$major_version" = "2.0" -o "$major_version" = "2.2"; then
+    if test "$major_version" = "2.0" -o "$major_version" = "2.2" -o "$major_version" = "2.4"; then
       APACHE_VERSION_2=true
       APACHE_VERSION_1_3=false
     else

 
 
コンパイルしてインストール

cd suphp-0.7.2
aclocal && libtoolize --force && automake --add-missing && autoreconf
./configure --with-apr=/usr/bin/apr-1-config   --with-apache-user=apache --with-min-uid=1000 --with-min-gid=1000
make
make install

 
 
設定ファイル配置

cd doc
cp suphp.conf-example /usr/local/etc/suphp.conf
面倒なので/etcへリンクしておく
ln -s /usr/local/etc/suphp.conf /etc/suphp.conf

 
 
設定ファイル1(suPHP)
suphp.conf 変更点抜粋

logfile=/var/log/httpd/suphp.log
webserver_user=apache
docroot=/var/www/html
umask=0022
min_uid=1000
min_gid=1000
;x-httpd-php="php:/usr/bin/php"
application/x-httpd-php="php:/usr/bin/php-cgi"

 
 
設定ファイル2(Apache)
/etc/httpd/conf.d/suphp.conf

LoadModule suphp_module modules/mod_suphp.so
suPHP_AddHandler application/x-httpd-php

 
 
設定ファイル3(Aapche VirtualHost)
全体としてモジュール版も有効にしつつ、特定のDirectoryだけsuPHPを有効にする場合

  <Directory /var/www/html/sample>
     Options FollowSymLinks
     AllowOverride All
     suPHP_Engine    On
     suPHP_UserGroup sampleftp sampleftp
     <IfModule mod_php5.c>
        php_admin_flag engine off
     </IfModule>
  </Directory>

 
 
<参考>
How to install SuPHP on CentOS 7.2

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA