Linux Apache MySQL PHP

Questo tutorial mostra come installare un server web Apache sul server 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 l’utente, pertanto è necessario sostituirle dove appropriato.

Aggiungerò il repository EPEL qui per installare l’ultimo phpMyAdmin come segue:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY
yum -y installare 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 installare 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 abilita 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

Install yum-utils as we need the yum-config-manager utility.

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, usa:

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 del documento 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/

FABIO BERNINI è uno specialista IT con più di 20 anni di esperienza riguardante ogni aspetto dell'Informatica e con 38 anni di passione alle spalle.

Lascia un commento