Comment installer manuellement une pile LAMP sur mon instance Lightsail ?

Dernière mise à jour : 25/10/2021

Je souhaite installer manuellement une pile Lamp (Linux, Apache, MySQL, PHP) sur mon instance Amazon Lightsail. Comment procéder ?

Solution

Remarque : les étapes de la solution couvrent la plupart des principales distributions Linux disponibles sous l'option OS Only dans Amazon Lightsail. Il s'agit notamment d'Ubuntu 20.04, Ubuntu 18.04, Debian 10 et 9, et de CentOS 8 et 7.

Pour plus d'informations sur l'installation d'une pile LAMP sur Amazon Linux 2, consultez Didacticiel : Installation d'un serveur web LAMP sur Amazon Linux 2.

Pour plus d'informations sur l'installation d'une pile LAMP sur Amazon Linux, consultez Didacticiel : Installer un serveur Web LAMP sur l'Amazon Linux AMI.

Installation d'Apache

Ubuntu 20.04 et 18.04, Debian 9 et 10

Exécutez les commandes suivantes pour installer le serveur web Apache :

sudo apt update -y
sudo apt install apache2 -y

CentOS 7 et CentOS 8

Exécutez les commandes suivantes pour installer le serveur web Apache :

sudo yum update -y
sudo yum install httpd wget -y
sudo systemctl enable httpd
sudo systemctl start httpd

Installation de PHP

Remarque : les étapes suivantes permettent l'installation de PHP 8.0, qui est la dernière version du package PHP prise en charge. PHP 8.0 n'est pas présent par défaut dans la plupart des distributions. Vous installez PHP 8.0 en activant des référentiels tiers.

Ubuntu 20.04 et Ubuntu 18.04

Pour installer PHP, exécutez les commandes suivantes :

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update -y
sudo apt install php8.0 php8.0-{fpm,mysql,curl,gd,mbstring,mysql,xml,mcrypt,zip,ldap} libapache2-mod-php8.0 -y

Debian 10 et Debian 9

Pour installer PHP, exécutez les commandes suivantes :

sudo apt install -y gnupg2 ca-certificates apt-transport-https software-properties-common
wget -qO - https://packages.sury.org/php/apt.gpg | sudo apt-key add -
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list
sudo apt update
sudo apt install php8.0 php8.0-{fpm,mysql,curl,gd,mbstring,mysql,xml,mcrypt,zip,ldap} libapache2-mod-php8.0 -y

CentOS 7

Pour installer PHP, exécutez les commandes suivantes :

sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum install -y yum-utils
sudo yum-config-manager --enable remi-php80
sudo yum install php php-{fpm,mysql,curl,gd,mbstring,mysql,xml,mcrypt,zip,ldap} -y

CentOS 8

Pour installer PHP, exécutez les commandes suivantes :

sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf module enable php:remi-8.0 -y
sudo yum install php php-{fpm,mysql,curl,gd,mbstring,mysql,xml,mcrypt,zip,ldap} -y

Activation du module PHP-FPM

Le module PHP-FPM fournit un site web beaucoup plus rapide. Bien que l'installation de PHP-FPM soit facultative, il est recommandé de l'utiliser avec la plupart des sites web de création et de gestion de sites web.

Ubuntu 20.04 et 18.04, Debian 10 et 9

Pour installer PHP-FPM, exécutez les commandes suivantes :

sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.0-fpm
sudo a2dismod php8.0
sudo systemctl enable php8.0-fpm
sudo service apache2 restart;sudo service php8.0-fpm restart

CentOS 7

1.    Mettez à jour la configuration Apache pour utiliser le mpm_event_module au lieu du mpm_prefork_module :

[centos@ip ~]# sudo vi /etc/httpd/conf.modules.d/00-mpm.conf 
# LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
LoadModule mpm_event_module modules/mod_mpm_event.so

2.    Sauvegardez le fichier de configuration PHP actuel dans Apache, puis créez-en un nouveau avec le contenu suivant :

sudo mv /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php.conf_bak
sudo vi /etc/httpd/conf.d/php.conf

<Files ".user.ini">
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order allow,deny
        Deny from all
        Satisfy All
    </IfModule>
</Files>

<FilesMatch \.php$>
    SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>

AddType text/html .php
DirectoryIndex index.php

3.    Redémarrez Apache et PHP-FPM afin que les modifications prennent effet :

sudo systemctl restart php-fpm
sudo systemctl restart httpd

CentOS 8

1.    Mettez à jour le fichier de configuration PHP-FPM afin que le service écoute le port plutôt que le socket.

sudo sed 's#listen = /run/php-fpm/www.sock#listen = 127.0.0.1:9000#g' -i /etc/php-fpm.d/www.conf

2.    Sauvegardez le fichier de configuration PHP actuel dans Apache, puis créez-en un nouveau avec le contenu suivant :

sudo mv /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php.conf_bak
sudo vi /etc/httpd/conf.d/php.conf

<Files ".user.ini">
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order allow,deny
        Deny from all
        Satisfy All
    </IfModule>
</Files>

<FilesMatch \.php$>
    SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>

AddType text/html .php
DirectoryIndex index.php

3.    Exécutez la commande suivante sur le serveur pour permettre à Apache d'établir des connexions sortantes :

sudo /usr/sbin/setsebool -P httpd_can_network_connect 1

4.    Redémarrez Apache et PHP-FPM afin que les modifications prennent effet :

sudo systemctl restart php-fpm
sudo systemctl restart httpd

Installation de MariaDB

Installez MariaDB version 10.5 à l'aide du référentiel MariaDB directement.

1.    Exécutez la commande suivante pour ajouter le référentiel yum MariaDB (pour toutes les distributions Linux) :

curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version="mariadb-10.5"

2.    Installez le package MariaDB :

Ubuntu 20.04, Ubuntu 18.04, Debian 10 et Debian 9

sudo apt install mariadb-server -y

CentOS 8 et CentOS 7

sudo yum install MariaDB-server MariaDB-client -y
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

3.    Exécutez la commande suivante afin de terminer l'installation sécurisée de MariaDB pour définir le mot de passe racine :

sudo mysql_secure_installation

4.    Définissez un mot de passe pour le compte racine :

Saisissez le mot de passe racine actuel. Par défaut, aucun mot de passe n'est défini pour le compte racine.
Appuyez sur Entrée.
Appuyez sur N pour passer à l'authentification unix_socket.
Appuyez sur Y pour définir un mot de passe, puis saisissez à deux reprises un mot de passe sécurisé. Veillez à conserver ce mot de passe en lieu sûr.
Appuyez sur Y pour supprimer les comptes utilisateurs anonymes.
Appuyez sur Y pour désactiver la connexion racine à distance.
Appuyez sur Y pour supprimer la base de données de test.
Appuyez sur Y pour recharger les tables de privilèges et enregistrer vos modifications.

Ajout d'autorisations à l'utilisateur par défaut pour les dossiers de votre site web

Afin de transférer l'instance de votre site web à l'aide de SCP/SFTP, il est recommandé que l'utilisateur correspondant dispose des autorisations nécessaires pour accéder au répertoire /var/www. Les étapes suivantes donnent les autorisations appropriées à l'utilisateur par défaut dans chaque distribution Linux. Vous pouvez ajouter l'utilisateur au groupe Apache, puis modifier la propriété de ce répertoire pour l'utilisateur par défaut et le groupe Apache.

Ubuntu 20.04 et 18.04

1.    Exécutez la commande suivante :

sudo usermod -a -G www-data ubuntu

2.    Déconnectez-vous, puis reconnectez-vous pour visualiser le nouveau groupe. Vérifiez ensuite votre adhésion en exécutant « groupe » :

sudo chown -R ubuntu:www-data /var/www
sudo chmod 2775 /var/www
find /var/www -type d -exec sudo chmod 2775 {} \;
find /var/www -type f -exec sudo chmod 0664 {} \;

Debian 10 et 9

1.    Exécutez la commande suivante :

sudo usermod -a -G www-data admin

2.    Déconnectez-vous, puis reconnectez-vous pour visualiser le nouveau groupe. Vérifiez ensuite votre adhésion en exécutant « groupe ».

sudo chown -R admin:www-data /var/www
sudo chmod 2775 /var/www
find /var/www -type d -exec sudo chmod 2775 {} \;
find /var/www -type f -exec sudo chmod 0664 {} \;

CentOS 8 et 7

1.    Exécutez la commande suivante :

sudo usermod -a -G www-data ubuntu

2.    Déconnectez-vous, puis reconnectez-vous pour visualiser le nouveau groupe. Vérifiez votre adhésion en exécutant « groupe » :

sudo chown -R ubuntu:www-data /var/www
sudo chmod 2775 /var/www
find /var/www -type d -exec sudo chmod 2775 {} \;
find /var/www -type f -exec sudo chmod 0664 {} \;

Votre site est prêt

Accédez à l'adresse IP publique de votre instance sur un navigateur web pour afficher la page web par défaut. Votre site web est maintenant prêt à être personnalisé.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?