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 Centos 7 con supporto PHP (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.
2 Installazione di MariaDB come MySQL drop in replacement
Innanzitutto, installiamo MySQL in questo modo:
yum -y install mariadb mariadb-server
Quindi creiamo i collegamenti di avvio del sistema per MySQL (in modo che MySQL si avvii automaticamente ogni volta che il sistema si avvia) e avviamo il server MySQL:
systemctl enable mariadb.service
systemctl start mariadb.service
Imposta le password per l'account root di MarisDB:
mysql_secure_installation
[[email protected] ~]# mysql_secure_installation
/usr/bin/mysql_secure_installation:
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): <-- press 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: <-- enter new password
Re-enter new password: <-- 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!
3 Installazione di Lighttpd
Poiché Lighttpd e PHP-FPM non sono disponibili dai repository CentOS ufficiali, è necessario abilitare il repository EPEL:
yum -y install epel-release
Importa la chiave EPEL GPG:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
e quindi esegui:
yum update
Successivamente, possiamo installare Lighttpd in questo modo:
yum -y install lighttpd
Quindi creiamo i collegamenti di avvio del sistema per Lighttpd (in modo che Lighttpd si avvii automaticamente ogni volta che il sistema si avvia) e lo avviamo:
systemctl enable lighttpd.service
systemctl start lighttpd.service
Se Lighttpd non si avvia con il seguente messaggio di errore...
Socket(network.c.203) socket failed: Address family not supported by protocol
... apri /etc/lighttpd/lighttpd.conf...
nano /etc/lighttpd/lighttpd.conf
... e cambia server.use-ipv6 da abilita a disabilita:
[...]
##
## Use IPv6?
##
server.use-ipv6 = "disable"
[...]
Quindi prova ad avviare nuovamente Lighttpd:ora dovrebbe funzionare senza alcun problema:
systemctl start lighttpd.service
Lighttpd ha la sua radice del documento in /var/www/ htdocs (directory di base /var/www più htdocs come sottodirectory in base al file lighttpd.conf) ma installa i file predefiniti su /var/www/ lighttpd. Non è coerente, quindi dobbiamo rinominare la directory in questo modo.
mv /var/www/lighttpd /var/www/htdocs
Ora indirizza il tuo browser a http://192.168.1.100 e dovresti vedere la seguente pagina:
La radice del documento predefinita di Lighttpd è /var/www/htdocs/ su CentOS 7 e il file di configurazione è /etc/lighttpd/lighttpd.conf.
4 Installazione di PHP
Possiamo far funzionare PHP in Lighttpd tramite PHP-FPM che installiamo in questo modo:
yum -y install php-fpm lighttpd-fastcgi
PHP-FPM è un processo demone che esegue un server FastCGI sulla porta 9000.
Apri /etc/php-fpm.d/www.conf...
nano /etc/php-fpm.d/www.conf
... e imposta utente e 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 [...]
Crea i collegamenti di avvio del sistema per PHP-FPM e avvialo:
systemctl enable php-fpm.service
systemctl start php-fpm.service