Com instal·lar Lighttpd amb PHP i MariaDB a CentOS/RHEL 8/7


Lighttpd és un servidor web de codi obert, segur, ràpid, flexible i més optimitzat dissenyat per a entorns crítics de velocitat amb menys utilització de memòria en comparació amb altres servidors web.

Pot gestionar fins a 10.000 connexions paral·leles en un servidor amb una gestió eficaç de la càrrega de la CPU i inclou un conjunt de funcions avançades com FastCGI, SCGI, Auth, Output-Compression, URL-Rewriting i molts més.

Lighttpd és una solució excel·lent per a tots els servidors Linux, a causa de la seva infraestructura io d'alta velocitat que ens permet escalar un rendiment diverses vegades millor amb el mateix maquinari que amb altres servidors web alternatius.

En aquest tutorial, explicarem com instal·lar Lighttpd amb PHP, PHP-FPM i MariaDB a les distribucions CentOS/RHEL 8/7 amb el nom d'amfitrió linux-console.net i l'adreça IP 192.168.0.103.

Pas 1: instal·leu Lighttpd Web Server

1. Per instal·lar Lighttpd, primer, heu d'actualitzar els paquets de programari del vostre sistema i els repositoris disponibles mitjançant l'ordre yum següent.

# yum -y update

2. A continuació, heu d'habilitar el repositori EPEL al vostre sistema i actualitzar els paquets de programari mitjançant les ordres següents.

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

3. Un cop hàgiu habilitat el dipòsit EPEL, ara podeu instal·lar Lighttpd executant l'ordre següent.

# yum install lighttpd

4. Un cop instal·lats els paquets Lighttpd, podeu iniciar i habilitar el servei perquè s'iniciï automàticament en el moment de l'arrencada i assegureu-vos de verificar l'estat mitjançant les ordres següents.

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

5. Ara verifiqueu la versió de Lighttpd instal·lada al vostre sistema mitjançant l'ordre següent.

# lighttpd -v

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

6. Ara heu de permetre el trànsit HTTP i HTTPS al vostre tallafoc.

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

7. Ara obriu el vostre navegador i assenyaleu l'URL següent per veure el vostre servidor web Lighttpd funcionant.

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

El directori arrel del document per defecte per a Lighttpd és /var/www/lighttpd/ i el fitxer de configuració principal es troba a /etc/lighttpd/lighttpd.conf.

Pas 2: instal·lar MariaDB com a MySQL a CentOS 7

8. A continuació, instal·leu el suport de MySQL per a Lighttpd mitjançant les ordres següents.

# yum -y install mariadb mariadb-server

9. Un cop finalitzada la instal·lació, inicieu, activeu i verifiqueu l'estat de MariaDB mitjançant les ordres següents.

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

10. Finalment, haureu de protegir la vostra instal·lació de MariaDB emetent l'ordre següent.

# mysql_secure_installation

Se us demanaran algunes preguntes diferents sobre la vostra instal·lació de MariaDB i com us agradaria assegurar-la. Podeu canviar la contrasenya de l'usuari root de la base de dades, desactivar la base de dades de prova, desactivar usuaris anònims i desactivar l'inici de sessió root de forma remota.

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 authorization. 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. Proveu de connectar-vos al servidor MySQL i reviseu les bases de dades existents al vostre servidor de bases de dades amb les ordres següents al terminal.

# 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)]>

Pas 3: instal·lació de PHP i PHP-FPM amb FastCGI a CentOS 7

12. Per habilitar PHP-FPM amb suport FastCGI, primer, heu d'instal·lar PHP juntament amb les extensions necessàries mitjançant l'ordre següent.

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

13. Un cop instal·lat PHP, ara activeu el suport PHP-FPM i FastCGI per a Lighttpd, per fer-ho també heu d'instal·lar aquests paquets.

# yum -y install php-fpm lighttpd-fastcgi

14. Ara obriu un fitxer anomenat /etc/php-fpm.d/www.conf.

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

Estableix l'usuari i el grup a 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

A més, PHP-FPM de manera predeterminada utilitza el sòcol /var/run/php/php7.0-fpm.sock, cal que feu PHP-FPM per utilitzar una connexió TCP. Feu que la línia escolta tingui el següent aspecte:

;listen = /var/run/php/php7.0-fpm.sock
listen = 127.0.0.1:9000 

15. Ara inicieu el servei PHP-FPM i assegureu-vos d'habilitar-lo perquè s'iniciï automàticament en el moment de l'arrencada mitjançant les ordres següents.

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

Pas 4: habilitar PHP i PHP-FPM amb FastCGI a Lighttpd

16. Aquí, hem de modificar tres fitxers /etc/php.ini, /etc/lighttpd/modules.conf i /etc/lighttpd/conf.d/fastcgi.conf per habilitar el suport PHP per a Lighttpd.

Obriu el primer fitxer /etc/php.ini.

# vi /etc/php.ini

Descomenteu la línia següent que diu la línia 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

A continuació, obriu el segon fitxer anomenat /etc/lighttpd/modules.conf.

# vi /etc/lighttpd/modules.conf

Descomenteu la línia següent que diu inclou conf.d/fastcgi.conf.

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

A continuació, obriu el tercer fitxer anomenat /etc/lighttpd/conf.d/fastcgi.conf.

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

Ara afegiu el següent contenidor a la part inferior del fitxer i deseu-lo.

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

Reinicieu el servei Lighttpd per reflectir els canvis i habilitar el suport de PHP.

# systemctl restart lighttpd

Pas 5: prova PHP i PHP-FPM amb el suport FastCGI a Lighttpd

17. Com hem dit més amunt, l'arrel del document per defecte per a Lighttpd és /var/www/lighttpd/. Per tant, aquí crearem un fitxer phpinfo.php en aquest directori.

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

Afegiu-hi les línies següents. Aquest petit fragment de codi mostrarà informació sobre la instal·lació de PHP amb les seves versions.

<?php
phpinfo();
?>

18. Obriu el vostre navegador i navegueu als enllaços següents.

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

Veureu informació de treball de PHP, PHP-FPM i MySQL amb molts altres mòduls que ja estan habilitats.