Ce article traite de l'installation d'un serveur web Apache sur une machine sous CentOS 7 avec le support de PHP5 et MySQL.
LAMP est une abréviation de Linux, Apache, MySQL, PHP.
Configuration des dépôts
Avant de commencer l'installation proprement dite de chacun des éléments, on doit commencer par installer les dépôts.
Installation du dépôt Extras Packages Entreprise Linux (EPEL)
sudo yum -y install epel-release
Installation du dépôt REMI qui contient les dernières versions de PHP
sudo yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
Une fois le dépôt REMI installé, il faut choisir la version de PHP que nous souhaitons installer. Dans le cas présent, il s'agit de la version 5.6.
Nous allons donc éditer le fichier /etc/yum.repos.d/remi.repo et remplacer enabled=0 par enabled=1 dans la section [remi-php56].
/etc/yum.repos.d/remi.repo
[remi-php56] name=Remi's PHP 5.6 RPM repository for Enterprise Linux 7 - $basearch #baseurl=http://rpms.remirepo.net/enterprise/7/php56/$basearch/ mirrorlist=http://rpms.remirepo.net/enterprise/7/php56/mirror # NOTICE: common dependencies are in "remi-safe" enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
On termine l'installation des dépôts par une mise à jour de la distribution.
sudo yum -y update
Installation de MySQL / MariaDB
MariaDB est un serveur de base de données relationnelle équivalent libre de MySQL. Pour cet exemple de configuration, nous avons choisi d'installer MariaDB plutôt que MySQL, mais la méthode reste la même.
sudo yum -y install mariadb-server mariadb
Nous allons ensuite démarrer le serveur de base de données MariaDB, et nous assurer qu'il démarre automatiquement à chaque redémarrage de la machine.
sudo systemctl enable mariadb.service sudo systemctl start mariadb.service
Afin de terminer l'installation de ce service, il faut lui assigner un mot de passe administrateur et appliquer quelques règles élémentaires de sécurité. Pour cela, il suffit de lancer la commande suivante :
sudo mysql_secure_installation
On va vous demander essentiellement de choisir un mot de passe sur le compte root. Et de répondre par l'affirmative aux questions qui vous sont posées.
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):
==> [ENTREE]
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]
==> [Y]
... 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]
==> [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!
L'installation et la configuration de MariaDb est maintenant terminée.
Installation de Apache
Apache est directement disponible dans les dépôts de CentOS. Il peut donc s'installer avec la commande suivante :
sudo yum -y install httpd
Tout comme pour MariaDB, nous allons nous assurer que le serveur Web est redémarré automatique à chaque démarrage de la machine.
sudo systemctl enable httpd.service sudo systemctl start httpd.service
Installation et configuration du firewall
Afin de protéger le serveur des agression extérieures, nous allons installer le pare-feu de CentOS et le configurer pour qu'il laisse passer les requêtes vers le serveur web.
sudo yum -y install firewalld sudo systemctl enable firewalld.service sudo systemctl start firewalld.service sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --reload
Test du serveur Web
Normalement en ouvrant un navigateur, vous devriez pouvoir vous connecter à l'adresse de la machine et voir la page suivante :
Installation de PHP et test
Pour installer PHP, il suffit de lancer les commandes suivantes :
sudo yum -y install php sudo systemctl restart httpd.service
Pour tester PHP, nous devons créer une page web :
sudo echo "<?php phpinfo(); ?>" > /var/www/html/info.php
En ouvrant cette page dans un navigateur, nous sommes en mesure d'attester du bon fonctionnement de PHP (http://<ip-du-serveur>/info.php/) :
Si ce que vous voyez est conforme à la page ci-dessus, c'est que PHP fonctionne bien. Néanmoins, il faut installer des modules supplémentaires pour assurer la connectivité entre PHP et MariaDB. Nous devons donc installer des modules supplémentaires.
Modules supplémentaires PHP
Tout d'abord, l'installation du module PHP nécessaire pour MariaDB.
sudo yum -y install php-mysql
Ensuite, nous allons installer quelques modules supplémentaires afin de couvrir les besoins communs.
sudo yum -y install php-gd php-ldap php-mbstring php-mcrypt php-odbc php-pear php-PHPMailer php-snmp php-soap php-xml php-xmlrpc
Pour valider l'installation de ces modules supplémentaires, nous devons relancer le serveur Apache.
sudo systemctl restart httpd.service