ホーム > ohwada

ohwada

記事一覧 > はっぴぃ・りなっくす > suphp CentOS 5

suphp CentOS 5

機能

PHP を cgi モードで動作させるための apache のモジュール。

PHPモジュール版では、apache 権限で動作するため、アクセス権限の壁が存在しない。
suphp では、自分の uid と gid の権限で動作するため、アクセス権限の壁が構築される。
perl の suexec や fastcgi と同様の仕組み。

インストール

centos にはないので、fedora から持ってくる

# yum  --enablerepo=fc6extras install mod_suphp


設定

/etc/suphp.conf

[global]
logfile=/var/log/suphp.log
loglevel=info
webserver_user=apache
docroot=/
allow_file_group_writeable=false
allow_file_others_writeable=false
allow_directory_group_writeable=false
allow_directory_others_writeable=false
check_vhost_docroot=true
errors_to_browser=true
env_path=/bin:/usr/bin
umask=0077
min_uid=500
min_gid=500
handle_userdir=true

[handlers]
; ここを変更する
;x-httpd-php=php:/usr/bin/php
x-httpd-php="php:/usr/bin/php-cgi"

x-suphp-cgi=execute:!self


/etc/httpd/conf.d/mod_suphp.conf

LoadModule suphp_module modules/mod_suphp.so

# mod_suphp を有効にするときは、頭の#を消す
#suPHP_AddHandler x-httpd-php
suPHP_AddHandler x-httpd-php

suPHP_Engine on

# 下記を php.conf から転記する
AddHandler x-httpd-php .php
DirectoryIndex index.php


/etc/httpd/conf.d/php.conf を削除する

セッション変数への書込み権限を与える

chmod 777 /var/lib/php/session


apache 再起動

# /etc/init.d/httpd restart


確認

下記のphpファイルを作成し、ブラウザからアクセスする
phpinofo.php

<?php phpinfo(); ?>


CGIモードで動作していれば、OK

Server API: CGI/FastCGI 


ユーザ権限で動作していれば、OK

# tail /var/log/suphp.log
-----
Executing "/xxx/phpinfo.php" as UID 501, GID 501


参考

- CentOSでmod_suphpをインストール


To Top