Pentru a rula PHP cu lighttpd, trebuie ca PHP-ul să fie compilat cu suport de CGI/FastCGI. Vom avea nevoie de lang/php5 alături de lang/php5-extensions. Flag-urile de compilare pentru php5 sunt:
CGI
SUHOIN
MULTIBYTE
REDIRECT
DISCARD
FASTCGI
PATHINFO
După compilare, binarul php-cgi ar trebui să se găsească în /usr/local/bin/. Acesta este binarul pe care îl vă apela lighttpd-ul pentru a crea o conexiune de tip socket unix. Extensiile se instalează după bunul plac, ținând cont că nu foarte mulți useri vor folosi Interbase sau cine știe ce altă bază de date.
Într-un articol anterior, explicam modul de configurare a lighttpd-ului pentru a servi pagini pentru domenii virtuale. În vom folosi ca bază pentru acest articol. De asemenea, fiecare user va avea în homedir-ul lor (ex: /home/myuser/), un fișier cu numele php.ini care să conțină următoarele linii:
[PHP]
open_basedir = /home/myuser/pages/
expose_php = Off
error_reporting = E_ALL
log_errors = On
error_log = /home/myuser/logs/php.log
Aceste linii limitează PHP-ul user-ului myuser la directorul /home/myuser/pages/, încearcă să ascundă urmele de PHP, activează logarea de erori în fișierul /home/myuser/logs/php.log. Asigurați-vă că acesta are drepturi de scriere pentru utilizatorul www sub care ruleaza lighttpd-ul.
mkdir -p /home/myuser/logs
touch /home/myuser/logs/php.log
chown www:www /home/myuser/logs/php.log
Acum ce a rămas de făcut este să adăugăm o intrare în fiecare vhost care să facă lighttpd-ul care pentru fiecare fișier .php să execute php-cgi dându-i ca parametru, fișierul php.ini al domeniului respectiv.
Tot ce trebuie să mai facem este să definim un vhost pentru mydomain.com și să activăm un server fastcgi, care să pornească php-cgi cu un fișier php.ini specific acestui user. De ce dorim un php.ini specific fiecărui user? Pentru că dorim să-i setăm fiecărui user variabila open_basedir la directorul lui (ex: /home/myuser/pages/). De asemenea, mai tărziu, vă voi arăta cum se pornește mysql-ul astfel încât, fiecare user să aibă cluster-ul lui. În vhost-ul mydomain.com adăugați următoarele directive, după directiva accesslog.filename deja existentă:
fastcgi.server = ( "php" => ((
"bin-path" => "/usr/local/bin/php-cgi -c /home/myuser/php.ini",
"socket" => "/var/run/php/myuser.socket"
))

0 comentarii:
Trimiteţi un comentariu