GNU/Linux >> Linux Esercitazione >  >> Debian

Installazione di Lighttpd con PHP5 (PHP-FPM) e MySQL su Debian 8 (Jessie)

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

  • 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/

Debian
  1. Installazione di Nginx con PHP5 (e PHP-FPM) e supporto MySQL (LEMP) su Ubuntu 14.04 LTS

  2. Installazione di Lighttpd con PHP5 (PHP-FPM) e supporto MySQL su Ubuntu 14.04LTS

  3. Installazione di Lighttpd con PHP5 e supporto MySQL su Ubuntu 10.04

  4. Installazione di Lighttpd con PHP5 (PHP-FPM) e supporto MySQL su Ubuntu 12.04

  5. Installazione di Nginx con PHP5 (e PHP-FPM) e supporto MySQL (LEMP) su Ubuntu 12.04 LTS

Installazione di Apache2 con PHP5 e supporto MySQL su Debian Wheezy

Installazione di Nginx con PHP5 (e PHP-FPM) e supporto MySQL (LEMP) su Debian Wheezy

Installazione di Lighttpd con PHP5 (PHP-FPM) e supporto MySQL su Debian Wheezy

Installazione di Nginx con PHP (come PHP-FPM) e MariaDB (LEMP) su Debian 8

Installazione di Nginx con PHP5 (e PHP-FPM) e supporto MySQL su CentOS 6.4

Installazione di Nginx con PHP5 (e PHP-FPM) e supporto MySQL su Fedora 19