Translate: 
EnglishFrenchGermanItalianPolishPortugueseRussianSpanish

Mod_rewrite oraz HipHop for PHP na serwerze Apache

Skrypty PHP skompilowane kompilatorem HipHop for PHP mogą bez problemu działać jako serwery HTTP. Nie udostępniają one jednak najpopularniejszej w Internecie metody tworzenia przyjaznych linków, czyli modułu mod_rewrite dostarczanego razem z serwerem Apache.

W tym artykule opiszę najprostszy sposób uruchomienia skompilowanych skryptów PHP z poziomu serwera Apache.

Wstęp

W tym artykule przedstawię sposób integracji HipHop for PHP z serwerem Apache na podstawie 32 bitowego systemu Fedora. Wykonanie poniższych kroków na innej dystrybucji Linuxa nie powinno jednak nastręczać żadnych trudności. Użyte moduły są standardowo dostępne w pozostałych systemach operacyjnych.

Należy pamiętać o tym, by w przypadku systemów 64-bitowych zmienić przedstawione poniżej ścieżki do plików z /usr/lib/ na /usr/lib64/

Wymagane moduły

Oprócz samego kompilatora PHP, którego instalację opisałem w poprzednich artykułach, do poprawnej pracy potrzebujemy jeszcze dwóch rzeczy.

Serwera Apache wraz z jego narzędziami developerskimi:

yum -y install httpd httpd-devel

Oraz modułu HTTP proxy dla Apache:

mkdir proxy
cd proxy
wget http://apache.webthing.com/mod_proxy_html/mod_proxy_html.tar.bz2
tar jxfv mod_proxy_html.tar.bz2
apxs -iac -I/usr/include/libxml2 mod_proxy_html/mod_proxy_html.c

Konfiguracja

Po zainstalowaniu serwera należy jeszcze skonfigurować moduł proxy tak, by przekazywał polecenia HTTP do skompilowanego skryptu PHP.

Zakładając, że skrypt PHP będzie działał jako serwer na porcie 8080, część pliku konfiguracyjnego serwera Apache powina wyglądać następująco:

LoadFile	/usr/lib/libxml2.so
LoadModule	proxy_html_module  /usr/lib/httpd/modules/mod_proxy_html.so
 
ProxyRequests		off
RequestHeader		unset  Accept-Encoding
SetOutputFilter		proxy-html
ProxyHTMLExtended	on
ProxyHTMLDoctype	XHTML
 
RewriteEngine	on
RewriteRule	^(/.*)      http://localhost:8080/$1    [P]

Jak widać, to właśnie w tym miejscu można operować na regułkach modułu mod_rewrite i tworzyć przy jego pomocy przyjazne adresy URL.

Uruchomienie

W celu przetestowania konfiguracji, uruchamiamy najpierw skompilowany skrypt PHP jako lokalny serwer HTTP:

/root/test/program -m server -p 8080 &

A następnie zewnętrzny serwer Apache:

service httpd start

Należy przy tym pamiętać, żeby zablokować dostęp do portu 8080 z poziomu firewalla systemowego.

Pozostało nam już tylko wykonać test połączenia poprzez uruchomienie skompilowanego skryptu (w moim przypadku plik PHP nosił nazwę test.php):

curl http://localhost:80/test.php

Tagi: , , , ,

Dodaj odpowiedź