-
Suexec w CentOS i nie tylko
W usługach hostingowych ważna jest stabilność i bezpieczeństwo danych. Nieaktualne i dziurawe systemy CMS mogą poważnie zdestabilizować działanie serwera i platformy hostingowej. Administratorzy, nie mogą sobie na to pozwolić. Dobrym rozwiązaniem jest separacja kont. Przyda nam się do tego suexec, dzięki któremu skrypty php, będą uruchamiane z lokalnego użytkownika systemu, a nie z uprawnieniami serwera www. Najpierw zainstalujmy pakiet „mod_suphp”, który znajduje się m.in w repozytorium rpmforge oraz „fcgi” z epel-a.
yum install mod_suphp fcgi
Ważna jest prawidłowa konfiguracja omawianego modułu, znajdująca się w pliku „/etc/suphp.conf”:
[global]
logfile=/var/log/httpd/suphp_log # miejsce składowania logów
loglevel=info # poziom logowania
webserver_user=apache # użytkownik z którego uruchamiany jest serwer www
;docroot=/var/www/html/ # DocumentRoot dla skryptów php, najlepiej zakomentować ";"
env_path=/bin:/usr/bin
umask=0077
min_uid=100 # minimalny user id użytkownika z którego uruchamiany ma być skrypt php
min_gid=100 # minimalny group id użytkownika z którego uruchamiany ma być skrypt php; 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=false[handlers]
;Handler for php-scripts
x-httpd-php=”php:/usr/bin/php-cgi” # tutaj ustawiamy ścieżkę do naszego php działającego jako cgi;Handler for CGI-scripts
x-suphp-cgi=execute:!selfPoniżej kod przykładowego vhosta o nazwie „testowa.domena.pl”. Skrypty php uruchamiane są z użytkownika „test:test”
ServerAdmin admin@testowa.domena.pl
DocumentRoot /www/testowa.domena.pl/html
ServerName testowa.domena.pl
ErrorLog logs/testowa.domena.pl-error_log
CustomLog logs/testowa.domena.pl-access_log commonsuPHP_Engine on
suPHP_UserGroup test test
AddHandler x-httpd-php .php .php3 .php4 .php5
suPHP_AddHandler x-httpd-phpJeśli dla niektórych vhostów zapragniemy używać php jako moduł, powinniśmy pamiętać o dodaniu poniższej linii do konfiguracji vhosta:
AddHandler application/x-httpd-php .php .htm
Bez powyższego wpisu, strony z php mogę nie działać prawidłowo, jeśli korzystamy równocześnie w systemie z php jako moduł i cgi. Pozostaje nam restart serwera WWW.service httpd restart
Powinno wszystko śmigać. W razie co „tail -f /var/log/httpd/suphp_log” i oczywiście nasze forum 🙂