Questo tutorial mostra come installare un server web Apache sul server Linux CentOS 7 con PHP (mod_php) e database MySQL. L’acronimo LAMP è l’abbreviazione di Linux, Apache, MySQL, PHP.
Questa esercitazione aggiornata mostra l’installazione delle ultime versioni PHP (7.0, 7.1, 7.2 e 7.3) su CentOS 7.6.
1. NOTE PRELIMINARI
In questo tutorial, uso il nome host server1.example.com con l’IP privato 10.0.0.1. Queste impostazioni potrebbero essere diverse per ogni utente, pertanto è necessario sostituirle in modo appropriato.
Aggiungerò il repository EPEL per installare l’ultimo phpMyAdmin come segue:
# rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY
# yum -y install epel-release
Per modificare i file sulla shell, installerò l’editor nano. Se si preferisce vi per la modifica dei file, saltare questo passaggio:
# yum -y install nano
2. INSTALLARE MySQL / MariaDB
MariaDB è un fork MySQL dello sviluppatore originale di MySQL, Monty Widenius. MariaDB è compatibile con MySQL e ho scelto di utilizzare MariaDB qui invece di MySQL. Eseguire questo comando per installare MariaDB con yum:
# yum -y install mariadb-server mariadb
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 start mariadb.service
# systemctl enable mariadb.service
Impostare le password per l’account root di MySQL:
# mysql_secure_installation
[root@server1 ~]# mysql_secure_installation
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, andyou 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): <–INVIO
OK, successfully used password, moving on…
Setting the root password ensures that nobody can log into the MariaDBroot user without the proper authorisation.
Set root password? [Y/n] <–INVIO
New password: <–crea la tua password
Re-enter new password: <–riscrivi la password creata precedentemente
updated successfully!
Reloading privilege tables..
… Success!
By default, a MariaDB installation has an anonymous user, allowing anyoneto log into MariaDB without having to have a user account created forthem. This is intended only for testing, and to make the installationgo a bit smoother. You should remove them before moving into aproduction environment.
Remove anonymous users? [Y/n] <–INVIO
… Success!
Normally, root should only be allowed to connect from ‘localhost’. Thisensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] <–INVIO
… Success!
By default, MariaDB comes with a database named ‘test’ that anyone canaccess. 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] <–INVIO
– Dropping test database…
… Success!
– Removing privileges on test database…
… Success!
Reloading the privilege tables will ensure that all changes made so farwill take effect immediately.
Reload privilege tables now? [Y/n] <–INVIO
…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!
[root@server1 ~]#
3. INSTALLARE APACHE
CentOS 7 viene fornito con Apache 2.4. Apache è direttamente disponibile come pacchetto CentOS 7, quindi possiamo installarlo in questo modo:
# yum -y install httpd
Ora configura il tuo sistema per avviare Apache al momento dell’avvio:
# systemctl start httpd.service
# systemctl enable httpd.service
Per poter accedere al web server dall’esterno, dobbiamo aprire le porte HTTP (80) e HTTPS (443) nel firewall. Il firewall predefinito su CentOS è firewalld che può essere configurato con il comando firewalld-cmd:
# firewall-cmd –permanent –zone=public –add-service=http
# firewall-cmd –permanent –zone=public –add-service=https
# firewall-cmd –reload
Ora dirigere il browser all’indirizzo IP del server, nel mio caso http://10.0.0.1, e si dovrebbe vedere la pagina segnaposto Apache
4. INSTALLARE PHP
La versione PHP che viene fornita con CentOS come predefinito è piuttosto vecchio (PHP 5.4). Pertanto vi mostrerò in questo capitolo alcune opzioni per installare le versioni PHP più recenti come PHP 7.0 a 7.3 dal repository Remi.
Aggiungere il repository Remi CentOS:
# rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
Installa yum-utils perché abbiamo bisogno dell’utility yum-config-manager:
# yum -y install yum-utils
ed eseguire yum update:
# yum update
Ora devi scegliere quale versione PHP vuoi usare sul server. Se si desidera utilizzare PHP 5.4, quindi procedere al capitolo 4.1. Per installare PHP 7.0, seguire i comandi del capitolo 4.2, per PHP 7.1 capitolo 4.3, per PHP 7.4 utilizzare il capitolo 4.4 e per PHP 7.3 seguire invece il capitolo 4.5. Seguire solo uno dei capitoli 4.x e non tutti perchè è possibile utilizzare solo una versione PHP alla volta con Apache mod_php.
4.1 INSTALLARE PHP 5.4
Per installare PHP 5.4, eseguire questo comando:
# yum -y install php
4.2 INSTALLARE PHP 7.0
Possiamo installare PHP 7.0 e il modulo Apache PHP 7.0 come segue:
# yum-config-manager –enable remi-php70
# yum -y install php php-opcache
4.3 INSTALLARE PHP 7.1
Se invece si desidera utilizzare PHP 7.1, utilizzare:
# yum-config-manager –enable remi-php71
# yum -y install php php-opcache
4.4 INSTALLARE PHP 7.2
Se si desidera utilizzare PHP 7.2, utilizzare invece:
# yum-config-manager –enable remi-php72
# yum -y install php php-opcache
4.5 INSTALLARE PHP 7.3
Se invece vuoi usare PHP 7.3, esegui:
$ yum-config-manager –enable remi-php73
$ yum -y install php php-opcache
In questo esempio userò PHP 7.3.
Dobbiamo riavviare Apache per applicare le modifiche:
# systemctl restart httpd.service
5. TEST PHP E OTTENERE DETTAGLI SULL’INSTALLAZIONE DI PHP
La radice dei documenti del sito Web predefinito è /var/www/html. Creeremo un piccolo file PHP (info.php) in quella directory e lo richiameremo in un browser per testare l’installazione di PHP. Il file mostrerà molti dettagli utili sulla nostra installazione di PHP, come la versione di PHP installata:
# nano /var/www/html/info.php
Nel file info.php bisogna inserire queste direttive:
<?php
phpinfo();
Ora puntare con un browser all’indirizzo: http://10.0.0.1/info.php
Come si può vedere, PHP 7.3 funziona e funziona tramite il gestore Apache 2.0, come mostrato nella riga API del server. Se scorri più in basso, vedrai tutti i moduli che sono già abilitati in PHP. MySQL non è elencato, il che significa che non abbiamo ancora il supporto MySQL in PHP.
6. Ottenere supporto MySQL in PHP
Per ottenere il supporto MySQL in PHP, possiamo installare il pacchetto php-mysqlnd. È una buona idea installare alcuni altri moduli PHP e potresti averne bisogno per le tue applicazioni. Puoi cercare i moduli PHP disponibili in questo modo:
# yum search php
Scegli quelli che ti servono e installali in questo modo:
# yum -y install php-mysqlnd php-pdo
Nel prossimo passaggio installerò alcuni moduli PHP comuni richiesti dai sistemi CMS come WordPress, Joomla e Drupal:
# yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-soap curl curl-devel
Ora riavvia il server web Apache:
# systemctl restart httpd.service
Ora ricarica http://10.0.0.1/info.php nel tuo browser e scorri di nuovo verso il basso fino alla sezione dei moduli. Ora dovresti trovare un sacco di nuovi moduli come curl ecc.:
Se non hai più bisogno dell’output delle informazioni PHP, elimina quel file per motivi di sicurezza.
# rm /var/www/html/info.php
7. Installazione di phpMyAdmin
phpMyAdmin è un’interfaccia web attraverso la quale è possibile gestire i database MySQL.
phpMyAdmin ora può essere installato come segue:
# yum -y install phpMyAdmin
Ora configuriamo phpMyAdmin. Modifichiamo la configurazione di Apache in modo che phpMyAdmin consenta connessioni non solo da localhost (commentando <RequireAny> e aggiungendo la riga ‘Require all granted’):
# nano /etc/httpd/conf.d/phpMyAdmin.conf
[...]
Alias /phpMyAdmin /usr/share/phpMyAdmin Alias /phpmyadmin /usr/share/phpMyAdmin <Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8
<IfModule mod_authz_core.c>
# Apache 2.4
# <RequireAny>
# Require ip 127.0.0.1
# Require ip ::1
# </RequireAny>
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
</Directory>
<Directory /usr/share/phpMyAdmin/> Options none AllowOverride Limit Require all granted </Directory>
[...]
Riavvia Apache per applicare le modifiche alla configurazione:
# systemctl restart httpd.service
Successivamente, puoi accedere a phpMyAdmin puntando il browser su http://10.0.0.1/phpmyadmin/