Come installare Lighttpd con PHP, PHP-FPM e MariaDB su CentOS 7


Lighttpd è un server Web open source, sicuro, veloce, flessibile e più ottimizzato progettato per ambienti critici con meno utilizzo della memoria rispetto ad altri server web.

Può gestire fino a 10.000 connessioni parallele in un server con un'efficace gestione della CPU e viene fornito con set di funzionalità avanzate come FastCGI, SCGI, Auth, Output-Compression, URL-Rewriting e molti altri.

Lighttpd è l'eccellente soluzione per ogni server Linux, grazie alla sua infrastruttura io ad alta velocità che ci consente di scalare prestazioni diverse volte con lo stesso hardware rispetto ad altri server web alternativi.

In questo tutorial, spiegheremo come installare Lighttpd con PHP-FPM e MariaDB su CentOS/RHEL 7 distribuzioni con hostname tecmint.example.com e indirizzo IP 192.168.0.103 .

Passaggio 1: installa Lighttpd su CentOS 7

1. per installare Lighttpd , devi prima aggiornare i pacchetti del software di sistema e i repository disponibili usando il seguente comando.

# yum -y update

2. Quindi, devi abilitare il repository EPEL sul tuo sistema e aggiornare i pacchetti software usando i seguenti comandi.

# yum -y install epel-release
# yum -y update

3. Una volta attivato il repository EPEL, ora puoi installare Lighttpd eseguendo il seguente comando.

# yum install lighttpd

4. Una volta installati i pacchetti Lighttpd , puoi avviare e abilitare il servizio all'avvio automatico all'avvio e assicurati di verificare lo stato utilizzando i seguenti comandi.

# systemctl start lighttpd
# systemctl enable lighttpd
# systemctl status lighttpd

Se vedi qualche messaggio di errore simile a quello in basso nello stato, devi correggere alcune cose per farlo avviare correttamente senza visualizzare alcun messaggio di errore.

Dec 10 02:14:26 tecmint.com lighttpd[1463]: 2018-12-10 02:14:26: (network.c.167) warning: please use server.use-ipv6 only for hostnames, not without server.bind / empty address...ONLY changes
Dec 10 02:14:26 tecmint.com lighttpd[1463]: 2018-12-10 02:14:26: (server.c.1352) can't have more connections than fds/2:  1024 1024
Hint: Some lines were ellipsized, use -l to show in full.

Apri il file chiamato /etc/lighttpd/lighttpd.conf con qualsiasi editor.

# vi /etc/lighttpd/lighttpd.conf

Cambia la riga che dice server.use-ipv6 da enable a disable . Risolverà i messaggi di errore mostrati sopra.

##
## Use IPv6?
##
server.use-ipv6 = "disable"

Ora riprova ad avviare Lighttpd , dovrebbe funzionare 100% senza messaggi di errore.

# systemctl restart lighttpd
# systemctl status lighttpd

5. Ora verifica la versione di Lighttpd installata sul tuo sistema utilizzando il seguente comando.

# lighttpd -v

lighttpd/1.4.51 (ssl) - a light and fast webserver

6. Ora devi consentire il traffico HTTP e HTTPS sul tuo firewall.

# firewall-cmd --permanent --zone=public --add-service=http
# firewall-cmd --permanent --zone=public --add-service=https
# firewall-cmd --reload

7. Ora apri il browser e punta al seguente URL per vedere il funzionamento del tuo server web Lighttpd .

http://Your-Domain.com
OR
http://Your-IP-addr

La directory root del documento predefinita per Lighttpd è /var/www/lighttpd/ e il file di configurazione principale si trova in /etc/lighttpd/lighttpd.conf .

Passaggio 2: Installazione di MariaDB come MySQL in CentOS 7

8. Successivamente, installa il supporto MySQL per Lighttpd utilizzando i seguenti comandi.

# yum -y install mariadb mariadb-server

9. Una volta completata l'installazione, avviare, abilitare e verificare lo stato di MariaDB utilizzando i seguenti comandi.

# systemctl start mariadb.service
# systemctl enable mariadb.service
# systemctl status mariadb.service

10. Infine, dovrai proteggere l'installazione di MariaDB inviando il seguente comando.

# mysql_secure_installation

Ti verranno chieste alcune domande diverse riguardanti l'installazione di MariaDB e come vorresti proteggerla. È possibile modificare la password dell'utente root del database, disabilitare il database di test, disabilitare gli utenti anonimi e disabilitare il login root in remoto.

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): Enter OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. Set root password? [Y/n] y New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] y ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] y ... Success! By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!

11. Prova a connetterti al server MySQL e controlla i database esistenti sul server di database con i seguenti comandi sul terminale.

# mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 5.5.60-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

MariaDB [(none)]>

Passaggio 3: installazione di PHP e PHP-FPM con FastCGI su CentOS 7

12. Per attivare PHP-FPM con il supporto FastCGI , devi prima installare PHP insieme alle estensioni necessarie utilizzando seguendo il comando.

# yum -y install php php-mysqlnd php-pdo php-gd php-mbstring

13. una volta installato PHP , ora abilita il PHP-FPM e FastCGI per Lighttpd , per fare questo è necessario installare anche questi pacchetti.

# yum -y install php-fpm lighttpd-fastcgi

14. Ora apri un file chiamato /etc/php-fpm.d/www.conf .

# vi /etc/php-fpm.d/www.conf

Imposta l'utente e il gruppo su lighttpd .

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
; RPM: apache Choosed to be able to access some dir as httpd
user = lighttpd
; RPM: Keep a group allowed to write in log dir.
group = lighttpd

15. Ora avvia il servizio PHP-FPM e assicurati di abilitarlo per l'avvio automatico all'avvio utilizzando i seguenti comandi.

# systemctl start php-fpm.service
# systemctl enable php-fpm.service

Step 4: Abilitare PHP e PHP-FPM con FastCGI in Lighttpd

16. Qui, dobbiamo modificare tre file /etc/php.ini , /etc/lighttpd/modules.conf e /etc/lighttpd/conf.d/fastcgi.conf per abilitare il supporto PHP per Lighttpd .

Apri il primo file /etc/php.ini .

# vi /etc/php.ini

Non commentare la riga seguente che dice line cgi.fix_pathinfo = 1 .

; 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

Quindi apri il secondo file chiamato /etc/lighttpd/modules.conf .

# vi /etc/lighttpd/modules.conf

Annulla commento alla seguente riga che dice include "conf.d/fastcgi.conf" .

##
## FastCGI (mod_fastcgi)
##
include "conf.d/fastcgi.conf"

Quindi, apri il terzo file chiamato /etc/lighttpd/conf.d/fastcgi.conf .

# vi /etc/lighttpd/conf.d/fastcgi.conf

Ora aggiungi il seguente contenitore nella parte inferiore del file e salvalo.

fastcgi.server += ( ".php" =>
        ((
                "host" => "127.0.0.1",
                "port" => "9000",
                "broken-scriptfilename" => "enable"
        ))
)

Riavvia il servizio Lighttpd per riflettere le modifiche e abilitare il supporto PHP .

# systemctl restart lighttpd

17. Come detto sopra, la root del documento predefinita per Lighttpd è /var/www/lighttpd/. Quindi, qui creeremo un file phpinfo.php in questa directory.

# vi /var/www/lighttpd/info.php

Aggiungi le seguenti righe ad esso. Questa piccola parte di codice mostrerà informazioni sull'installazione di PHP con le loro versioni.

<?php
phpinfo();
?>

18. Apri il browser e vai ai seguenti link.

http://Your-Domain.com
OR
http://Your-IP-addr

Vedrai le informazioni di lavoro di PHP , PHP-FPM e MySQL con molti altri moduli che sono già abilitati.