Dans ce didacticiel, nous allons vous montrer comment installer LEMP sur CentOS 7. Pour ceux d'entre vous qui ne le savaient pas, une pile logicielle LEMP est un groupe de logiciels open source qui est généralement installés ensemble pour permettre à un serveur d'héberger des sites Web dynamiques et des applications Web. Ce terme est en fait un acronyme qui représente le système d'exploitation Linux, avec le serveur Web Nginx (qui remplace le composant Apache d'une pile LAMP). Les données du site sont stockées dans une base de données MySQL (utilisant MariaDB), et le contenu dynamique est traité par PHP.
Cet article suppose que vous avez au moins des connaissances de base sur Linux, que vous savez utiliser le shell et, plus important encore, que vous hébergez votre site sur votre propre VPS. L'installation est assez simple. Je vais vous montrer l'installation étape par étape de LEMP (Linux, Nginx, MariaDB et PHP) sur le serveur CentOS 7.
Installer LEMP sur CentOS 7
Étape 1. Tout d'abord, assurez-vous que tous les packages sont à jour.
yum -y update
Étape 2. Installation et configuration de NGINX dans CentOS 7.
Nginx n'est pas encore disponible dans les dépôts officiels CentOS 7, nous devons donc ajouter/installer le dépôt Nginx yum en lançant la commande ci-dessous :
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm yum install nginx
Démarrez Nginx et ajoutez-le pour démarrer automatiquement au démarrage de votre système en utilisant :
systemctl restart nginx systemctl enable nginx
Vous pouvez vérifier que Nginx fonctionne vraiment en ouvrant votre navigateur Web préféré et en entrant l'URL http://your-server's-address, s'il est installé, puis vous verrez ceci :

Étape 3. Configurez le serveur Web Nginx.
Supposons que vous avez un domaine mydomain.com et que vous souhaitez l'utiliser pour héberger une application Web basée sur PHP dans /var/www/mydomain.com
comme WordPress, Joomla. Pour configurer les demandes de service Nginx pour mydomain.com et servir les scripts PHP dans /var/www/mydomain.com, vous devez créer un bloc de serveur dans /etc/nginx/conf.d/mydomain.com.conf
qui ressemblerait à ceci :
### nano /etc/nginx/conf.d/mydomain.com.conf server { server_name mydomain.com; listen 80; root /var/www/mydomain.com; access_log /var/log/nginx/mydomain.com-access.log; error_log /var/log/nginx/mydomain.com-error.log; index index.php; location / { try_files $uri $uri/ /index.php?$args; } location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ { access_log off; expires max; } location ~ /\.ht { deny all; } location ~ \.php { try_files $uri = 404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
Testez et redémarrez Nginx en utilisant :
nginx -t systemctl restart nginx
Étape 4. Installation et configuration de PHP sur CentOS 7.
Installez PHP sur CentOS 7 avec la commande suivante pour commencer l'installation :
yum install php-fpm php-mysql php-mcrypt
Vous souhaiterez peut-être installer d'autres extensions PHP requises par vos applications. Voici une liste des modules PHP disponibles :
php-bcmath : A module for PHP applications for using the bcmath library php-cli : Command-line interface for PHP php-common : Common files for PHP php-dba : A database abstraction layer module for PHP applications php-devel : Files needed for building PHP extensions php-embedded : PHP library for embedding in applications php-enchant : Enchant spelling extension for PHP applications php-fpm : PHP FastCGI Process Manager php-gd : A module for PHP applications for using the gd graphics library php-intl : Internationalization extension for PHP applications php-ldap : A module for PHP applications that use LDAP php-mbstring : A module for PHP applications which need multi-byte string handling php-mysql : A module for PHP applications that use MySQL databases php-mysqlnd : A module for PHP applications that use MySQL databases php-odbc : A module for PHP applications that use ODBC databases php-pdo : A database access abstraction module for PHP applications php-pear.noarch : PHP Extension and Application Repository framework php-pecl-memcache : Extension to work with the Memcached caching daemon php-pgsql : A PostgreSQL database module for PHP php-process : Modules for PHP script using system process interfaces php-pspell : A module for PHP applications for using pspell interfaces php-recode : A module for PHP applications for using the recode library php-snmp : A module for PHP applications that query SNMP-managed devices php-soap : A module for PHP applications that use the SOAP protocol php-xml : A module for PHP applications which use XML php-xmlrpc : A module for PHP applications which use the XML-RPC protocol
Redémarrez Nginx pour que toutes les modifications prennent effet :
systemctl restart nginx systemctl restart php-fpm systemctl enable php-fpm
Pour tester PHP, créez un fichier de test nommé info.php avec le contenu ci-dessous. Enregistrez le fichier, puis accédez-y pour voir si PHP fonctionne :
nano /var/www/html/info.php
<?php phpinfo(); ?>
Étape 5. Installation et configuration de MariaDB sur CentOS 7.
Installez MariaDB avec la commande suivante pour commencer l'installation :
yum install mariadb mariadb-server mysql
Après cela, ajoutez-le au démarrage de votre système et démarrez le serveur MariaDB à l'aide des commandes suivantes :
systemctl restart mariadb systemctl status mariadb systemctl enable mariadb
Par défaut, MariaDB n'est pas renforcée. Vous pouvez sécuriser MariaDB à l'aide du script mysql_secure_installation. vous devez lire attentivement et en dessous de chaque étape qui définira un mot de passe root, supprimera anonyme utilisateurs, interdire la connexion root à distance et supprimer la base de données de test et l'accès à MySQL sécurisé :
mysql_secure_installation
Pour vous connecter à MariaDB, utilisez la commande suivante (notez qu'il s'agit de la même commande que vous utiliseriez pour vous connecter à une base de données MySQL) :
mysql -u root -p
Étape 6. Configurez les IPTables ou les pare-feu.
firewall-cmd --permanent --zone=public --add-service=http firewall-cmd --permanent --zone=public --add-service=https firewall-cmd --reload
Félicitations ! Vous avez installé avec succès la pile LEMP. Merci d'avoir utilisé ce didacticiel pour l'installation de LEMP (Linux Nginx, MariaDB et PHP) dans le système CentOS 7. Pour obtenir de l'aide supplémentaire ou des informations utiles, nous vous recommandons de consulter les sites Web officiels de Nginx, MariaDB et PHP.