Guida-Istallazione server web LAMP php 7.x , mariadb mysql 10.3.x e phpmyadmin in Centos 7

Istallare i prerequisiti minimi per sviluppare siti web in PHP (7.0, 7.1 7.2 and 7.3), creare un blog con WordPress 5, Drupal, Joomla, avviare un’attività di eCommerce con Magento oppure OpenCart o istallare servizi web come GLPI 9.2 9.3 e 9.4 o servizi che richiedono prestazioni elevate e versioni di php aggiornate, nella piccola guida passo-passo vedremo come preparare tutto quanto ed installare Apache HTTP Server, MySQL e PHP (7.0, 7.1 7.2 and 7.3) su un pc Linux. Lo scopo è presentare la procedura nel modo più semplice possibile, senza perdersi in micro-configurazioni inizialmente superflue, ma anche senza dare nulla per scontato. Ebbene: siamo dunque pronti ad installare e configurare Apache, PHP (7.0, 7.1 7.2 and 7.3) e MySQL partendo da zero.

1 Note preliminari

In questo tutorial ho impostato sul mio server “server1” come hostname e ip 192.168.1.100 sulla scheda di rete . Queste impostazioni potrebbero essere diverse per te, quindi devi sostituirle se necessario.

Ho aggiunto i repository EPEL repo per istallare l’ultima versione di phpMyAdmin iniziamo dai primi comandi:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
yum -y install epel-release

2. Aggiungere MariaDB 10.3 Repository

Eseguire il seguente comando per aggiungere il repository MariaDB 10.3 a yum:

1vi /etc/yum.repos.d/maria10-3.repo

Incolla quanto segue nell’editor

# MariaDB 10.3 CentOS repository list - created 2018-11-19 23:14 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Salva e chiudi l’editor, quindi passa al passaggio successivo

3. Istallare MariaDB 10.3 e verificare servizi e istallazione

Eseguire il seguente comando per l’aggiornamento a MariaDB 10.3:

1 yum install MariaDB-server MariaDB-client

Abilitare il servizio mysql mariadb in esecuzione automatica:

systemctl enable mariadb
systemctl start mariadb

Copy

Verificare lo stato del servizio mysql mariadb:

systemctl status mariadb
  1. L’ultimo passo è eseguire lo script mysql_secure_installation che eseguirà diverse attività relative alla sicurezza:
  2. mysql_secure_installation
  3. Lo script ti chiederà di impostare la password dell’utente root, rimuovere l’utente anonimo, limitare l’accesso dell’utente root al computer locale e rimuovere il database di test. Tutti i passaggi sono spiegati in dettaglio e si consiglia di rispondere a Y (sì) a tutte le domande

Connettiti alla shell di maysql mariadb 10.3

Per connettersi al server MariaDB tramite il terminale come tipo di account di root:

mysql -u root -p

Ti verrà richiesto di inserire la password di root che hai precedentemente impostato quando hai avviato il file mysql_secure_installation script .

Una volta inserita la password, verrà presentato la shell MariaDB come mostrato di seguito :

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 10.3.7-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.

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 all’avvio …

systemctl start httpd.service
systemctl enable httpd.service

Per poter accedere al server web 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 indirizza il tuo browser all’indirizzo IP del tuo server, nel mio caso http://192.168.1.100, e dovresti vedere la pagina di Apache:

4 Installare PHP

La versione PHP fornita con CentOS come predefinito è piuttosto vecchia (PHP 5.4). Quindi ti mostrerò in questo capitolo alcune opzioni per installare versioni PHP più recenti come PHP 7.0 o 7.1 dal repository Remi.

Aggiungi il repository Remi CentOS. istallare il repository con il seguente comando

 yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Installa yum-utils in quanto abbiamo bisogno dell’utilità yum-config-manager.

yum -y install yum-utils

and run yum update

yum update

Ora devi scegliere quale versione di PHP vuoi usare sul server. Se ti piace usare PHP 5.4, vai al capitolo 4.1. Per installare PHP 7.0, segui i comandi nel capitolo 4.2, per PHP 7.1 capitolo 4.3 e per PHP 7.1, usa invece il capitolo 4.4. Segui solo uno dei capitoli 4.x e non tutti, dato che puoi utilizzare una sola versione PHP alla volta con Ap_pod mod_php.

4.1 Installare PHP 5.4

Per istallare PHP 5.4, esegui 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 vuoi usare PHP 7.1 usa:

yum-config-manager --enable remi-php71
yum -y install php php-opcache

4.4 Installare PHP 7.2

Se invece vuoi usare PHP 7.2 usa:

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

Dobbiamo riavviare Apache per applicare le modifiche:

 systemctl restart httpd.service

5 Test di PHP / 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 chiameremo in un browser per testare l’installazione di PHP. Il file mostrerà molti dettagli utili sulla nostra installazione di PHP, come la versione PHP installata.

vi /var/www/html/info.php
<?php 
phpinfo();

Ora chiamiamo quel file in un browser (ad esempio http://192.168.1.100/info.php):


Come vedete, PHP 7.2 funziona e sta funzionando attraverso Apache 2.0 Handler, come mostrato nella riga API del server. Se scorri verso il basso, vedrai tutti i moduli che sono già abilitati in PHP. *Ma MySQL non è elencato lì, il che significa che non abbiamo ancora il supporto MySQL in PHP.

6 Ottenere supporto MySQL in PHP

Per ottenere supporto MySQL in PHP, possiamo installare il pacchetto php-mysqlnd. È una buona idea installare alcuni altri moduli PHP e potrebbero essere necessari per le tue applicazioni. Puoi cercare i moduli PHP5 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, GLPI e Drupal:

yum install php-opcache 
yum install php-pecl-apcu
yum install php-ldap
yum install php-imap
yum install php-pecl-zendopcache.x86_64
yum install php-pecl-apcu-bc 
yum install php-xmlrpc
yum install php-pear-CAS.noarch
yum install php-gd
yum install php-odbc 
yum install php-pear 
yum install php-xml 
yum install php-mbstring 
yum install php-soap 
yum install curl 
yum install curl-devel
yum install net-snmp net-snmp-utils

yum -y install php-opcache php-pecl-apcu php-ldap php-imap php-pecl-zendopcache.x86_64 php-pecl-apcu-bc php-xmlrpc php-pear-CAS.noarch php-gd php-odbc php-pear php-xml php-mbstring php-soap curl curl-devel net-snmp net-snmp-utils

Ora riavvia il server Web Apache:

 systemctl restart httpd.service

Ora ricaricare http://192.168.1.100/info.php nel browser e scorrere di nuovo fino alla sezione dei moduli. Ora dovresti trovare molti nuovi moduli come l’arricciatura ecc.

Se non hai più bisogno dell’output di informazioni php, elimina quel file per motivi di sicurezza.

rm /var/www/html/info.php

7 Istallare phpMyAdmin

phpMyAdmin è un’interfaccia web attraverso la quale puoi gestire i tuoi database MySQL.
phpMyAdmin può ora essere installato come segue:

yum --enablerepo=remi install phpMyAdmin

Per evitatere i timeout da interfaccia grafica, aggiungere nel file /etc/phpmyadmin/config.inc.php la riga $cfg['ExecTimeLimit'] = 900; prima della riga

/* End of servers configuration


Ora configuriamo phpMyAdmin per la connessione remota. Modifichiamo la configurazione di Apache in modo che phpMyAdmin permetta connessioni non solo da localhost (commentando la sezione <RequireAny> e aggiungendo la riga ‘Require all granted’ line’):

vi /etc/httpd/conf.d/phpMyAdmin.conf


AddDefaultCharset UTF-8

      # Apache 2.4
      Sostituire "Require local" con:
      Require all granted

Riavvia Apache:

systemctl restart  httpd.service

Successivamente, puoi accedere a phpMyAdmin sotto http://192.168.1.100/phpmyadmin/:

Adesso bisogna modificare il file httpd.conf

Prima di utilizzare un file .htaccess, è necessario aggiornare l’impostazione AllowOverride per poter sovrascrivere le direttive di Apache.

vi /etc/httpd/conf/httpd.conf

Individua la sezione <Directory /var/www/html> e modifica la direttiva AllowOverride da None a All: /etc/httpd/conf/httpd.conf

. . .
<Directory /var/www/html>
. . .
 # 
 # AllowOverride controls what directives may be placed in .htaccess files.
 # It can be "All", "None", or any combination of the keywords:
 # Options FileInfo AuthConfig Limit
 #
 AllowOverride All
. . .
</Directory>
. . .

Mentre per modificare gli upload, il timeout e timezone da php modificare il file vi /etc/php.ini nella sezione size mb

per il timeout php max_execution_time 3000

Mentre per il timezone php corretto modificare la seguente riga

[Date] 
; Defines the default timezone used by the date functions
; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone
date.timezone = Europe/Rome

Salvare e uscire dal file e quindi riavviare Apache per applicare la modifica:

sudo systemctl restart httpd

Salvare e uscire dal file e quindi riavviare Apache per applicare la modifica:

sudo systemctl restart httpd
Torna su