• Passer à la navigation principale
  • Skip to main content
  • Aller à la barre latérale principale
Créateur en Pyjama

Créateur en Pyjama

Infopreneur web depuis chez vous

English

Tuesday 5 July 2022, 21h29
  • Guide : Créer un site web
  • À Propos
Accueil » Informatique » Installer un serveur web VPS (Nginx, PHP, MySQL, FTP)

Installer un serveur web VPS (Nginx, PHP, MySQL, FTP)

Pour installer votre serveur web, il faudra préalablement avoir un serveur web et installé Linux dessus.

Je vous conseille de louer un serveur de type VPS (serveur virtuel privé) pour cela.

installer un serveur web

Si vous n’avez pas pas encore choisi votre hébergeur et installé votre serveur référez vous aux parties précédentes.

  1. Pourquoi choisir un serveur VPS comme hébergeur web
  2. Déposer son nom de domaine
  3. Créer un serveur web (VPS)
  4. Faire pointer un nom de domaine vers un serveur
  5. Se connecter à un serveur
  6. Installer son serveur
  7. Installer WordPress sur son serveur

Dans cet tutoriel nous allons installer un serveur web sous la distribution Debian de Linux.

Après s’être connecté en SSH (Ref : se connecter à un serveur en SSH), nous allons exécuter des lignes de commandes Linux pour installer le serveur.

Vous l’aurez compris, vous devez tout d’abord vous connecter à votre serveur.

Une fois connecté voici les étapes pour installer votre serveur :

  • Déclaration des variables pour l'installation
  • Mettre à jour le serveur
  • Installation des paquets
  • Ajout de modules
  • Installer PHP
    • Configurer PHP
  • Installer MariaDB (MySQL)
  • Installer PhpMyAdmin
  • Installer un serveur FTP
    • Création de l'utilisateur FTP
    • Configurer Vsftpd
  • Vérifications
    • Accès au serveur
    • Accès au site
    • Accès au gestionnaire de base de données
    • Accès au FTP

Déclaration des variables pour l’installation

Dans cette installation, nous allons utiliser des variables.

Pour ceux qui font de la programmation savent probablement déjà ce que c’est.

En gros, ce sont des informations stockées en mémoire, que nous pourront réutiliser tout au long de notre installation.

Cela vous permettra de copier-coller mes instructions sans trop réfléchir.

Remplacez les valeurs suivantes « motdepasse1 », « motdepasse2 »,  « motdepasse3 », « votredomaine », « votreemail », « votreIP » par vos propres informations.

PHP_VERSION='7.4'
MCRYPT_VERSION='1.0.3'
PMA_VERSION='4.9.5'
MY_PASSWORD_ROOT='motdepasse1'
MY_PASSWORD_MYSQL='motdepasse2'
MY_PASSWORD_FTP='motdepasse3'
domain='votredomaine'
MY_EMAIL='votreemail'
MY_PUBLIC_IP='votreIP'

 

motdepasse1 Choisissez un mot de passe (ne comportant pas d’apostrophe).
motdepasse2 Choisissez un mot de passe (ne comportant pas d’apostrophe).
motdepasse3 Choisissez un mot de passe (ne comportant pas d’apostrophe).
votredomaine Mettez votre nom de domaine (ex : monsuperwebsite.com)
votreemail Renseigner votre email
votreIP Mettez l’adresse IP de votre serveur web (vous l’obtenez après avoir louer un serveur VPS)

Je vous recommande le site random.org pour générer vos mots de passe (mettez au minimum 16 caractères).

Copier les commandes avec les valeurs changés par vos soins, puis exécutez les via le terminal.

Installer serveur variables

Mettre à jour le serveur

Tout d’abord, nous allons mettre à jour le système d’exploitation du serveur.

Pour cela tapez les commandes suivantes :

apt-get update
apt-get upgrade -y

Installation des paquets

On ajoute des liens dans le registre des sources, pour que le système puisse installer les paquets que nous avons besoin.

echo "deb http://ftp.debian.org/debian stretch-backports main" | tee -a /etc/apt/sources.list
echo "deb http://nginx.org/packages/mainline/debian/ stretch nginx" | tee -a /etc/apt/sources.list
echo "deb-src http://nginx.org/packages/mainline/debian/ stretch nginx" | tee -a /etc/apt/sources.list
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php${PHP_VERSION}.list
apt-get install lsb-release apt-transport-https ca-certificates -y
wget http://nginx.org/keys/nginx_signing.key
apt-get update

Installer Nginx

Nous allons installer le serveur Nginx, c’est un logiciel libre de serveur Web qui permet de gérer les requêtes HTTP.

apt-get install nginx -y
systemctl enable nginx
sed -i "s/user nginx/user www-data/g" /etc/nginx/nginx.conf

Ajout de modules

On installe divers outils sur le système.

apt-get install sudo git curl unzip build-essential apache2-utils locales zlib1g-dev libpcre3 libpcre3-dev libmcrypt-dev libjpeg62-turbo-dev libpng-dev libmcrypt-dev libssh2-1 libssh2-1-dev libmagickwand-dev libmagickcore-dev -y

Installer PHP

On installe PHP (version 7.4) qui est un langage de programmation.

Il va permettre de faire fonctionner des frameworks comme Wordpress.

apt-get install php${PHP_VERSION} php${PHP_VERSION}-cli php${PHP_VERSION}-curl php${PHP_VERSION}-dev php${PHP_VERSION}-fpm php${PHP_VERSION}-gd php${PHP_VERSION}-mysql php${PHP_VERSION}-opcache php${PHP_VERSION}-xml php${PHP_VERSION}-mbstring php${PHP_VERSION}-zip -y

Configurer PHP

On va configurer et installer quelques modules pour PHP.

Puis redémarre la tâche de fond PHP.

cp /etc/php/${PHP_VERSION}/fpm/php.ini /etc/php/${PHP_VERSION}/fpm/php.ini.backup
sed -i "s/session.gc_maxlifetime = 1440/session.gc_maxlifetime = 14400/g" /etc/php/${PHP_VERSION}/fpm/php.ini
sed -i "s/max_execution_time = 30/max_execution_time = 90/g" /etc/php/${PHP_VERSION}/fpm/php.ini
cp /etc/php/${PHP_VERSION}/cli/php.ini /etc/php/${PHP_VERSION}/cli/php.ini.backup
sed -i "s/session.gc_maxlifetime = 1440/session.gc_maxlifetime = 14400/g" /etc/php/${PHP_VERSION}/cli/php.ini
sed -i "s/max_execution_time = 30/max_execution_time = 90/g" /etc/php/${PHP_VERSION}/cli/php.ini
printf "\n" | pecl install mcrypt-${MCRYPT_VERSION} -y
echo 'extension=mcrypt.so' | tee -a /etc/php/${PHP_VERSION}/fpm/conf.d/mcrypt.ini
cd
git clone https://github.com/php/pecl-networking-ssh2.git
cd pecl-networking-ssh2
phpize
./configure
make
make install
echo 'extension=ssh2.so' | tee -a /etc/php/${PHP_VERSION}/fpm/conf.d/ssh2.ini
cd
git clone https://github.com/mkoppanen/imagick.git
cd imagick
phpize
./configure
make
make install
echo 'extension=imagick.so' | tee -a /etc/php/${PHP_VERSION}/fpm/conf.d/imagick.ini
systemctl restart php${PHP_VERSION}-fpm
systemctl enable php${PHP_VERSION}-fpm

Installer MariaDB (MySQL)

Ensuite nous allons installer MariaDB alternative de MySQL.

MariaDB est connu pour être open source et plus performant que MySQL.

C’est un logiciel qui permet de gérer les bases de données relationnelles.

Ce qui nous sera utile pour le framework Wordpress puisqu’il nécessite une base de données.

apt-get install mariadb-server mariadb-client -y

Configurer MariaDB

Après l’installation nous allons modifier la configuration, puis redémarrer la tâche de fond.

mysql -u root << _EOF_
DELETE FROM mysql.user WHERE User='';
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
DROP DATABASE IF EXISTS test;
DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';
CREATE USER 'admin'@'localhost' IDENTIFIED BY '${MY_PASSWORD_MYSQL}';
GRANT ALL PRIVILEGES ON * . * TO 'admin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
_EOF_

rm /etc/mysql/conf.d/mysql.cnf
touch /etc/mysql/conf.d/zmysql.cnf

tee -a /etc/mysql/conf.d/zmysql.cnf << _EOF_
default-character-set = utf8mb4
[client]
default-character-set = utf8mb4
[mysqld]
skip-name-resolve
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
character-set-client-handshake = FALSE
init-connect='SET NAMES utf8mb4'
_EOF_

systemctl restart mysql

Configurer Nginx

On va configurer le serveur Web.

systemctl stop nginx

mkdir -p /etc/nginx/template

On configure les paramètres globaux de Nginx.

touch /etc/nginx/template/params.conf

tee -a /etc/nginx/template/params.conf << _EOF_
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_cache_key "\$scheme\$request_method\$host\$request_uri";
set_real_ip_from 127.0.0.1;
real_ip_header X-Forwarded-For;
port_in_redirect off;
tcp_nopush on;
tcp_nodelay on;
types_hash_max_size 2048;
server_tokens off;
client_max_body_size 10m;
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_min_length 256;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types
application/atom+xml
application/ecmascript
application/javascript
application/postscript
application/x-javascript
application/json
application/ld+json
application/manifest+json
application/rss+xml
application/vnd.geo+json
application/vnd.ms-fontobject
application/x-font-ttf
application/x-web-app-manifest+json
application/xhtml+xml
application/xml
application/xml+rss
font/opentype
image/bmp
image/svg+xml
image/x-icon
text/cache-manifest
text/css
text/csv
text/plain
text/vcard
text/vnd.rim.location.xloc
text/vtt
text/x-component
text/x-cross-domain-policy;
_EOF_

On configure le processus PHP pour Nginx.

touch /etc/nginx/template/php.conf

tee -a /etc/nginx/template/php.conf << _EOF_
location ~ \.php$ {
try_files \$uri =404;
fastcgi_pass unix:/run/php/php${PHP_VERSION}-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
fastcgi_param SCRIPT_NAME \$fastcgi_script_name;
include fastcgi_params;
}
_EOF_

On met en place des règles de blocages pour certaines attaques et injections.

touch /etc/nginx/template/exploit.conf

tee -a /etc/nginx/template/exploit.conf << _EOF_
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload";
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Frame-Options "SAMEORIGIN";
## Block SQL injections
set \$block_sql_injections 0;
if (\$query_string ~ "union.*select.*\(") {
set \$block_sql_injections 1;
}
if (\$query_string ~ "union.*all.*select.*") {
set \$block_sql_injections 1;
}
if (\$query_string ~ "concat.*\(") {
set \$block_sql_injections 1;
}
if (\$block_sql_injections = 1) {
return 403;
}
## Block user agents
set \$block_user_agents 0;
# Disable Akeeba Remote Control 2.5 and earlier
if (\$http_user_agent ~ "Indy Library") {
set \$block_user_agents 1;
}
# Common bandwidth hoggers and hacking tools.
if (\$http_user_agent ~ "libwww-perl") {
set \$block_user_agents 1;
}
if (\$http_user_agent ~ "GetRight") {
set \$block_user_agents 1;
}
if (\$http_user_agent ~ "GetWeb!") {
set \$block_user_agents 1;
}
if (\$http_user_agent ~ "Go!Zilla") {
set \$block_user_agents 1;
}
if (\$http_user_agent ~ "Download Demon") {
set \$block_user_agents 1;
}
if (\$http_user_agent ~ "Go-Ahead-Got-It") {
set \$block_user_agents 1;
}
if (\$http_user_agent ~ "TurnitinBot") {
set \$block_user_agents 1;
}
if (\$http_user_agent ~ "GrabNet") {
set \$block_user_agents 1;
}
if (\$block_user_agents = 1) {
return 403;
}
_EOF_

On met une date d’expiration pour activer le cache du navigateur pour ces fichiers.

touch /etc/nginx/template/expire.conf

tee -a /etc/nginx/template/expire.conf << _EOF_
location ~* \.(jpg|jpeg|gif|png|css|js|ico|svg)$ {
access_log off;
log_not_found off;
expires 30d;
}
_EOF_

On rajoute quelques règles de redirection pour le sitemap du plugin Yoast de Wordpress.

touch /etc/nginx/template/wp_sitemap.conf

tee -a /etc/nginx/template/wp_sitemap.conf << _EOF_
location ~ ([^/]*)sitemap(.*)\.x(m|s)l\$ {
rewrite ^/sitemap\.xml\$ /index.php?sitemap=1 last;
rewrite ^/([a-z]+)?-?sitemap\.xsl\$ /index.php?xsl=\$1 last;
rewrite ^/sitemap_index\.xml\$ /index.php?sitemap=1 last;
rewrite ^/([^/]+?)-sitemap([0-9]+)?\.xml\$ /index.php?sitemap=\$1&sitemap_n=\$2 last;
## following lines are options. Needed for wordpress-seo addons
rewrite ^/news_sitemap\.xml\$ /index.php?sitemap=wpseo_news last;
rewrite ^/locations\.kml\$ /index.php?sitemap=wpseo_local_kml last;
rewrite ^/geo_sitemap\.xml\$ /index.php?sitemap=wpseo_local last;
rewrite ^/video-sitemap\.xsl\$ /index.php?xsl=video last;
access_log off;
}
_EOF_

On créé fichier PHP avec « Hello World » pour pouvoir tester notre serveur.

rm /etc/nginx/conf.d/default.conf

mkdir -p /var/www/root/

echo 'Hello World' | tee -a /var/www/root/index.php

On configure un système Authentification d’accès de base (basic access authentication) lorsqu’on accède par l’IP.

mkdir -p /var/password/
htpasswd -b -c /var/password/.htpasswd root ${MY_PASSWORD_ROOT}

touch /etc/nginx/conf.d/0default.conf

tee -a /etc/nginx/conf.d/0default.conf << _EOF_
include template/params.conf;
server {
listen 80 default_server;
root /var/www/root;
index index.php index.html index.htm;
server_name _;
location / {
auth_basic 'Administrator Login';
auth_basic_user_file /var/password/.htpasswd;
try_files \$uri \$uri/ \$uri.php;
}
include template/php.conf;
}
_EOF_

Dans un premier temps, on créé le répertoire et la configuration du site web sans HTTPS.

mkdir -p /var/www/sites

mkdir -p /var/www/sites/${domain}/public_html/

touch /var/www/sites/${domain}/public_html/index.html

touch /etc/nginx/conf.d/${domain}.conf

tee -a /etc/nginx/conf.d/${domain}.conf << _EOF_
server {
listen 80;
root /var/www/sites/${domain}/public_html;
index index.php index.html index.htm;
server_name ${domain}
www.${domain};
include template/php.conf;
location / {
try_files \$uri \$uri/ /index.php?q=\$uri&\$args;
}
}
_EOF_

Redémarre le serveur Nginx.

systemctl start nginx

On installe Let’s encrypt (certbot).

apt-get install python-certbot-nginx -t stretch-backports -y

On génère un certificat SSL (HTTPS).

certbot certonly -n --keep-until-expiring --agree-tos --nginx -m ${MY_EMAIL} -d ${domain} -d www.${domain}

On recréé la configuration du site web, mais en HTTPS cette fois ci.

rm /etc/nginx/conf.d/${domain}.conf

touch /etc/nginx/conf.d/${domain}.conf

tee -a /etc/nginx/conf.d/${domain}.conf << _EOF_
server {
listen 443 ssl http2;
root /var/www/sites/${domain}/public_html;
index index.php index.html index.htm;
server_name ${domain}
www.${domain};
include template/php.conf;
include template/exploit.conf;
include template/wp_sitemap.conf;
include template/expire.conf;
location / {
try_files \$uri \$uri/ /index.php?q=\$uri&\$args;
}
rewrite /wp-admin$ \$scheme://\$host\$uri/ permanent;
ssl_certificate /etc/letsencrypt/live/${domain}/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/${domain}/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
listen 80;
server_name ${domain} www.${domain};
return 301 https://www.${domain}$request_uri;
}
_EOF_

Installer PhpMyAdmin

phpMyAdmin est une application Web de gestion pour les systèmes de gestion de base de données.

On va l’installer sur notre serveur.

cd /var/www/root/

wget https://files.phpmyadmin.net/phpMyAdmin/${PMA_VERSION}/phpMyAdmin-${PMA_VERSION}-all-languages.zip

unzip phpMyAdmin-${PMA_VERSION}-all-languages.zip

mv phpMyAdmin-${PMA_VERSION}-all-languages phpmyadmin

cd /var/www/

chown www-data:www-data -Rf root

chown www-data:www-data -Rf sites

Redémarre le serveur Nginx.

systemctl restart nginx

Installer un serveur FTP

Pour pouvoir transférer des fichiers sur le serveur, on va installer un serveur FTP.

Pour cela, on va installer le logiciel VsFTPd, c’est un logiciel très securisé, développé par Chris Evans.

useradd -m ftpuser1

echo "ftpuser1:${MY_PASSWORD_FTP}" | chpasswd

apt-get install vsftpd -y

systemctl enable vsftpd

systemctl start vsftpd

Création de l’utilisateur FTP

On créé un certificat SSL et un utilisateur (« ftpuser1 ») pour se connecter en FTP.

mkdir -p /var/ssl

openssl req -x509 -nodes -days 36500 -subj "/C=XX/ST=Country/L=City/CN=default" -newkey rsa:2048 -keyout /var/ssl/vsftpd.pem -out /var/ssl/vsftpd.pem

chmod 600 /var/ssl/vsftpd.pem

echo "ftpuser1" | tee -a /etc/vsftpd.chroot_list

Configurer Vsftpd

On configure vsftpd.

mv /etc/vsftpd.conf /etc/vsftpd.conf.backup

touch /etc/vsftpd.conf

tee -a /etc/vsftpd.conf << _EOF_
listen_port=2121
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES
chroot_list_file=/etc/vsftpd.chroot_list
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=ftp
allow_writeable_chroot=YES
local_root=/var/www/sites
guest_enable=YES
chown_uploads=YES
chown_username=www-data
guest_username=www-data
nopriv_user=www-data
virtual_use_local_privs=YES
pasv_enable=YES
pasv_min_port=1060
pasv_max_port=1069
pasv_address=${MY_PUBLIC_IP}
rsa_cert_file=/var/ssl/vsftpd.pem
ssl_enable=YES
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
_EOF_

On redémarre la tâche de fond.

systemctl restart vsftpd

Vérifications

Une fois que nous avons configuré notre serveur, nous allons vérifier que tout marche bien.

Accès au serveur

Tout d’abord nous allons vérifier que notre serveur est bien accessible.

Tapez l’adresse IP de votre serveur dans le navigateur

Comme ceci : http://votreIP

Comme nous avons mis en place un système d’Authentification d’accès de base.

Vous devriez voir une boite de dialogue apparaitre, vous demandant un « Utilisateur » et « Mot de passe ».

Basic access authentication

Tapez

Utilisateur : « root »

Mot de passe : « le motdepasse1 que vous avez choisi »

Puis OK.

Si vous voyez une page blanche avec « Hello world », c’est que votre serveur fonctionne.

Accès au site

Vous devriez aussi avoir accès à votre site en tapant l’adresse de votre site web dans le navigateur internet.

Ex: https://www.monsuperwebsite.com

Une page blanche devrait s’afficher vu que l’on a placé par défaut un fichier index.html.

Accès au gestionnaire de base de données

Nous avons installé aussi phpMyAdmin, un gestionnaire de base de données.

Tapez l’IP de votre serveur (sauvegardé dans le bloc-notes) suivi de slash « phpmyadmin ».

http://votreIP/phpmyadmin

La boite de dialogue Authentification d’accès de base devrait apparaitre (Tapez « root » et votre « motdepasse1 »).

L’interface phpMyAdmin s’affichera.

phpmyadmin

Pour vous connecter à phpMyAdmin :

Tapez

Utilisateur : « admin »

Mot de passe : « le motdepasse2 que vous avez choisi »

Puis Exécuter.

Accès au FTP

Et enfin l’accès au serveur FTP.

Pour cela vous devrez installer un client FTP comme « Filezilla ».

https://filezilla-project.org/

Téléchargez et installez Filezilla.

Ouvrez Filezilla.

Cliquez sur l’icône serveur en haut à gauche.

Filezilla ajout serveur

Une nouvelle fenêtre va apparaitre.

filezilla

Tapez dans le champs suivants :

Host : « l’adresse IP de votre serveur »

Port : « 2121 »

User « ftpuser1 »

Password : « le motdepasse3 que vous avez choisi »

Puis Connect.

Une boite de dialogue va vous demander d’accepter un certificat.

Acceptez avec « Yes ».

Vous serrez connectez à votre serveur en FTP.

Il y aura le dossier avec le nom de votre domaine et en sous-répertoire un dossier « public_html ».

C’est dans ce dernier que vous mettrez vos pages web (HTML, PHP, Wordpress…).

 

Voilà nous avons installé ce qu’il faut sur notre serveur.

Dans la prochaine étape nous verrons comment installer Wordpress sur notre serveur.

Cet article peut contenir des liens d'affiliation. Un lien d'affiliation est un lien avec lequel je peux éventuellement toucher une petite commission de parrainage. Passer par mon lien, ne vous coûtera pas de frais supplémentaires. Vous êtes libre de les utiliser ou non. Merci pour votre compréhension et de votre soutien.
♥ Vous avez trouvé cet article utile? Aidez-moi à le partager:)
Pour avoir toutes les mises à jour de contenus, n'oubliez pas de me suivre sur:
- Creatorpjs Facebook
- Twitter @creatorpjs
PartagerTweeter
Frédéric C.

Diplômé d'une licence informatique et programmeur de profession depuis plus de 10 ans. À travers, ce blog je partage des astuces techniques pour la création de votre site et outils pratiques pour votre business.

 Articles similaires
  • Article Se connecter en SSH à un serveur (via Windows ou Mac)
    Se connecter en SSH à un serveur (via Windows ou Mac)
  • Article Faire pointer un nom de domaine vers un serveur
    Faire pointer un nom de domaine vers un serveur
  • Article Installer WordPress manuellement sur un serveur web
    Installer WordPress manuellement sur un serveur web
  • Article Créer un serveur web (avoir son propre serveur)
    Créer un serveur web (avoir son propre serveur)
  • Article Vultr VPS : Pourquoi j&rsquo;ai migré vers cet hébergeur web ? Mon avis
    Vultr VPS : Pourquoi j'ai migré vers cet hébergeur web ? Mon avis
  • Article Serveur dédié ou serveur mutualisé : lequel choisir ?
    Serveur dédié ou serveur mutualisé : lequel choisir ?

 3 janvier 2021(Mis à jour : 3 mars 2022) Frédéric C.

 Créer un site internet, Informatique  commande, guide, linux, serveur, vps

Interactions du lecteur

 Laisser un commentaire Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Barre latérale 1

Articles récents
  • Quelle alternative à Google Adsense pour monétiser un petit site ?
  • Installer WordPress manuellement sur un serveur web
  • Thrive Architect : Un très bon Page Builder pour WordPress
  • Divi : Un des meilleurs thèmes WordPress avec un page builder inclus
  • Qu’est ce le Bitcoin ? Comment ça marche ?
© 2022 Tous droits réservés · www.creatorpjs.com