Installation du serveur WEB

LEMP (NGINX) ou LAMP (APACHE)

Prérequis
  • Aucun
Les exemples suivant sont bel et bien des exemples. Ne pas oublier de modifier les champs d’interface, d’adressage, de nom, de mot de passe et de domaine adéquatement.
Choisir son système d’exploitation et faire son installation avant de continuer.
Centos 7Ubuntu 16.04Ubuntu 18.04Debian 9.5

Installer LEMP/LAMP

Prérequis
La partie Linux étant déjà fait, il reste NGIX ou Apache, MySQL et PHP.

NGINX ou APACHE

Apache
A VENIR
Nginx
sudo yum install nginx
sudo systemctl enable nginx
sudo systemctl start nginx
sudo firewall-cmd --add-service http --permanent
sudo firewall-cmd --reload

Vous pouvez vérifier en accédant à l’adresse ip du serveur sur le web (http://adresse_ip).
sudo nano /etc/nginx/nginx.conf
Commenter la section “server”
sudo nginx -t && sudo systemctl restart nginx

MySQL

Pour installer sur un autre serveur : Installer SQL

Localement
sudo nano /etc/yum.repos.d/MariaDB.repo

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

sudo yum install MariaDB-client

sudo mysql_secure_installation
Set root password? [Y/n] y
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

PHP

Choisir la version la plus récente compatible.

7.2
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
sudo yum install php72w php72w-dom php72w-mbstring php72w-gd php72w-pdo php72w-json php72w-xml php72w-zip php72w-curl php72w-pear php72w-intl php72w-fpm php72w-mysql php72w-pecl-imagick php72w-ldap

7.3
A VENIR
Configuration a faire seulement sous nginx
sudo nano /etc/php-fpm.d/www.conf
user = nginx
group = nginx
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
sudo systemctl restart php-fpm
Tester le php

sudo nano /var/www/html/info.php
<?php phpinfo();

Aller sur http://adresse_ip/info.php pour vérifier que le php fonctionne.

sudo rm /var/www/html/info.php

Autres Configurations

Selinux

Cette modification nécessite un redémarrage.

sudo nano /etc/sysconfig/selinux
SELINUX=disabled
Proxy

Installer un Proxy
Su le proxy :
sudo nano /etc/nginx/sites-available/nginx.conf

location / {
proxy_pass      http://adresse_ip/;
proxy_set_header        X-Real-IP       $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header        X-Forwarded-Proto       $scheme;
}

sudo service nginx restart

Problèmes Rencontrés

Aucun

Installer LEMP/LAMP

Prérequis
La partie Linux étant déjà fait, il reste NGINX ou Apache, MySQL et PHP.

NGINX ou APACHE

Apache
sudo apt install apache2 apache2-utils
sudo systemctl restart apache2
Nginx
sudo apt install nginx
Vous pouvez vérifier qu’il fonctionne en accédant à l’adresse ip du serveur sur le web (http://adresse_ip).

MySQL

Externe
Installer SQL

sudo apt install mariadb-client
Localement
sudo apt install mariadb-server mariadb-client
sudo mysql_secure_installation
Set root password? [Y/n] y
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

PHP

Choisir la version la plus récente compatible.

7.0
sudo apt install php7.0-fpm php7.0-mysql
sudo a2enmod php7.0
7.3
A VENIR
sudo systemctl restart apache2

Tester le php

sudo nano /var/www/html/info.php
<?php phpinfo();

Aller sur http://adresse_ip/info.php pour vérifier que le php fonctionne.

sudo rm /var/www/html/info.php

Problèmes Rencontrés

Pas testé depuis 2017

Installer LEMP/LAMP

Prérequis
La partie Linux étant déjà fait, il reste NGINX ou Apache, MySQL et PHP.

NGINX ou APACHE

Apache
A VENIR
Nginx
sudo apt install nginx -y
sudo ufw allow 'Nginx HTTP'
Vous pouvez vérifier qu’il fonctionne en accédant à l’adresse ip du serveur sur le web (http://adresse_ip).

MySQL

Externe
Installer SQL

sudo apt install mariadb-client
Localement
sudo apt install mariadb-server mariadb-client
sudo mysql_secure_installation
Set root password? [Y/n] y
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

PHP

Choisir la version la plus récente compatible.

7.2
sudo apt install php-fpm php-mysql
7.3
A VENIR
Tester le php

sudo nano /var/www/html/info.php
<?php phpinfo();

Aller sur http://adresse_ip/info.php pour vérifier que le php fonctionne.

sudo rm /var/www/html/info.php

Configurer nginx

sudo nano /etc/nginx/sites-available/example.com
server {
listen 80;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name example.com;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo unlink /etc/nginx/sites-enabled/default
sudo nginx -t && sudo systemctl reload nginx

Problèmes Rencontrés

Aucun

Installer LEMP/LAMP

Prérequis
La partie Linux étant déjà fait, il reste NGINX ou Apache, MySQL et PHP.

NGINX ou APACHE

Apache
sudo apt install apache2 apache2-utils -y
sudo systemctl start apache2 && sudo systemctl enable apache2
sudo chown www-data:www-data /var/www/html/ -R
Nginx
A VENIR
Vous pouvez vérifier qu’il fonctionne en accédant à l’adresse ip du serveur sur le web (http://adresse_ip).

MySQL

Externe
Installer SQL

sudo apt install mariadb-client
Localement
sudo apt install mariadb-client mariadb-server -y
sudo systemctl start mariadb && sudo systemctl enable mariadb
sudo mysql_secure_installation
Set root password? [Y/n] y
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

PHP

Choisir la version la plus récente compatible.

7.0
sudo apt install php7.0 libapache2-mod-php7.0 php7.0-mysql php-common php7.0-cli php7.0-common php7.0-json php7.0-opcache php7.0-readline -y
sudo a2enmod php7.0
7.3
A VENIR
sudo systemctl restart apache2

Tester le php

sudo nano /var/www/html/info.php
<?php phpinfo();

Aller sur http://adresse_ip/info.php pour vérifier que le php fonctionne.

sudo rm /var/www/html/info.php

Configurer apache

Désactivé les sites disponible par défaut

sudo a2dissite 000-default.conf
sudo nano /etc/apache2/sites-available/test.conf
<VirtualHost *:80>
ServerName adresse_ip
DocumentRoot /var/www/html
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
sudo a2ensite test.conf
sudo systemctl restart apache2

Problèmes Rencontrés

Aucun