CENTOS 7 – Installation d’un serveur LAMP

LAMP CENTOS 7

Cette documentation va vous permettre d’installer un serveur LAMP sous CentOS 7. Nous installerons par la même occasion phpMyAdmin pour l’administration de la base de données.

Prérequis

  • Une version de CENTOS7 installé de base.
  • Le réseau paramétré et opérationnel.
  • La machine à jour (yum update)

Désactivation du FIREWALL et SELINUX

On édite le fichier /etc/sysconfig/selinux

SELINUX=disabled

On desactive le firewall

systemctl mask firewalld
systemctl stop firewalld

Installation de MARIADB

On commence par installer le package :

yum -y install mariadb-server mariadb

On demarre ensuite le service et on active le service en démarrage automatique :

systemctl start mariadb.service
systemctl enable mariadb.service

On lance le paramètrage de MYSQL et on suis les questions :

mysql_secure_installation

Installation d’APACHE

On installe le package

yum -y install httpd

On demarre ensuite le service et on active le service en démarrage automatique :

systemctl start httpd.service
systemctl enable httpd.service

Installation de PHP5

On install le package :

yum -y install php

On redemarre apache pour prendre en compte la modification :

systemctl restart httpd.service

On ajoute les modules pour PHP :

yum -y install php-mysql
yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel

On redemarre à nouveau le service :

systemctl restart httpd.service

Activation SSL

Installation du module SSL Apache :

yum -y install mod_ssl

PhpMyAdmin

Il faut ajouter le repo pour avoir les dernières versions de phpMyAdmin

yum install epel-release
yum install phpmyadmin

On edite le fichier de conf /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 172.16.0.0/12
       Require ip ::1
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 172.16.0.0/12
     Allow from ::1
   </IfModule>
</Directory>

<Directory /usr/share/phpMyAdmin/setup/>
   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       Require ip 172.16.0.0/12
       Require ip ::1
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 172.16.0.0/12
     Allow from ::1
   </IfModule>
</Directory>

# These directories do not require access over HTTP - taken from the original
# phpMyAdmin upstream tarball
#
<Directory /usr/share/phpMyAdmin/libraries/>
    Order Deny,Allow
    Deny from All
    Allow from None
</Directory>

<Directory /usr/share/phpMyAdmin/setup/lib/>
    Order Deny,Allow
    Deny from All
    Allow from None
</Directory>

<Directory /usr/share/phpMyAdmin/setup/frames/>
    Order Deny,Allow
    Deny from All
    Allow from None
</Directory>

# This configuration prevents mod_security at phpMyAdmin directories from
# filtering SQL etc.  This may break your mod_security implementation.
#
#<IfModule mod_security.c>
#    <Directory /usr/share/phpMyAdmin/>
#        SecRuleInheritance Off
#    </Directory>
#</IfModule>