Prima di iniziare l’avvio di qualsiasi installazione è bene sempre assicurarci che il sistema sia aggiornato digitando il comando:

sudo yum update

al termine eventuale aggiornamento iniziamo con l’istallazione di Apache

Installiamo Apache

Inizioamo quindi ad installare Apache da terminale:

sudo yum install httpd

Al termine dell’installazione avviamo il demone di Apache:

sudo systemctl start httpd.service

Se provate a digitate l’IP del vostro server vedrete che non sarà raggiungibile anche se in realtà l’installazione è andata a buon fine, questo perché CentOS ha attivi i firewall sulle porte dei protocolli http e https, per sbloccare i firewall e consentire l’accesso a queste porte abilitiamo i firewall - sulle porte HTTP 80 e HTTPS 443

sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload

Proviamo ora a collegarci al nostro indirizzo IP pubblico oppure in localhost:

http://localhost

Installiamo MySQL (mariadb)

Per installare MySQL da terminale lanciamo questo comando:

sudo yum install mariadb-server mariadb

Avviamo quindi mysql e impostiamo l'avvio automatico:

sudo systemctl start mariadb
sudo systemctl enable mariadb.service

Di default mysql ha delle impostazioni di sicurezza un po’ “minimal” facciamo in modo ora di innalzare un minimo il livello di sicurezza del sistema

Mettere in sicurezza MySQL

Da terminale dare:

sudo mysql_secure_installation

Ci verrà chiesta la password dell'utente root, premere semplicemente invio poiché la password inizialmente non è presente.

Subito dopo ci verrà richiesto se la si vuole impostare, premere "y" quindi "si" e vi consiglio di digitare un yes anche per i successivi passaggi:

  • Rimuovere gli utenti anonimi -> y
  • Disabilitare il login root da remoto -> y
  • Rimuovere il database test -> y
  • Aggiornare le nuove regole -> y

 

$ 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):

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] n

 ... skipping.


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!

 

Riavviamo ora mysql:


systemctl restart mariadb.service

 

Passiamo ora ad installare PHP

per installare php digitare il seguente comando:

sudo yum install php php-mysql

Riavviamo Apache per consentire l’aggiornamento dei moduli caricati:

sudo systemctl restart httpd

Testiamo ora l’effettivo funzionamento di PHP creando un nuovo file nella cartella di root di default di Apache nel quale inseriamo un comando PHP, per la precisione richiamiamo la routine phpinfo( ) che se PHP è in funzione indica la versione corrente installata con una serie di informazioni quindi :

creiamo il file

sudo nano /var/www/html/info.php

aggiungiamo la seguente righa:

 

<?php phpinfo(); ?>

 

riavviamo Apache:

sudo systemctl restart httpd

Collegarsi al proprio indirizzo IP pubblico oppure in localhost aggiungendo /info.php :

http://localhost/info.php

A questo punto l'installazione e la configurazione base di un web server Apache con MySQL e PHP su CentOS 7 può ritenersi terminata , molti però preferiscono utilizzare, per la gestione di MySQL l’interfaccia web PHPMyadmin, qual’ora voleste potete farlo… vediamo come.

Installazione PHPMyAdmin (opzionale)

Con la nostra piattaforma LAMP già in uso, possiamo iniziare subito con l'installazione del software phpMyAdmin. Sfortunatamente, phpMyAdmin non è disponibile nel repository predefinito di CentOS 7.

Per ottenere i pacchetti di cui abbiamo bisogno, dovremo aggiungere un repo aggiuntivo al nostro sistema. Il repository EPEL (Extra Packages for Enterprise Linux)  che contiene molti pacchetti aggiuntivi, incluso il pacchetto phpMyAdmin di cui abbiamo bisogno.

Il repository EPEL può essere reso disponibile sul nostro server installando un pacchetto speciale chiamato epel-release. Questo riconfigurerà l'elenco dei repository e ci darà accesso ai pacchetti EPEL.

Per installare il pacchetto EPEL, digitiamo semplicemente:

sudo yum installa epel-release

Ora che il repository EPEL è configurato, è possibile installare il pacchetto phpMyAdmin utilizzando il sistema di packaging yum quindi:

sudo yum installa phpmyadmin

L'installazione include un file di configurazione Apache già installato dovremo solo modificarlo un po' per farlo funzionare correttamente per la nostra installazione. Apriamo il file con il nostro editor di testo preferito e con i diritti necessari per consentirne la modifica:

sudo nano /etc/httpd/conf.d/phpMyAdmin.conf

All'interno, vediamo alcuni blocchi di directory con alcune logiche che indicano i criteri di accesso per la nostra directory. Ci sono due directory distinte che sono definite e, all'interno di queste, configurazioni che sono valide sia per Apache 2.2 che per Apache 2.4 andiamo a modificare come riportato di seguito  la parte che riguarda la versione 2.4 che abbiamo installato sul nostro sistema

 

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

            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>

Ora possiamo gestire il nostro DB MySQL in modo grafico attraverso la pagina web res disponibile all’indirizzo del nostro server http://IP_Nostro_Server/phpmyadmin o http://localhost/phpmyadmin