Cygal.net.pl

Systemy, Sieci i takie tam :)

Apache2 + mod_fcgi

Poniżej przedstawię opis konfiguracji mod_fcgi dla skryptów php w systemie CentOs.

Jak wiadomo mod_fcgi może w znacznym stopniu zwiększyć bezpieczeństwo naszego serwera WWW. Skrypty które będą działać w oparciu o mod_fcgi będą działać na uprawnieniach konkretnego usera zamiast domyślnych czyli Apacze. Dodatkowo konfiguracja taka daje nam możliwości skorzystania np. z dwóch wersji PhP jednej opartej o mod_php a drugiej o fcgi. W tym poście pokaże jak najprościej i najszybciej zainstalować oraz skonfigurować mod_fcgi.

yum install mod_fcgid

po zainstalowaniu mod_fcgi musimy utworzy wrapper, kory będzie odpowiedzialny za uruchomienie interptertera php.

mkdir –p /var/www/fcgi/strona1

teraz dodajmy do systemu użytkownika i grupę dla naszej strony. Tak jak wspominałem wyżej strony będą działać na prawach użytkownika.

groupadd strona1
useradd strona1 –gstrona1 -m -d /var/www/html/strona1

teraz skopiujmy nasz defaultowy pliki php.ini do katalogu, w którym będziemy mieć wrapper.
Dzięki fcgi możemy dla każdej strony tworzyć indywidualny plik php.ini

cp /etc/php.ini /var/www/fcgi/strona1/strona1.ini

stwórzmy teraz nasz wrapper który nazwiemy standardowo php-fcgi-starter

vim  php-fcgi-starter
#!/bin/sh
export PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_CHILDREN=8
exec /usr/bin/php-cgi -c /var/www/fcgi/strona1/strona1.ini

na koniec nadajmy odpowiednie uprawnienia dla naszego katalogu z wrapperem oraz php.ini

chown –R strona1.strona1 /var/www/fcgi/strona1 

ostatnią rzeczą jaka nam pozostała do zrobienia to stworzenie virtualhosta


  ServerName strona1.pl
  ServerAlias www.strona.pl

  DocumentRoot /var/www/html/strona1/
  
    SuexecUserGroup strona1 strona1
    
      Options +ExecCGI
      AllowOverride All
      AddHandler fcgid-script .php
      FCGIWrapper /var/www/fcgi/strona1/php-fcgi-starter .php
      Order allow,deny
      Allow from all
    
  

    CustomLog /var/log/httpd/strona1.pl_access_log common
    ErrorLog  /var/log/httpd/strona1.pl_error.log

    ServerSignature Off

Od tej pory możemy się cieszyć działającym mod_fcgi, jeżeli będziemy potrzebować zmienić jakieś parametry fcgi odpowiednie dyrektywy możemy dopisać do pliku fcgid.conf znajdującego się w /etc/httpd/conf.d/fcgid.conf

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *


Time limit is exhausted. Please reload CAPTCHA.