Blog (7)
Komentarze (211)
Recenzje (0)
@dominikclighttpd - serwer dla aplikacji PHP w kilka sekund

lighttpd - serwer dla aplikacji PHP w kilka sekund

19.02.2012 17:32, aktualizacja: 19.02.2012 18:05

Sposobów na utworzenie lokalnego serwera służącego do celów deweloperskich jest wiele. Moglibyśmy męczyć się z Apache i VirtualHost, ale gdy mamy wiele aplikacji, to zaczyna to być niewygodne. Mi jednak spodobał się sposób, który występuje w Ruby on Rails - wpisujemy 'rails server' i bez żadnej konfiguracji możemy działać. Później tylko naciskamy Ctrl-C i serwer znika. Postanowiłem uruchomić podobny serwer dla aplikacji PHP - i tutaj z pomocą przyszedł mi lighttpd.

Instalacja serwera

Przykład instalacji w Debianie:

aptitude install lighttpd php5 php5-cgi

Nazwy pakietów mogą się różnić w zależności od danej dystrybucji

Konfiguracja serwera

Najpierw przejdźmy do katalogu, w którym znajduje się kod naszej aplikacji:

cd <folder_z_kodem_aplikacji>

Utwórzmy katalog, w którym będą się znajdować pliki konfiguracyjne i logi:

mkdir server

Do uruchomienia lighttpd potrzebny nam będzie plik konfiguracyjny:

vim server/lighttpd.conf

server.bind = "0.0.0.0"
server.port = 3000
server.document-root = CWD
server.errorlog          = CWD + "/server/logs/lighttpd.error.log"
accesslog.filename       = CWD + "/server/logs/lighttpd.access.log"

index-file.names = ( "index.php", "index.html",
                    "index.htm", "default.htm" )

server.modules = ("mod_fastcgi", "mod_accesslog")

fastcgi.server = ( ".php" => (( 
  "bin-path" => "/usr/local/bin/php-cgi", # w Debianie /usr/bin/php-cgi
  "socket" => CWD + "/server/php5.socket",
)))

mimetype.assign = (  
  ".css"        =>  "text/css",
  ".gif"        =>  "image/gif",
  ".htm"        =>  "text/html",
  ".html"       =>  "text/html",
  ".jpeg"       =>  "image/jpeg",
  ".jpg"        =>  "image/jpeg",
  ".js"         =>  "text/javascript",
  ".png"        =>  "image/png",
  ".swf"        =>  "application/x-shockwave-flash",
  ".txt"        =>  "text/plain"
)

Teraz stwórzmy skrypt, który uruchomi serwer:

vim server/start

#!/bin/bash
mkdir -p server/logs
server=$(cat server/lighttpd.conf | awk '/server.bind/ { print $3 }' | sed 's/\"//g');
port=$(cat server/lighttpd.conf | awk '/server.port/ { print $3 }'); 
echo "Uruchomiono server - http://${server}:${port}";
echo "Naciśnij Ctrl-C aby zakończyć";
/usr/local/sbin/lighttpd -D -f server/lighttpd.conf # w Debianie /usr/sbin/lighttpd
echo "Zakończono";

Dodajmy mu prawa do wykonywania:

chmod +x server/start

Uruchamianie

Serwer uruchamiamy poleceniem:

<folder_aplikacji>$ server/start
Uruchomiony serwer lighttpd
Uruchomiony serwer lighttpd

Podsumowanie

Według mnie ten sposób jest dużo prostszy i wygodniejszy niż instalacja Apache. Jednym poleceniem i bez zbędnej konfiguracji możemy szybko uruchomić serwer z naszymi ustawieniami. Wystarczy nam tylko zainstalowany w systemie pakiet lighttpd :) Przetestowane na OS X i Debianie z CakePHP i WordPress.

Wybrane dla Ciebie
Komentarze (19)