Skip to Content

Podešavanje suEXEC za PHP na Virtualminu GPL

Napomena pre početka, ovako se radi u Debianu, veoma slično je i za ostale GNU/Linux distribucije.

Prvo, napraviti skel za nove hostove, kao root:

cd /etc/skel
mkdir -p etc/php5
cp /etc/php5/apache2/php.ini /etc/skel/etc/php5/php.ini
mkdir fcgi-bin
vi fcgi-bin/php5.fcgi

U fajl php5.fcgi upišite ovo:

#!/bin/bash

export PHPRC=$PWD/../etc/php5
umask 022
export SCRIPT_FILENAME=$PATH_TRANSLATED
exec /usr/bin/php-cgi

Promenite dozvole ovom fajlu:

chmod 744 fcgi-bin/php5.fcgi

Dalje, ulogujte se u Virtualmin, pa idite na System Settings -> Server Templates -> Default Settings -> Apache website i u polje Directives and settings ubacite sledeće:

ServerName ${DOM}
ServerAlias www.${DOM}
DocumentRoot ${HOME}/public_html
ErrorLog /var/log/virtualmin/${DOM}_error_log
CustomLog /var/log/virtualmin/${DOM}_access_log combined
DirectoryIndex index.html index.htm index.php index.php4 index.php5

<Directory ${HOME}/public_html>
Options -Indexes IncludesNOEXEC FollowSymLinks ExecCGI
allow from all
AllowOverride All
AddHandler fcgid-script .php
FCGIWrapper ${HOME}/fcgi-bin/php5.fcgi .php
</Directory>

<Directory ${HOME}/cgi-bin>
AddHandler cgi-script cgi
allow from all
</Directory>

Pa kliknite na Save.

I to je to. Sada će se PHP fajlovi izvršavati preko suEXEC što znači da fajlovi koje uplodujete preko PHP skripti unutar nekog CMS-a, recimo, moći biti promenjeni ili obrisani ukoliko se ulogujete preko FTP ili SSH.

Važno je samo zapamtiti da PHP fajlovi i wrapper skripta ne smeju biti world/grou writable. Ukoliko nešto ne bude u redu, pogledati u /var/log/apache2/suexec.log.