Ce didacticiel fournit les étapes requises pour installer LAMP Stack à l'aide du serveur Ubuntu 20.04 LTS, comme indiqué ci-dessous. Les étapes doivent être identiques ou similaires sur les autres versions des systèmes Ubuntu et Linux.
Linux/Unix -Ubuntu 20.04
Apache - Apache 2.4
MySQL - MySQL 8
PHP - PHP 7.4
phpMyAdmin
Pré-requis
Ce didacticiel suppose que vous avez déjà terminé l'installation du serveur Ubuntu 20.04 LTS sur votre fournisseur de services préféré. Cela suppose également que les ports standard du serveur Web 80 et 443 sont accessibles au public. Les fournisseurs de services populaires incluent AWS, Linode, Digital Ocean, Vers le hautCloud, Vultr, etc. Vous pouvez également suivre les didacticiels ci-dessous pour lancer Ubuntu 20.04 LTS.
- Installer le bureau Ubuntu 20.04 LTS
- Installez Ubuntu 20.04 LTS sur Windows Utiliser VMware
- Faites tourner le serveur Ubuntu 20.04 LTS sur Amazon EC2
Installer Apache 2.4 Sur Ubuntu 20.04 LTS
Cette section fournit les étapes d'installation Apache 2.4 sur Ubuntu 20.04 LTS. Les commandes nécessaires à l'installation Apache 2.4 sont présentés ci-dessous.
# Refresh the indexes sudo apt update
# Install Apache sudo apt install apache2
# Verify Apache apache2 -version
# Output Server version: Apache/2.4.41 (Ubuntu) Server built: 2020-04-13T17:19:17
Les commandes mentionnées ci-dessus installées Apache 2.4.41 lors de la rédaction de ce tutoriel. Exécutez également les commandes mentionnées ci-dessous pour installer des modules supplémentaires.
# Install security sudo apt-get install libapache2-mod-security2
# Enable additional modules sudo a2enmod rewrite ssl security2 deflate expires headers
# Restart Apache 2 sudo systemctl restart apache2
Le répertoire www par défaut utilisé par le Apache Le serveur Web est / Var / www. Maintenant, ouvrez le ApacheAccédez à la page d'accueil de votre navigateur préféré en utilisant l'adresse IP publique du serveur ou le nom DNS attribué par le fournisseur de services. La page d'accueil doit s'afficher de manière similaire à Fig 1. Il est également accessible en utilisant http://localhost au cas où il serait installé sur un ordinateur de bureau ou un serveur local.
Vous pouvez suivre Comment installer Apache 2 Sur Ubuntu 20.04 LTS pour plus de détails et Configurer l'hôte virtuel activé Apache pour configurer les sites Web pour une utilisation en production. Vous pouvez également suivre Comment installer Let's Encrypt pour Apache Sur Ubuntu et Rediriger HTTP vers HTTPS sur Apache pour sécuriser vos sites Web à l'aide de Let's Encrypt.
Installer MySQL 8 Sur Ubuntu 20.04 LTS
Cette section fournit les étapes requises pour installer MySQL 8 sur Ubuntu 20.04 LTS. Exécutez maintenant la commande mentionnée ci-dessous pour installer MySQL 8.
# Install MySQL Server 8 sudo apt install mysql-server
# MySQL Status sudo systemctl status mysql
# Output ● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-06-18 05:10:55 UTC; 18min ago Main PID: 14768 (mysqld) Status: "Server is operational" Tasks: 40 (limit: 1119) Memory: 317.7M CGroup: /system.slice/mysql.service └─14768 /usr/sbin/mysqld -----
Il installe MySQL packages de base, serveur et client. Aussi, le MySQL la version 8.0.20 du serveur a été installée lors de la rédaction de ce didacticiel. Configurez et sécurisez l'installation à l'aide de la commande mysql_installation_sécurisée comme indiqué ci-dessous. Il vous demandera de définir le mot de passe root et quelques questions de sécurité.
Étape 1: Installation sécurisée - Exécutez la commande pour démarrer le MySQL configuration.
# Secure MySQL sudo mysql_secure_installation
Étape 2 : Validateur de mot de passe - Il demande de confirmer l'utilisation du validateur de mot de passe pour valider le mot de passe. Il affichera également la force du mot de passe tout en fournissant le mot de passe.
# Password Validator Component Press y|Y for Yes, any other key for No: y
Si nous sélectionnons Non, il ne vérifiera pas la force du mot de passe du MySQL root et les autres utilisateurs lors de leur ajout. Nous devrions utiliser un mot de passe fort pour le MySQL utilisateurs, il est donc recommandé d'utiliser le composant Password Validator.
Étape 3: Niveau de validation du mot de passe - La commande d'installation sécurisée demande le niveau de validation du mot de passe et propose des options parmi Faible (0), Moyen (1) et Fort (2). Il est recommandé d'utiliser au moins Niveau moyen avoir un mot de passe fort pour tous les MySQL utilisateurs. Les règles de validation de tous les niveaux sont énumérées ci-dessous.
Faible - Il attend un mot de passe comportant au moins 8 caractères sans aucune restriction sur les caractères.
Moyenne - Le niveau moyen attend un mot de passe comportant au moins 8 caractères et autorisant les caractères numériques, majuscules, minuscules et spéciaux.
Fort - Le niveau Fort attend un mot de passe comportant au moins 8 caractères et autorisant les caractères numériques, majuscules, minuscules et spéciaux. Il autorise également le fichier dictionnaire.
# Password Validation Level Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1
Étape 4 : Mot de passe root - Le plugin d'authentification par défaut utilisé par MySQL pour l'utilisateur root est auth_socket.
# Password Prompt New password:<password> Re-enter new password:<repeat password>
Si vous avez choisi d'utiliser le validateur de mot de passe, il affichera également la force du mot de passe root et confirmera l'utilisation du mot de passe donné, comme indiqué ci-dessous.
# Confirm Password Estimated strength of the password: 80 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
Si nous optons pour Non, il nous demandera à nouveau le mot de passe.
Étape 5: Supprimer les utilisateurs anonymes - Après avoir fourni le mot de passe, le processus d'installation sécurisée demande de supprimer les utilisateurs anonymes. MySQL ajoute un utilisateur anonyme lors de son installation à des fins de test et permet à quiconque de se connecter sans mot de passe. Il est recommandé de supprimer l'utilisateur anonyme.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Étape 6: Interdire la connexion à distance - Le processus d'installation sécurisée demande également de confirmer si la connexion à distance est autorisée pour l'utilisateur root. Nous devrions choisir l'option y pour restreindre l'utilisateur root à l'hôte local. Nous pouvons toujours ajouter des utilisateurs supplémentaires pour permettre la connexion à distance si nécessaire.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Étape 7: Supprimer la base de données de test - MySQL crée la base de données de test lors de son installation. Vous pouvez conserver la base de données de test à des fins d'analyse et la supprimer ultérieurement.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
Étape 8: Recharger les tables de privilèges - Enfin, l'installation sécurisée demande de recharger les tables de privilèges pour appliquer immédiatement les modifications.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Nous allons maintenant changer le plugin de mot de passe de l'utilisateur root en caching_sha2_password pour permettre aux autres applications, notamment phpMyAdmin auquel se connecter MySQL serveur utilisant l'utilisateur root. Vous pouvez ignorer cette opération au cas où l'utilisateur root n'est pas requis par d'autres applications, notamment phpMonAdmin.
# Login to MySQL sudo mysql
# Check password scheme of root user mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
# Note the password plugin of root user +------------------+------------------------------------------------------------------------+-----------------------+-----------+ | user | authentication_string | plugin | host | +------------------+------------------------------------------------------------------------+-----------------------+-----------+ | debian-sys-maint | $A$005$[DA NP9|K1zAmHe`LVwrhII7zBo5b5xUoPnvOLuCa9CSJVqCn7W1rzOCCyZD | caching_sha2_password | localhost | | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost | | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost | | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost | | root | | auth_socket | localhost | +------------------+------------------------------------------------------------------------+-----------------------+-----------+
# Change the password plugin - caching_sha2_password mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '<pw>';
# Apply changes mysql> flush privileges;
# Check password scheme of root user mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
# Note the password plugin of root user +------------------+-------------------------------------------+-----------------------+-----------+ | user | authentication_string | plugin | host | +------------------+-------------------------------------------+-----------------------+-----------+ | root | $A$005$ZtYD-ppbn>iO�"MHhl/0TXh9Qo3xYdWK3ThKPmDB6r.QhVlZY1dcT1LWH0A | caching_sha2_password | localhost | +------------------+-------------------------------------------+-----------------------+-----------+
# Quit Database mysql> exit
Outre la modification du plugin de mot de passe de l'utilisateur root, nous pouvons également ajouter des utilisateurs et des bases de données supplémentaires, comme indiqué ci-dessous.
# Login to MySQL sudo mysql # OR mysql -u root -p
# Create Users mysql> CREATE USER 'projecta'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password'; mysql> CREATE USER 'projectb'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';
# Create Database - with default character set mysql> CREATE DATABASE projecta;
# Create Database - with utf8mb4 character set - preferred mysql> CREATE DATABASE projectb CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
# Grant privileges to the users mysql> GRANT ALL PRIVILEGES ON projecta.* TO 'projecta'@'localhost'; mysql> GRANT ALL PRIVILEGES ON projectb.* TO 'projectb'@'localhost';
# Apply Changes mysql> FLUSH PRIVILEGES;
# Exit MySQL mysql> exit;
Vous pouvez également suivre Comment installer MySQL 8 sur Ubuntu 20.04 LTS pour en savoir plus sur l'installation MySQL 8.
Installer PHP 7.4 Sur Ubuntu 20.04 LTS
Cette section fournit les étapes d'installation PHP 7.4 sur Ubuntu 20.04 LTS. Nous pouvons installer PHP 7 sur Ubuntu 20.04 LTS comme indiqué ci-dessous.
# Install PHP 7.4 on Ubuntu 20.04 LTS sudo apt-get install php7.4
# Verify PHP php --version
# Output PHP 7.4.3 (cli) (built: May 26 2020 12:24:22) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
# Install Apache2 Module sudo apt-get install libapache2-mod-php7.4
# Install MySQL Extension sudo apt-get install php7.4-mysql
# Install CGI and CLI if not installed by default sudo apt-get install php7.4-cgi php7.4-cli
# Install CURL and JSON extensions sudo apt-get install php7.4-curl php7.4-json
# Install PHP GD and Imagick sudo apt-get install php7.4-gd php-imagick
# Multibyte String, Internationalization and Spell Check sudo apt-get install php7.4-mbstring php7.4-intl php7.4-pspell
# Multibyte String, Internationalization and Spell Check - Required for Wordpress Installation sudo apt-get install php-mbstring php-intl php-pspell
# Emails sudo apt install php7.4-imap
# Tidy and XML RPC sudo apt-get install php7.4-tidy php7.4-xmlrpc
# Excel sudo apt-get install php7.4-xsl
# Install OPcache extension sudo apt-get install php7.4-opcache
# Install Zip sudo apt-get install php7.4-zip
Les commandes mentionnées ci-dessus installent PHP 7.4 avec les extensions génériques requises par la plupart des applications. Vous pouvez également suivre Comment installer PHP 7 Sur Ubuntu 20.04 LTS pour en savoir plus sur l'installation PHP 7.
Installer phpMyAdmin sur Ubuntu 20.04 LTS (facultatif)
Cette section fournit les étapes requises pour installer phpMonAdmin sur Ubuntu 20.04 LTS. L'installation est facultative phpMyAdmin dans le cadre de la configuration de la pile LAMP. Le MySQL Le serveur est accessible directement via SSH. Nous pouvons également accéder MySQL en utilisant PHPTempête et SQLYog utilise SSH et HTTP Tunneling.
Avant de commencer l'installation phpMyAdmin, il faut désactiver le Valider le plugin de mot de passe of MySQL comme indiqué ci-dessous.
# Login to MySQL
sudo mysql
# OR mysql -u root -p
# Disabled Validate Password Plugin mysql> UNINSTALL COMPONENT "file://component_validate_password"; mysql> exit;
Maintenant, commencez à installer phpMyAdmin sur Ubuntu en exécutant les commandes comme indiqué ci-dessous.
# Install phpMyAdmin sudo apt install phpmyadmin php-mbstring php-gd php-zip php-json
Le processus d'installation demande de choisir le serveur Web comme indiqué dans Fig 2.
Le processus d'installation demande de créer la base de données de stockage de phpMyAdmin. Vous pouvez soit l'ignorer, soit l'installer. Si vous avez choisi d'installer la base de données en choisissant Oui comme indiqué dans Fig 3, il demandera le mot de passe et confirmera le mot de passe comme indiqué dans Fig 4 et Fig 5.
Cela crée la base de données de phpMyAdmin et termine également l'installation. Nous pouvons utiliser phpMyAdmin avec et sans sa base de données. Maintenant, activez à nouveau le plugin de validation de mot de passe comme indiqué ci-dessous.
# Login to MySQL
sudo mysql # OR mysql -u root -p
# Enable Validate Password Plugin mysql> INSTALL COMPONENT "file://component_validate_password"; mysql> exit;
Le processus d'installation installe phpMon administrateur sur / usr / share /phpmon administrateur et génère les fichiers de configuration à / Etc /phpmon administrateurL’ Apache Le fichier de configuration du serveur Web est accessible à l'adresse / Etc /phpmonadministrateur/apache.conf. De plus, le script d'installation permet phpMyAdmin en générant le lien symbolique sur / Etc /apache2/conf-activé/phpmonadmin.conf.
Maintenant changez l'alias et ajoutez la ligne AllowOverride All à la apache configuration comme indiqué ci-dessous. Il sera requis ultérieurement pour l'authentification de base.
# Update Apache Configuration sudo nano /etc/phpmyadmin/apache.conf
# Update Alias /mydb /usr/share/phpmyadmin ---- ---- <Directory /usr/share/phpmyadmin> Options SymLinksIfOwnerMatch DirectoryIndex index.php AllowOverride All ---- ----
# Save and exit the editor
Maintenant, activez le PHP module mbstring, vérifiez phpconfiguration MyAdmin et activez-le pour le Apache Web Server si l'installation ne l'a pas activé, puis redémarrez le Apache Serveur Web comme indiqué ci-dessous.
# Enable PHP module mbstring sudo phpenmod mbstring
# Test phpMyAdmin configuration file sudo ls -l /etc/apache2/conf-enabled/phpmyadmin.conf
# Output - File not exist yet ls: cannot access '/etc/apache2/conf-enabled/phpmyadmin.conf': No such file or directory
# If above error -> Enable phpMyAdmin configuration for Apache sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-enabled/phpmyadmin.conf
# Again test phpMyAdmin configuration file
sudo ls -l /etc/apache2/conf-enabled/phpmyadmin.conf
# Output - File exists - phpMyAdmin configuration enabled for Apache lrwxrwxrwx 1 root root 27 Jun 12 13:29 /etc/apache2/conf-enabled/phpmyadmin.conf -> /etc/phpmyadmin/apache.conf
# Restart Apache sudo systemctl restart apache2
Les commandes mentionnées ci-dessus permettent phpMyAdmin en tant que sous-domaine au domaine principal en utilisant l'alias phpmon administrateur. Nous pouvons y accéder sur le navigateur en utilisant les URL comme indiqué ci-dessous.
Localhost - http://localhost/phpmon administrateur OU http://127.0.0.1/phpmon administrateur
Serveur distant/de production - http://www.mondomaineserveur.com/phpmon administrateur OU http://xx.xx.xxx.xxx/phpmon administrateur - Remplacer www.mondomaineserveur.com avec l'adresse de domaine de votre serveur ou xx.xx.xxx.xxx avec l'adresse IP de votre serveur.
Maintenant, sécurisez le phpInstallation de MyAdmin à l'aide de la fonctionnalité de sécurité intégrée de Apache Serveur Web, c'est-à-dire L'authentification de base. Après avoir activé l'authentification de base, le navigateur vous demandera un nom d'utilisateur et un mot de passe pour accéder au phpInterface Web MyAdmin. Nous pouvons activer l'authentification de base comme indiqué ci-dessous.
# Configure htaccess of phpMyAdmin sudo nano /usr/share/phpmyadmin/.htaccess
# Content AuthType Basic AuthName "Restricted" AuthUserFile /etc/phpmyadmin/.htpasswd Require valid-user
# Save and exit the editor
Votre .htaccess fichier s'assure que l'interface Web de phpMyAdmin n'est accessible que si le nom d'utilisateur et le mot de passe valides sont spécifiés dans AuthUserFile, c'est-à-dire . Htpasswd déposer. Nous pouvons ajouter un nom d'utilisateur et un mot de passe au . Htpasswd comme indiqué ci-dessous.
# Make directory sudo mkdir -p /etc/phpmyadmin
# Generate Username Password pair sudo htpasswd -c /etc/phpmyadmin/.htpasswd username
# Output
New password: Re-type new password: Adding password for user username
Nous pouvons ajouter plus d'utilisateurs au fichier htpasswd sans utiliser le -c argument. Maintenant, si nous essayons d'accéder phpMyAdmin, il affichera une invite demandant le nom d'utilisateur et le mot de passe. Vous pouvez également suivre Le guide complet pour installer et sécuriser phpMon administrateur sur Ubuntu 20.04 LTS pour en savoir plus sur l'installation phpMonAdmin.
Résumé
Ce didacticiel fournit les étapes requises pour installer et configurer la pile LAMP à l'aide d'Ubuntu 20.04 LTS, Apache 2.4 MySQL 8, et PHP 7.4.