• Suexec w CentOS i nie tylko

    dodany przez Przemysław Sikora

    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:!self

    Poniż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 common

    suPHP_Engine on
    suPHP_UserGroup test test
    AddHandler x-httpd-php .php .php3 .php4 .php5
    suPHP_AddHandler x-httpd-php

    Jeś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 🙂

Dodaj komentarz

Warto odwiedzić
Valid XHTML 1.0 Transitional centos.com.pl- mapa strony