ABSTRACT

Comment installer la pile Apache, MySQL et PHP sur un serveur CENTOS 7. Cette pile est indispensable par exemple à l’installation de ZABBIX. On travaille sur une machine Virtual Box avec son mod réseau par défaut: le mode NAT, qu’on utilise pour avoir accès à interne et pour récupérer les packages et la documentation nécessaire.

 

1 Prérequis

On aura besoin du dépot EPEL (Extra Packages for Entreprise Linux):

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

2 Installation de MySQL / MariaDB

MariaDB est un fork de MySQL.

yum -y install mariadb-server mariadb

Démarrage du service et démarrage automatique au boot.

systemctl start mariadb.service
systemctl enable mariadb.service

Sécurisation des comptes et de la base.

mysql_secure_installation

[root@server1 ~]# mysql_secure_installation
/usr/bin/mysql_secure_installation: line 379: find_mysql_client: command not foundNOTE: 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): <–ENTER
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]
New password: <–votre mot de passe
Re-enter new password: <–répéter votre mot de passe
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] <–ENTER
… 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] <–ENTER
… Success!

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] <–ENTER
– 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] <–ENTER
… 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 Installation d’Apache2

Le packages CENTOS 7 sont fournis avec Apach 2:

yum -y install httpd

Démarrage du service et démarrage automatique au boot.

systemctl start httpd.service
systemctl enable httpd.service

Configuration du pare-feu de CentOS 7 pour laisser passer les connexions vers le port 80 (http) et le port 443 (https).

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

Test sur http://localhost

4 Installation de PHP5

yum -y install php

systemctl restart httpd.service

5 Tester PHP5 / Détails de l’installation

Créer le fichier info.php dans le « Document Root » du serveur Apache

vi /var/www/html/info.php

<?php
phpinfo();
?>

Tester (par exemple: http://localhost/info.php):

Par contre, vous pouvez voir que MySQL n’est pas listée dans la liste des support PHP

6 Activer le support MySQL par PHP5

yum search php

Dans la liste retournée, récupérer le support php pour MySQL

yum -y install php-mysql

Et récupérer aussi la lupart des support habituellement requis pourles CMS

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

Redémarrer Apache2:

 systemctl restart httpd.service

Retester les différents modules sur l’adresse http://localhost/info.php

7 Installation de phpMyAdmin

phpMyAdmin est une interface WEB de gestion des bases de données MySQL.

yum install phpMyAdmin

On commente et on réécrit la rubrique <Directory « /usr/share/phpmyadmin« > pour avoir accès à phpMyAdmin même depuis une autre machine que la machine localhost:

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

[...]
Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin

#<Directory /usr/share/phpMyAdmin/>
#   <IfModule mod_authz_core.c>
#     # Apache 2.4
#     <RequireAny>
#       Require ip 127.0.0.1
#       Require ip ::1
#     </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>


<Directory /usr/share/phpMyAdmin/>
        Options none
        AllowOverride Limit
        Require all granted
</Directory>

[...]

Puis faire en sorte que l’authentification à phpMyAdmin ne se fasse plus par cookie mais par http:

vi /etc/phpMyAdmin/config.inc.php

[...]
$cfg['Servers'][$i]['auth_type']     = 'http';    // Authentication method (config, http or cookie based)?
[...]

Redémarrer Apache:

systemctl restart  httpd.service

Vérifier: http://localhost/phpmyadmin/:

Leave a Comment