Installere suPHP Centos 6
1: Laste ned suPHP arkivet
# mkdir software
# cd software
# wget http://www.suphp.org/download/suphp-0.7.1.tar.gz
# tar xfzv suphp-0.7.1.tar.gz
2: Kompiler og installer mod_suphp
# cd suphp-0.7.1
# yum install httpd-devel
# ./configure --with-apr=/usr/bin/apr-1-config
# make
# make install
3: Konfigurering av mod_suphp og Apache
a) Vi trenger å konfigurere selve suphp. Jeg har valgt å legge konfigurasjonen i filen: "/usr/local/etc/suphp.conf".
[global]
;Path to logfile
logfile=/var/log/suphp.log
;Loglevel
loglevel=info
;User Apache is running as
webserver_user=apache
;Path all scripts have to be in
docroot=/var/www:${HOME}/public_html
;Path to chroot() to before executing script
;chroot=/mychroot
; Security options
allow_file_group_writeable=false
allow_file_others_writeable=false
allow_directory_group_writeable=false
allow_directory_others_writeable=false
;Check wheter script is within DOCUMENT_ROOT
check_vhost_docroot=true
;Send minor error messages to browser
errors_to_browser=true
;PATH environment variable
env_path="/bin:/usr/bin"
;Umask to set, specify in octal notation
umask=0077
; Minimum UID
min_uid=100
; Minimum GID
min_gid=100
[handlers]
;Handler for php-scripts
x-httpd-php="php:/usr/bin/php-cgi"
;Handler for CGI-scripts
x-suphp-cgi="execute:!self"
b) Vi trenger å konfigurere Apache til å laste mod_suphp istedet for mod_php. Jeg har valgt å legge denne konfigurasjonen i følgende fil: "/etc/httpd/conf.d/suphp.conf".
# This is the Apache server configuration file providing suPHP support.
# It contains the configuration directives to instruct the server how to
# serve php pages while switching to the user context before rendering.
LoadModule suphp_module modules/mod_suphp.so
# This option tells mod_suphp if a PHP-script requested on this server (or
# VirtualHost) should be run with the PHP-interpreter or returned to the
# browser "as it is".
suPHP_Engine on
# Disable php when suphp is used, to avoid having both.
<IfModule mod_php5.c>
php_admin_flag engine off
</IfModule>
<IfModule mod_php4.c>
php_admin_flag engine off
</IfModule>
# To use suPHP to parse PHP-Files
AddHandler x-httpd-php .php
AddHandler x-httpd-php .php .php4 .php3 .phtml
# This option tells mod_suphp which path to pass on to the PHP-interpreter
# (by setting the PHPRC environment variable).
# Do *NOT* refer to a file but to the directory the file resides in.
#
# E.g.: If you want to use "/path/to/server/config/php.ini", use "suPHP_Config
# /path/to/server/config".
#
# If you don't use this option, PHP will use its compiled in default path.
# suPHP_ConfigPath /etc
# If you compiled suphp with setid-mode "force" or "paranoid", you can
# specify the user- and groupname to run PHP-scripts with.
# Example: suPHP_UserGroup foouser bargroup
# suPHP_UserGroup apache apache
# This option tells mod_suphp to handle requests with the type <mime-type>.
# Please note this only works, if an action for the handler is specified
# in the suPHP configuration file.
suPHP_AddHandler x-httpd-php
# This option tells mod_suphp to NOT handle requests with the type <mime-type>.
# suPHP_RemoveHandler <mime-type>
4: Sett opp din vhost til å bruke suphp
Jeg viser de ene statementet du trenger å legge til din allerede eksisterende vhost fil.
suPHP_UserGroup brukeren gruppen
5: Restart Apache
$ sudo service apache restart
6: Test at oppsettet fungerer som forventet
Legg følgende inn i en index.php
<?php
echo "I am running as user = ";
system("whoami");
?>
Når du åpner denne siden i nettleseren din er det altså brukeren som du har oppgitt i vhost filen som skal være den som kjører php scriptene og ikke apache brukeren.
Lykke til...