GNU/Linux >> Tutoriels Linux >  >> Cent OS

Installez Apache, MariaDB, PHP (pile LAMP) dans CentOS 8

LAMPE pile est la combinaison de L inux, A serveur web cache, M ySQL/M ariaDB, P HP. Ce guide étape par étape explique comment installer Apache, MariaDB, PHP (LAMP Stack) sur le serveur minimal CentOS 8. La pile LAMP est utilisée pour déployer des applications Web et héberger des sites Web dynamiques. J'ai testé ce guide sur CentOS 8, mais les étapes ci-dessous devraient également fonctionner sur le serveur RHEL 8. Commençons.

Installer Apache, MariaDB, PHP (pile LAMP) dans CentOS 8

Voici les détails de ma machine de test :

  • Système d'exploitation - Serveur minimal CentOS 8 (8.1.1911 (Core))
  • Adresse IP - 192.168.225.52/24
  • Nom d'hôte - centos8.ostechnix.lan

Toutes les commandes indiquées ci-dessous doivent être exécutées en tant que "root" utilisateur. Si vous vous connectez en tant qu'utilisateur normal, utilisez 'sudo' devant chaque commande. Le # le symbole représente Je suis des commandes en tant qu'utilisateur root.

Remarque :

L'une des principales mises à jour de CentOS 8 est que le gestionnaire de packages par défaut a été migré de YUM vers DNF. Cependant, vous pouvez toujours YUM sur CentOS 8 si vous vous y habituez. L'utilisation de DNF est exactement la même que celle de YUM. J'ai compilé une liste d'exemples de commandes DNF pour les débutants. Si vous souhaitez savoir comment utiliser DNF, consultez le lien suivant.

  • Exemples de commandes DNF pour les débutants

1. Installer le serveur Web Apache sur CentOS 8

Pour installer Apache sur CentOS 8, exécutez la commande suivante en tant qu'utilisateur root :

# dnf install httpd

Une fois Apache installé, activez et démarrez le service apache à l'aide de la commande :

# systemctl enable httpd
# systemctl start httpd

Vous pouvez également utiliser la commande en une ligne suivante pour activer et démarrer le service apache en une seule fois.

# systemctl enable --now httpd

Vérifiez si le service Apache est en cours d'exécution ou non avec la commande :

# systemctl status httpd

Exemple de résultat :

● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-02-07 12:25:08 IST; 39min ago
     Docs: man:httpd.service(8)
 Main PID: 1736 (httpd)
   Status: "Total requests: 6; Idle/Busy workers 100/0;Requests/sec: 0.00253; Bytes served/sec: 13>
    Tasks: 213 (limit: 11501)
   Memory: 25.7M
   CGroup: /system.slice/httpd.service
           ├─1736 /usr/sbin/httpd -DFOREGROUND
           ├─1873 /usr/sbin/httpd -DFOREGROUND
           ├─1874 /usr/sbin/httpd -DFOREGROUND
           ├─1875 /usr/sbin/httpd -DFOREGROUND
           └─1876 /usr/sbin/httpd -DFOREGROUND

Feb 07 12:25:08 centos8.ostechnix.lan systemd[1]: Starting The Apache HTTP Server...
Feb 07 12:25:08 centos8.ostechnix.lan systemd[1]: Started The Apache HTTP Server.
Feb 07 12:25:08 centos8.ostechnix.lan httpd[1736]: Server configured, listening on: port 80

Comme vous pouvez le voir, le service Apache est chargé et en cours d'exécution. Et il écoute sur le port 80. Pour savoir quel service écoute sur un port particulier, consultez ce guide .

Vérifiez la version d'Apache :

# httpd -v
Server version: Apache/2.4.37 (centos)
Server built: Dec 23 2019 20:45:34

Ensuite, tous les ports par défaut du serveur Apache 80 et 443 via votre pare-feu et votre routeur.

Pour autoriser le port http 80 via le pare-feu, exécutez :

# firewall-cmd --permanent --add-service=http

Pour autoriser le port https 443 :

# firewall-cmd --permanent --add-service=https

Redémarrez le pare-feu pour appliquer les modifications à l'aide de la commande :

$ systemctl restart firewalld

1.1. Tester le serveur Web Apache

Nous venons de terminer toutes les étapes nécessaires pour déployer un serveur Web Apache. Allons-y et vérifions si cela fonctionne vraiment ou non. Pour ce faire, ouvrez votre navigateur Web (sur tous les systèmes distants du réseau, car il s'agit d'un serveur minimal sans interface graphique) et accédez à - http://ip-address . Si l'interface graphique est installée sur votre système CentOS, vous pouvez naviguer vers http://localhost ou http://adresse-ip/ ou http://nom-de-domaine .

Si tout est OK, vous verrez la page de test suivante sur votre navigateur.

Eh bien, le serveur Web Apache fonctionne !

La prochaine étape de la configuration de LAMP consiste à installer le serveur de base de données.

2. Installez le serveur de base de données MariaDB sur CentOS 8

Exécutez la commande suivante depuis Terminal pour installer MariaDB sur CentOS 8 :

# dnf install mariadb-server mariadb

Une fois MariaDB installé, activez et démarrez le service mariadb à l'aide des commandes :

# systemctl enable mariadb
# systemctl start mariadb

Vous pouvez également utiliser la commande en une ligne suivante pour activer et démarrer le service mariadb immédiatement :

# systemctl enable --now mariadb

Pour vérifier si le service mariadb est démarré ou non, exécutez :

# systemctl status mariadb

Exemple de résultat :

● mariadb.service - MariaDB 10.3 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-02-07 14:16:59 IST; 16s ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
  Process: 5447 ExecStartPost=/usr/libexec/mysql-check-upgrade (code=exited, status=0/SUCCESS)
  Process: 5312 ExecStartPre=/usr/libexec/mysql-prepare-db-dir mariadb.service (code=exited, statu>
  Process: 5288 ExecStartPre=/usr/libexec/mysql-check-socket (code=exited, status=0/SUCCESS)
 Main PID: 5415 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 30 (limit: 11501)
   Memory: 84.6M
   CGroup: /system.slice/mariadb.service
           └─5415 /usr/libexec/mysqld --basedir=/usr

Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: Please report any problems at ht>
Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: The latest information about Mar>
Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: You can find additional informat>
Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: http://dev.mysql.com
Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: Consider joining MariaDB's stron>
Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: https://mariadb.org/get-involved/
Feb 07 14:16:59 centos8.ostechnix.lan mysqld[5415]: 2020-02-07 14:16:59 0 [Note] /usr/libexec/mysq>
Feb 07 14:16:59 centos8.ostechnix.lan mysqld[5415]: 2020-02-07 14:16:59 0 [Warning] Could not incr>
Feb 07 14:16:59 centos8.ostechnix.lan mysqld[5415]: 2020-02-07 14:16:59 0 [Warning] Changed limits>
Feb 07 14:16:59 centos8.ostechnix.lan systemd[1]: Started MariaDB 10.3 database server

Le service Mariadb est chargé et actif maintenant !

Vérifier la version d'installation de MariaDB :

# mysql -V
mysql Ver 15.1 Distrib 10.3.17-MariaDB, for Linux (x86_64) using readline 5.1

2.1. Définir le mot de passe de l'utilisateur racine de la base de données (administrateur)

Par défaut, le mot de passe de l'utilisateur racine de la base de données est vide. Pour sécuriser le serveur de base de données, nous devons définir un mot de passe pour l'utilisateur root. Pour ce faire, exécutez le script mysql_secure_installation :

# mysql_secure_installation

On vous posera quelques questions. Lisez-les et répondez-y en conséquence. Tout d'abord, vous serez invité à entrer le mot de passe actuel de l'utilisateur root. Comme le mot de passe est vide par défaut, appuyez simplement sur la touche ENTER pour continuer. Ensuite, vous serez invité à répondre aux questions suivantes :

  1. Définir le mot de passe root ? - Tapez y pour définir le mot de passe et saisissez-le deux fois.
  2. Supprimer les utilisateurs anonymes ? - Tapez y pour supprimer l'utilisateur anonyme. L'utilisateur anonyme est donné à des fins de test par défaut. Vous devez supprimer l'utilisateur anonyme en production.
  3. Interdire la connexion root à distance ? - Tapez y pour empêcher l'utilisateur root d'accéder au serveur de base de données à partir de n'importe quel système distant.
  4. Supprimer la base de données de test et y accéder ? - Tapez y pour supprimer la base de données de test.
  5. Recharger les tableaux de privilèges maintenant ? - Tapez y pour prendre effet toutes les modifications apportées.

Exemple de résultat :

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): #Press 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] y #Type y and press ENTER
New password:  #Enter password
Re-enter new password: #Re-enter 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 #Type y and press 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] y #Type y and ress 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] y #Type y and press 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] y #Type y and press 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!

Nous avons maintenant sécurisé l'installation de MariaDB.

2.2. Connectez-vous au shell MariaDB

Exécutez la commande suivante pour vous connecter au shell mariadb en tant qu'utilisateur root :

# mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 16
Server version: 10.3.17-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Pour quitter le shell mariadb, exécutez simplement :

exit;

3. Installer PHP sur CentOS 8

PHP est le dernier composant de la pile LAMP. Pour installer php avec tous les autres modules php requis, exécutez la commande suivante en tant qu'utilisateur root :

# dnf install php php-fpm php-mysqlnd php-opcache php-gd php-xml php-mbstring

3.1. Configurer Apache avec PHP-FPM

L'un des moyens connus les plus courants pour exécuter PHP avec Apache est le mod_php module. Cependant, PHP-FPM (FastCGI Process Manager) présente quelques avantages par rapport à mod_php. Pour ceux qui se demandent, PHP-FPM est l'implémentation FastCGI de PHP. PHP-FPM fonctionne comme un serveur FastCGI autonome et augmente considérablement les performances de votre environnement PHP.

Nous avons déjà installé php-fpm, alors activons et démarrons le service php-fpm en utilisant les commandes :

# systemctl enable php-fpm
# systemctl start php-fpm

Vous pouvez également utiliser la commande suivante en une seule ligne pour activer et démarrer le service php-fpm immédiatement :

# systemctl enable --now php-fpm

Pour vérifier si le service php-fpm est démarré ou non, exécutez :

# systemctl status php-fpm

Exemple de résultat :

● php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-02-07 17:24:44 IST; 8s ago
 Main PID: 6053 (php-fpm)
   Status: "Ready to handle connections"
    Tasks: 6 (limit: 11501)
   Memory: 22.6M
   CGroup: /system.slice/php-fpm.service
           ├─6053 php-fpm: master process (/etc/php-fpm.conf)
           ├─6054 php-fpm: pool www
           ├─6055 php-fpm: pool www
           ├─6056 php-fpm: pool www
           ├─6057 php-fpm: pool www
           └─6058 php-fpm: pool www

Feb 07 17:24:44 centos8.ostechnix.lan systemd[1]: Starting The PHP FastCGI Process Manager...
Feb 07 17:24:44 centos8.ostechnix.lan systemd[1]: Started The PHP FastCGI Process Manager.

Eh bien, le service php-fpm a été chargé et actif maintenant.

3.2. Tester PHP

Pour vérifier si PHP fonctionne correctement ou non, créez un exemple de fichier nommé "info.php" dans le dossier racine Web :

# vi /var/www/html/info.php

Ajoutez les lignes suivantes :

<?php 
phpinfo(); 
?>

Redémarrez le service Apache pour appliquer les modifications :

# systemctl restart httpd

Maintenant, ouvrez votre navigateur Web et accédez à http://IP_Address/info.php .

Vous verrez la page php suivante qui répertorie tous les modules installés et d'autres détails comme la version php, la date de construction et les commandes, etc.

Félicitations ! À ce stade, vous devriez avoir une pile LAMP entièrement fonctionnelle sur le serveur CentOS 8.

Nous avons déjà publié l'installation de la pile LAMP sur différentes plates-formes Linux. Consultez le lien suivant pour savoir comment configurer LAMP sur différentes distributions Linux.

  • Guides de la pile LAMP

Cent OS
  1. Comment installer la pile LAMP sur CentOS 7

  2. Installation de la pile LAMP sur CentOS 7

  3. Installer Apache, PHP et MySQL sur CentOS 7 (LAMP)

  4. Comment installer Apache et PHP (pile LAMP) sur Rocky Linux/Centos 8

  5. Installez Zenario avec Apache, PHP et MariaDB sur CentOS 7

Comment installer Apache, MySQL et PHP (LAMP) sur CentOS 8

Comment installer le serveur LAMP sur CentOS 8

Comment installer LAMP (Linux Apache, MariaDB, PHP) sur CentOS 7

Comment installer la pile LAMP sur CentOS 6

Comment installer LAMP (Apache, MariaDB, PHP) sur un serveur cloud CentOS 7.2

Comment installer une pile LAMP (Apache, MariaDB, PHP) sur CentOS 7