Lighttpd è un server Web sicuro, veloce e conforme agli standard progettato per ambienti critici per la velocità. Questo tutorial mostra come installare Lighttpd su un server Debian 8 (Jessie) con supporto PHP5 (tramite PHP-FPM) e supporto MySQL. PHP-FPM (FastCGI Process Manager) è un'implementazione PHP FastCGI alternativa con alcune funzionalità aggiuntive utili per siti di qualsiasi dimensione, in particolare per i siti più affollati. Uso PHP-FPM in questo tutorial invece di spawn-fcgi di Lighttpd.
1 Nota preliminare
In questo tutorial, utilizzo il nome host server1.example.com con l'indirizzo IP 192.168.1.100. Queste impostazioni potrebbero differire per te, quindi devi sostituirle dove appropriato. Usa un server minimo Debian come base per questa installazione, può essere un'immagine minima del tuo datacenter oppure puoi installarne uno da zero usando il nostro tutorial del server minimo Debian.
2 Installazione di MySQL/MariaDB
Debian 8 viene fornito con 2 database compatibili con MySQL, il database MySQL tradizionale e MariaDB, un fork MySQL gestito dall'inventore MySQL originale Monty Widenius. Al momento MariaDB è leader per quanto riguarda la velocità del database e l'attività di sviluppo, quindi lo sceglierò per il mio server.
Di seguito descriverò l'installazione di MariaDB (Capitolo 2.1) e MySQL (Capitolo 2.2) in modo da poter scegliere il database che si preferisce. Assicurati solo di seguire il capitolo 2.1 o 2.2 ma non entrambi.
2.1 Installa MariaDB
Per installare MariaDB, esegui questo comando.
apt-get install mariadb-server mariadb-client
Ti verrà chiesto di fornire una password per l'utente root di MariaDB:questa password è valida per l'utente [email protected] e [email protected]rver1.example.com, quindi non è necessario specificare una password di root MariaDB manualmente in seguito:
New password for the MariaDB "root" user: <-- yourrootsqlpassword
Repeat password for the MariaDB "root" user: <-- yourrootsqlpassword
2.2 Installa MySQL
Installiamo MySQL 5 in questo modo:
apt-get install mysql-server mysql-client
Ti verrà chiesto di fornire una password per l'utente root di MySQL:questa password è valida per l'utente [protetto tramite posta elettronica] e [protetto tramite posta elettronica], quindi non è necessario specificare manualmente una password di root MySQL in seguito:
Nuova password per l'utente "root" di MySQL:<-- yourrootsqlpassword
Ripeti la password per l'utente "root" di MySQL:<-- yourrootsqlpassword
3 Installazione di Lighttpd
Lighttpd è disponibile come pacchetto Debian, quindi possiamo installarlo in questo modo:
apt-get install lighttpd
Ora indirizza il tuo browser a http://192.168.1.100/ e dovresti vedere la pagina segnaposto di Lighttpd:
La radice del documento predefinita di Lighttpd è /var/www su Debian e il file di configurazione è /etc/lighttpd/lighttpd.conf.
Ulteriori configurazioni sono memorizzate in file nella directory /etc/lighttpd/conf-available - queste configurazioni possono essere abilitate con il comando lighttpd-enable-mod che crea un collegamento simbolico dalla directory /etc/lighttpd/conf-enabled alla configurazione appropriata file in /etc/lighttpd/conf-disponibile. Puoi disabilitare le configurazioni con il comando lighttpd-disable-mod.
4 Installazione di PHP5
Possiamo far funzionare PHP5 in Lighttpd tramite PHP-FPM che installiamo in questo modo:
apt-get install php5-fpm php5
PHP-FPM è un processo demone (con lo script init /etc/init.d/php5-fpm) che esegue un server FastCGI sul socket /var/run/php5-fpm.sock.
5 Configurazione di Lighttpd e PHP5
Per abilitare PHP5 in Lighttpd, dobbiamo modificare /etc/php5/fpm/php.ini e decommentare la riga cgi.fix_pathinfo=1:
nano /etc/php5/fpm/php.ini
[...] ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok ; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting ; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. ; http://php.net/cgi.fix-pathinfo cgi.fix_pathinfo=1 [...]
E riavvia il servizio php5-fpm per applicare la modifica alla configurazione:
systemctl restart php5-fpm.service
Il file di configurazione di Lighttpd per PHP /etc/lighttpd/conf-available/15-fastcgi-php.conf è adatto per l'uso con spawn-fcgi, tuttavia, vogliamo usare PHP-FPM, quindi creiamo un backup del file ( denominato 15-fastcgi-php-spawnfcgi.conf) e modificare 15-fastcgi-php.conf come segue:
cd /etc/lighttpd/conf-available/
cp 15-fastcgi-php.conf 15-fastcgi-php-spawnfcgi.conf
nano 15-fastcgi-php.conf
# -*- depends: fastcgi -*- # /usr/share/doc/lighttpd/fastcgi.txt.gz # http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi ## Start an FastCGI server for php (needs the php5-cgi package) fastcgi.server += ( ".php" => (( "socket" => "/var/run/php5-fpm.sock", "broken-scriptfilename" => "enable" )) )
Per abilitare la configurazione di fastcgi, eseguire i seguenti comandi:
lighttpd-enable-mod fastcgi
lighttpd-enable-mod fastcgi-php
Questo crea i collegamenti simbolici /etc/lighttpd/conf-enabled/10-fastcgi.conf che punta a /etc/lighttpd/conf-available/10-fastcgi.conf e /etc/lighttpd/conf-enabled/15-fastcgi-php .conf che punta a /etc/lighttpd/conf-available/15-fastcgi-php.conf:
ls -l /etc/lighttpd/conf-enabled
[email protected]:/etc/lighttpd/conf-available# ls -l /etc/lighttpd/conf-enabled
total 0
lrwxrwxrwx 1 root root 33 Aug 11 08:20 10-fastcgi.conf -> ../conf-available/10-fastcgi.conf
lrwxrwxrwx 1 root root 37 Aug 11 08:20 15-fastcgi-php.conf -> ../conf-available/15-fastcgi-php.conf
Quindi ricarichiamo Lighttpd:
systemctl force-reload lighttpd.service
6 Testare PHP5 / Ottenere dettagli sull'installazione di PHP5
La radice del documento del sito Web predefinito è /var/www. Ora creeremo un piccolo file PHP (info.php) in quella directory e lo chiameremo in un browser. Il file mostrerà molti dettagli utili sulla nostra installazione di PHP, come la versione di PHP installata.
nano /var/www/html/info.php
<?php phpinfo(); ?>
Ora chiamiamo quel file in un browser (es. http://192.168.1.100/info.php):
Come vedi, PHP5 funziona e funziona tramite FPM/FastCGI, come mostrato nella riga dell'API del server. Se scorri più in basso, vedrai tutti i moduli che sono già abilitati in PHP5. MySQL non è elencato lì, il che significa che non abbiamo ancora il supporto per MySQL in PHP5.
7 Ottenere supporto MySQL in PHP5
Per ottenere il supporto MySQL in PHP, possiamo installare il pacchetto php5-mysqlnd. Questo è un nuovo driver di database compatibile con MySQL e MariaDB. È una buona idea installare alcuni altri moduli PHP5 e potresti averne bisogno per le tue applicazioni. Puoi cercare i moduli PHP5 disponibili in questo modo:
apt-cache search php5
Scegli quelli che ti servono e installali in questo modo:
apt-get install php5-mysqlnd php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-pspell php5-recode php5-sqlite php5-tidy php5-xmlrpc php5-xsl
Xcache è un cacher di codice operativo PHP gratuito e aperto per la memorizzazione nella cache e l'ottimizzazione del codice intermedio PHP. È simile ad altri cacher di codice operativo PHP, come eAccelerator e APC. Si consiglia vivamente di averne uno installato per velocizzare la tua pagina PHP.
Xcache può essere installato come segue:
apt-get install php5-xcache
Ora ricarica PHP-FPM:
systemctl restart php5-fpm.service
Ora ricarica http://192.168.1.100/info.php nel tuo browser e scorri di nuovo verso il basso fino alla sezione dei moduli. Ora dovresti trovare molti nuovi moduli lì, incluso il modulo MySQL:
8 phpMyAdmin
phpMyAdmin è un'interfaccia web attraverso la quale puoi gestire i tuoi database MySQL. È una buona idea installarlo:
apt-get install phpmyadmin
Vedrai le seguenti domande:
Server Web da riconfigurare automaticamente:<-- lighttpd
Configure database for phpmyadmin with dbconfig-common? <-- Yes
Password of the database's administrative user: <-- yourrootsqlpassword
MySQL application password for phpmyadmin: <-- Press <enter>
Successivamente, puoi accedere a phpMyAdmin da http://192.168.1.100/phpmyadmin/:
9 Fare in modo che PHP-FPM utilizzi una connessione TCP
Per impostazione predefinita, PHP-FPM è in ascolto sul socket /var/run/php5-fpm.sock. È anche possibile fare in modo che PHP-FPM utilizzi una connessione TCP. Per fare ciò, apri /etc/php5/fpm/pool.d/www.conf...
nano /etc/php5/fpm/pool.d/www.conf
... e fai in modo che la linea di ascolto appaia come segue:
[...] ;listen = /var/run/php5-fpm.sock listen = 127.0.0.1:9000 [...]
Ciò renderà PHP-FPM in ascolto sulla porta 9000 sull'IP 127.0.0.1 (localhost). Assicurati di utilizzare una porta che non è in uso sul tuo sistema.
Quindi ricarica PHP-FPM:
systemctl restart php5-fpm.service
Quindi apri il file di configurazione PHP di Lighttpd /etc/lighttpd/conf-available/15-fastcgi-php.conf e sostituisci la linea socket con le linee host e port:
nano /etc/lighttpd/conf-available/15-fastcgi-php.conf
# -*- depends: fastcgi -*- # /usr/share/doc/lighttpd/fastcgi.txt.gz # http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi ## Start an FastCGI server for php (needs the php5-cgi package) fastcgi.server += ( ".php" => (( "host" => "127.0.0.1", "port" => "9000", "broken-scriptfilename" => "enable" )) )
Infine ricarica Lighttpd:
systemctl force-reload lighttpd.service
10 link
- Lighttpd:http://www.lighttpd.net/
- PHP:http://www.php.net/
- PHP-FPM:http://php-fpm.org/
- MySQL:http://www.mysql.com/
- Debian:http://www.debian.org/
- phpMyAdmin:http://www.phpmyadmin.net/