Bardzo dobrym rozwiązaniem jest serwer HTTP zwany nginx, który cieszy się bardzo dużą popularnością wśród osób ceniących profesjonalizm i niezawodność. Charakteryzuje się on dużo większą wydajnością niż popularny Apache.
Ale nie o tym mowa w tym wpisie, opiszę krótko szybką instalację nginx + php + mysql na serwerze z systemem Debian/Linux.
1. Instalacja środowiska (nginx + php z fast_cgi + mysql):
aptitude install php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-common php5-ming php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-cli spawn-fcgi nginx -y
2. Tworzenie katalogów stron i logów dla naszej domeny:
mkdir -p /var/www/domena.pl/public_html /var/www/domena.pl/logs
Tworzymy plik virtualhosta dla nginx z użyciem wybranego edytora (ja użyłem vim):
sudo vim /etc/nginx/sites-available/domena.pl
Wrzucamy tam przygotowany przez nas plik hosta (pamiętaj aby zamienić użytą przeze mnie domenę i ścieżki do strony):
server {
# główna sekcja, konfiguracja portu nasłuchującego
# nazwa domeny oraz logi dostępu i błędów.
listen 80;
server_name domena.pl www.domena.pl;
access_log /var/www/domena.pl/logs/access.log;
error_log /var/www/domena.pl/logs/error.log;
location / {
root /var/www/domena/public_html; # ścieżka do katalogu publicznego naszej strony
index index.html index.php; # ustawienie indeksów
try_files $uri index.php;
# wykluczenie z rewrite istniejących plików i katalogów
if (-f $request_filename) { break;}
if (-d $request_filename) { break;}
# główny rewrite, przekierowujący wszystko na index.php
rewrite ^(.+)$ /index.php?kohana_uri=$1 last;
}
# zablokowanie dostępu do katalogów frameworka
location ~* ^/(modules|application|system) {
return 403;
}
# konfiguracja obsługi PHP na FastCGI
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/domena.pl/public_html$fastcgi_script_name;
include fastcgi_params;
}
# blokada wyświetlania plików .htaccess .htapasswd itd.
location ~ /\.ht {
deny all;
}
}
Włączamy wirtualnego hosta za pomocą dowiązania symbolicznego:
ln -s /etc/nginx/sites-available/domena.pl /etc/nginx/sites-enabled/domena.pl
3. Tworzymy obsługę PHP FastCGI przez specjalny skrypt.
vim /usr/bin/php-fastcgi
Wklejamy do niego następujący kod:
#!/bin/sh /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 6 -u www-data -f /usr/bin/php5-cgi
Oraz nadajemy mu prawa wykonywania:
chmod +x /usr/bin/php-fastcgi
Tworzenie skryptu rozruchowego dla fastcgi
vim /etc/init.d/php-fastcgi
W którym umieszczamy następującą zawartość:
#!/bin/bash
PHP_SCRIPT=/usr/bin/php-fastcgi
FASTCGI_USER=www-data
RETVAL=0
case "$1" in
start)
su - $FASTCGI_USER -c $PHP_SCRIPT
RETVAL=$?
;;
stop)
killall -9 php5-cgi
RETVAL=$?
;;
restart)
killall -9 php5-cgi
su - $FASTCGI_USER -c $PHP_SCRIPT
RETVAL=$?
;;
*)
echo "Usage: php-fastcgi {start|stop|restart}"
exit 1
;;
esac
exit $RETVAL
Nadajemy mu prawa wykonywania i uruchamiamy fast cgi
chmod 755 /etc/init.d/php-fastcgi
/etc/init.d/php-fastcgi start
4. Instalacja serwera baz danych MySQL
aptitude install mysql-server mysql-client
Podczas instalacji, zostaniemy poproszeni u ustanowienie hasła dla głównego konta „root”, nie zapomnijcie go ;)
Teraz możemy zainstalować jakiś soft do graficznej obsługi MySQL np, phpmyadmin:
aptitude install phpmyadmin
I dokonać dowiązania symbolicznego do naszej domeny:
ln -s /usr/share/phpmyadmin /var/www/domena.pl/public_html/phpmyadmin
Gotowe. Należy teraz w katalogu strony, umieścić framework i cieszyć się jego działaniem ;)
W razie problemów, proszę pisać w komentarzach.









Twitter Updates
Written by sbl
Topics: Kohana 3, Linux