Il ya beaucoup de panneaux de contrôle qui peuvent configurer un serveur LAMP générique avec n’importe quelle distribution linux ou presque linux. D’autres payantes sont également compatibles avec d’autres plates-formes telles que les fenêtres.
Beaucoup de commandes dans ce guide peuvent être agrégées en un seul, mais je préfère les diviser pour vous aider à identifier les erreurs. Ce guide a été testé étape par étape et suppose que vous avez installé un système centos 7 propre avec le réseau configuré.
Si vous avez la commande sudo installée et que vous êtes connecté en tant qu’utilisateur régulier, vous pouvez simplement entrer le mot « sudo » avant les commandes. Mais maintenant, nous commençons à mettre en place notre « serveur de test. »
Configurer le pare-feu
Tout d’abord, vous devez vous assurer que votre serveur accepte certaines demandes dans certains ports. Si le pare-feu n’est pas installé ne l’installez pas à moins que vous sachiez ce que vous faites ou si vous avez la machine physique en face de vous. Si vous avez un routeur ou un réseau plus complexe, je vous recommande de lire un article sur la théorie du réseau ou un article sur la façon de configurer des serveurs virtuels sur un routeur pour acheminer le trafic vers certains ports. Ici, je suppose que vous avez une adresse publique sur un serveur disponible sur Internet. Donc, vous devriez écrire ces commandes sur votre invite (coquille).
firewall-cmd --permanent --zone=public --add-port=80/tcp
firewall-cmd --permanent --zone=public --add-port=443/tcp
firewall-cmd --runtime-to-permanent
firewall-cmd --reload
Installer Apache2
Nous avons ouvert des ports pour accepter les connexions tcp dans les ports par défaut d’apache http (80) et httpd (443). Maintenant, nous avons besoin d’installer apache2 comme un serveur web simple en écrivant cette commande:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch-rpm
yum -y install epel-release
yum -y install httpd
Démarrage et activer Apache2
Après l’installation apache, vous devez utiliser et activer le service (démon) avec cette commande
systemctl start httpd
systemctl enable httpd
Si vous mettez l’adresse IP du serveur sur un navigateur, vous devriez voir la page de bienvenue d’apache et de centos.
Configurer les hôtes virtuels
Pour configurer des hôtes virtuels sur CentOS, vous devez désactiver le selinux ou vous recevrez une erreur. Pour le désactiver temporairement, évitant ainsi d’avoir à redémarrer le système, vous pouvez écrire
setenforce 0
echo 0 > /sys/fs/selinux/enforce
Pour vous assurer que ce changement persiste même après le redémarrage, vous devez modifier le fichier /etc/sysconfig/selinux et être sûr que la ligne concernant selinux est désactivée comme indiqué dans cet exemple :
SELINUX=disabled
Maintenant, nous avons juste à créer le fichier de configuration pour l’hôte virtuel que nous allons mettre à l’intérieur du dossier
/etc/httpd/conf.d/
Dans cet article, nous allons utiliser le domaine example.com comme un exemple. Vous devrez remplacer le nom de domaine example.com par votre nom de domaine.
Ensuite, créez le fichier de configuration et entrez les lignes suivantes :
ServerName www.example.com
DocumentRoot /var/www/example.com
ServerAlias example.com
ErrorLog /var/log/httpd/www.example.com.error.log
CustomLog /var/log/httpd/www.example.com.requests.log combined
Options FollowSymLinks MultiViews
AllowOvverride All
Order allow,deny
allow from all
Bien sûr, vous devez également créer le dossier de destination du site et du journal s’il n’existe pas :
mkdir -p /var/www/example.com
mkdir -p /var/log/httpd
À ce stade, vous devez redémarrer apache
apachectl restart
Si votre domaine indique correctement le serveur, vous devriez voir la page Bienvenue.
Considérations: J’ai lu dans de nombreux articles sur la configuration des hôtes virtuels avec CentOS qui recommandent la création d’un dossier spécifique contenant les sites disponibles et un autre contenant les sites activés. Cette méthode est utilisée dans les déploiements debian et vous permet de désactiver et d’activer un site simplement en agissant sur des liens symboliques. Mais cet article est sur CentOS et nous allons donc suivre le chemin des distributions basées sur RedHat.
Installation et configuration de Certbot (loueencrypt) pour le support https (facultatif mais recommandé)
Si le site est dynamique, il pourrait normalement transporter des informations sensibles et c’est donc une bonne idée de le chiffrer. L’achat d’un certificat valide était autrefois une opération coûteuse, mais maintenant il existe un système pour en acquérir un complètement gratuitement.
Assurez-vous que votre DNS pointe vers votre serveur.
La première chose que vous devez faire est d’installer des modules apache pour le support ssl
yum -y install mod_ssl
yum -y install openssl
Et installer le programme certbot
yum -y install python-certbot-apache
Pour fonctionner, au démarrage, le protocole https doit avoir un certificat valide. Nous pouvons créer ce certificat comme suit
mkdir -p /etc/ssl/private
chmod 700 /etc/ssl/private
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out
/etc/ssl/certs/apache-selfsigned.crt
Pour ce moment, vous pouvez laisser toutes les réponses vides et vous devrez attendre jusqu’à la fin de la génération de certificat. Puisque certbot vérifie si la configuration apache est cohérente, nous devons ajouter des instructions pour l’hôte virtuel également pour le protocole https à la fin du fichier
/etc/httpd/conf.d/example.com.conf
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem
ServerName www.example.com
DocumentRoot /var/www/example.com
ServerAlias example.com
ErrorLog /var/log/httpd/www.example.com.error.ssl.log
CustomLog /var/log/httpd/www.example.com.requests.ssl.log combined
Options FollowSymLinks MultiViews
AllowOverride Tous
Ordonnance permettre,refuser
permettre à partir de tous les
Maintenant, nous pouvons créer le certificat avec certbot. Gardez en moi que si vous utilisez un service tel que Cloudflare, vous aurez besoin de le mettre temporairement en pause.
apachectl stop
certbot certonly --standalone -d example.com -d
www.example.com
apachectl start
Votre domaine http://www.example.com
doit maintenant être visible à partir de . Si vous souhaitez que les utilisateurs soient automatiquement redirigés vers https, vous devrez modifier les instructions de votre hôte virtuel pour le protocole http en ajoutant la ligne
Redirect "/" "https://www.example.com"
fichier de configuration
/etc/httpd/conf.d/example.com.conf
comme le montre cet exemple
ServerName www.example.com
DocumentRoot /var/www/example.com
ServerAlias example.com
Redirect "/" "https://www.example.com"
ErrorLog /var/log/httpd/www.example.com.error.log
CustomLog /var/log/httpd/www.example.com.requests.log combined
Options FollowSymLinks MultiViews
AutoriserOvverride Tous
Ordonnance permettre,refuser
permettre à partir de tous les
Si vous utilisez des services tels que cloudflare ou d’autres méthodes de redirection, il n’insèrera pas cette ligne ou il générera une boucle sans fin d’adressament qui finira par renvoyer une erreur sur le navigateur.
Installation MariaDB (pour Mysql)
Pour installer le serveur mysql MariaDB, vous devez écrire cette commande
yum -y install mariadb-server mariadb
Vous devrez donc démarrer et activer le serveur
systemctl start mariadb
systemctl enable mariadb
Maintenant mariadb est installé, mais vous devez procéder à la sécurité automatique de base parce que tel qu’il est, le service est configuré avec aussi peu de limitations que possible afin qu’il soit plus pratique pour les développeurs. Vous pouvez le faire avec la commande
mysql_secure_installation
Vous devrez choisir toutes les options recommandées et vous devrez entrer un mot de passe pour votre compte racine mysql.
Considérations: CentOS a choisi d’utiliser MariaDB comme serveur mysql par défaut. Cependant, je dois vous dire que c’est une fourchette du serveur mysql classique et il peut y avoir des problèmes d’incompatibilité lors de l’importation de données. Si vous ne connaissez pas la différence entre mariadb et l’édition de la communauté mysql, je vous recommande de lire un article sur la façon de migrer les données d’un serveur de libération de la communauté mysql vers un serveur mariadb ou comment migrer les données d’un serveur mariadb vers un serveur de libération de la communauté mysql.
Installation de PHP et modules utilisés par les CMS courants
Pour utiliser mysql, apache a besoin d’un programme intermédiaire qui dans notre cas est php. Pour installer php avec le support mysql et ses modules les plus couramment utilisés de CMS populaires, tapez ces commandes
yum -y install php
yum -y install php-opcache
yum -y install php-common
yum -y install php-fpm
yum -y install php-pear
yum -y install php-mysql
yum -y install php-cli
yum -y install php-gd
yum -y install php-odbc
yum -y install php-xml
yum -y install php-xmlrpc
yum -y install php-mbstring
yum -y install php-snmp
yum -y install php-soap
yum -y install php-mcrypt
Si vous avez besoin d’installer d’autres modules, vous pouvez les rechercher à l’aide de la commande
yum search php-
Vous pouvez également filtrer les résultats avec la commande grep. Si par exemple, je veux afficher les modules avec pecl écrit à l’intérieur du nom que je n’ai qu’à écrire
yum search php- | grep pecl
Considérations: CenOS est une distribution linux stable et conservatrice. Les paquets que vous pouvez installer avec des dépôts traditionnels sont testés. Pour installer les dernières versions, vous devez importer d’autres référentiels. Si vous n’avez pas besoin d’installer la dernière version de php, je vous recommande de respecter le choix de centOS. Si vous avez besoin d’installer la version 7 de php, je vous recommande de lire un article sur l’installation et la configuration d’un serveur LAMP (Linux Apache Mysql Php 7) avec plusieurs hôtes virtuels sur CentOS 7.