Guida-Istallazione server web LAMP php 5.4 e phpmyadmin in Centos 7


Installare e configurare un server web con Apache HTTP Server, PHP e MySQL è una “skill” fondamentale per molti studenti e professionisti che vogliano lavorare con l’informatica, principalmente perché è il pre-requisito minimo richiesto per sviluppare siti web in PHP, creare un blog con WordPress, Drupal, Joomla, avviare un’attività di eCommerce con Magento oppure OpenCart o istallare servizi web come GLPI 9.1.x, nella piccola guida passo-passo vedremo come preparare tutto quanto ed installare Apache HTTP Server, MySQL e PHP sul PC con 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 e MySQL partendo da zero.

Iniziamo aprendo un terminale ssh verso il server e digitiamo i seguenti comandi per l’istallazione dei pacchetti necessari:

yum install httpd mariadb mariadb-server php php-common php-mysql php-gd php-xml php-mbstring php-mcrypt php-xmlrpc unzip wget -y

Una volta completata l’installazione, avviare i servizi Apache e MariaDB e abilitarli all’avvio automatico con i seguenti comandi:

systemctl start httpd

systemctl start mariadb

systemctl enable httpd

systemctl enable mariadb


Impostazioni firewall per rendere accessibile il servizio web dall’esterno

Puoi farlo eseguendo i seguenti comandi:

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

Adesso passiamo alla configurazione di MariaDB 5.5.60 in questo caso per glpi 9.1.x (glpi 9.1.x è stato usato come software di esempio)

Di default MariaDB non è sicuro, quindi dovrai prima configurare la policy di sicurezza utilizzando questo script mysql_secure_installation script:

mysql_secure_installation

Rispondi a tutte le domande come mostrato di seguito:

Set root password? [Y/n] n
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] n
Remove test database and access to it? [Y/n] n
Reload privilege tables now? [Y/n] y

Nel caso specifico di glpi si consiglia di istallare questi componenti utili dal repository EPEL

yum install epel-release 
yum install php-opcache
yum install php-pecl-apcu
yum install php-ldap
yum install php-imap
yum install php-pecl-zendopcache.x86_64

Nel caso in cui si vuole istallare il phpmyadmin per gestire graficamente il db mysql digitare i seguenti comandi e modificare le 3 righe in grassetto del phpmyadmin.conf:

yum install phpmyadmin

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

# phpMyAdmin - Web based MySQL browser written in php
#
# Allows only localhost by default
#
# But allowing phpMyAdmin to anyone other than localhost should be considered
# dangerous unless properly secured by SSL
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
       Require all granted
     </RequireAny>
   </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>

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.

sudo 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

Adesso siete pronti ad istallare la vostra applicazione web (glpi 9.1.x esempio)

Torna su