Questa guida spiega come installare Nginx con supporto PHP5 e MySQL su CentOS 5,5
Installazione di MySQL 5
Per prima cosa installare MySQL 5 in questo modo:
yum install mysql mysql-server
Poi creare il link di avvio del sistema per MySQL (MySQL in modo che si avvia automaticamente ogni volta che il sistema si avvia) e avviare il server MySQL
chkconfig –levels 235 mysqld on
/etc/init.d/mysqld start
Controllare ora che il networking sia abilitato. Lanciare
netstat -tap | grep mysql
Dovrebbe essere simile a questo:
[root@server1 ~]# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 2388/mysqld
[root@server1 ~]#
Nel caso fosse diverso, editare /etc/my.cnf e commentare l’opzione skip-networking:
vi /etc/my.cnf
Riavviare il tuo server MySQL:
/etc/init.d/mysqld restart
Lanciare
mysql_secure_installation
impostare una password per l’utente root (altrimenti chiunque può accedere al vostro database MySQL!):
[root@server1 ~]# mysql_secure_installation
Installazione di Nginx
Nginx non è disponibile nei repository ufficiali CentOS, ma c’è un pacchetto disponibile per CentOS 5.x su centos.karan.org . Noi abiliteremo il repository come segue:
cd /etc/yum.repos.d/
wget http://centos.karan.org/kbsingh-CentOS-Extras.repo
Poi apriamo /etc/yum.repos.d/kbsingh-CentOS-Extras.repo …
vi /etc/yum.repos.d/kbsingh-CentOS-Extras.repo
e poniamo gpgcheck a 0 e abilitiamo a 1 nella sezione [kbs-CentOS-Testing]:
[…]
# pkgs in the -Testing repo are not gpg signed
[kbs-CentOS-Testing]
name=CentOS.Karan.Org-EL$releasever – Testing
gpgcheck=0
gpgkey=http://centos.karan.org/RPM-GPG-KEY-karan.org.txt
enabled=1
baseurl=http://centos.karan.org/el$releasever/extras/testing/$basearch/RPMS/
Successivamente si può installare nginx come segue:
yum install nginx
Poi creiamo il link di avvio del sistema per nginx e avviamolo:
chkconfig –levels 235 nginx on
/etc/init.d/nginx start
Digitare l’indirizzo IP del server Web o il nome dell’host in un browser (ad esempio http://localhost), e si dovrebbe vedere una pagina vuota (è vuota perché / usr / share / nginx / html / index.html è vuoto, tuttavia nginx sta lavorando perché altrimenti non avrebbe consegnato questa pagina vuota):
Installazione di PHP5
Noi possiamo far lavorare PHP5 in nginx attraverso FastCGI. Non c’è un package standalone FastCGI per CentOS, quindi usiamo il pacchetto FastCGI di lighttpd (lighttpd-FastCGI) e installiamolo con PHP-cli e alcuni moduli PHP5 come php-mysql che è necessario se si desidera utilizzare MySQL da PHP script:
yum install lighttpd-fastcgi php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mssql php-snmp php-soap php-tidy
Poi aprire /etc/php.ini e aggiungere la linea cgi.fix_pathinfo = 1 right at the end of the file:
vi /etc/php.ini
Il pacchetto lighttpd-FastCGI viene fornito con l’eseguibile / usr / bin / spawn-fcgi che possiamo utilizzare per avviare processi FastCGI. Date un’occhiata a
spawn-fcgi –help
per saperne di più. Per avviare un demone PHP FastCGI in ascolto sulla porta 9000 su localhost e in esecuzione come nginx utente e di gruppo, eseguiamo il seguente comando:
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u nginx -g nginx -f /usr/bin/php-cgi -P /var/run/fastcgi-php.pid
Non volendo lanciare manualemnte il comando è possibile avviarlo automaticamente ad ogni avvio del sistema, apri /etc/rc.local:
vi /etc/rc.local
e aggiungere il comando alla fine del file:
[…]
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u nginx -g nginx -f /usr/bin/php-cgi -P /var/run/fastcgi-php.pid
Configurazione di nginx
La configurazione di nginx si trova in /etc/nginx/nginx.conf :
vi /etc/nginx/nginx.conf
La configurazione è facile dal comprendwere.Gli host virtuali sono definiti dai contenitori a parentesi graffa Modifichiamo vhost come segue:
server {
listen 80;
server_name _;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.php index.html index.htm;
}
error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache’s document root
# concurs with nginx’s one
#
location ~ /\.ht {
deny all;
}
}
Salvare il file e riavviare nginx:
/etc/init.d/nginx restart
Creare il seguente file PHP nella root documenti /usr/share/nginx/html :
vi /usr/share/nginx/html/info.php
con i seguenti contenuti:
Aprire il browser e assicurarsi che tutto funzioni correttamente.