add doc nextcloud and wordpress docker
This commit is contained in:
parent
5325feb234
commit
c752900529
BIN
docs/divers/img/welcome_to_nginx.png
Normal file
BIN
docs/divers/img/welcome_to_nginx.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 25 KiB |
File diff suppressed because it is too large
Load Diff
2
docs/divers/serveur_debian_smb_ssh.md
Normal file
2
docs/divers/serveur_debian_smb_ssh.md
Normal file
@ -0,0 +1,2 @@
|
||||
# Création d'un serveur local avec partage de fichiers Samba et backup des données en externe
|
||||
|
||||
@ -0,0 +1,206 @@
|
||||
# Installer Wordpress avec docker-compose sur Debian 10 avec Nginx en reverse-proxy
|
||||
|
||||
## Installer **nginx**
|
||||
|
||||
Nginx est un serveur web, comme Apache.
|
||||
Nous allons l'utiliser comme reverse-proxy, c'est-à-dire qu'il renverra les requêtes d'un autre serveur, que nous installerons aux côtés de wordpress.
|
||||
|
||||
Ainsi nous pourrons utiliser le serveur de notre choix pour notre web-application Wordpress (Apache ou Nginx).
|
||||
|
||||
|
||||
On installe Nginx à partir des dépôts Debian, de façon à avoir une version stable, avec l'apport des correctifs de sécurité, et qui ne sera jamais cassé par une modification du système.
|
||||
|
||||
```
|
||||
sudo apt update
|
||||
sudo apt upgrade
|
||||
sudo apt install nginx
|
||||
```
|
||||
|
||||
Dans votre navigateur, en tapant dabs la barre d'adresse `http://IP_DU_SERVEUR`, vous devriez accéder à la page d'accueil de nginx
|
||||

|
||||
|
||||
|
||||
## Installation de docker
|
||||
|
||||
### Installation des dépendances
|
||||
|
||||
```
|
||||
sudo apt update
|
||||
sudo apt -y install apt-transport-https ca-certificates curl gnupg2 software-properties-common
|
||||
```
|
||||
### Installation de la clé du dépôt Docker
|
||||
|
||||
```
|
||||
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
|
||||
```
|
||||
|
||||
### Ajout du dépôt docker dans le **sources.list**
|
||||
|
||||
```
|
||||
sudo add-apt-repository \
|
||||
"deb [arch=amd64] https://download.docker.com/linux/debian \
|
||||
$(lsb_release -cs) \
|
||||
stable"
|
||||
```
|
||||
|
||||
### Mise à jour de la liste des paquets et installation de docker
|
||||
|
||||
```
|
||||
sudo apt update && sudo apt install docker-ce docker-ce-cli containerd.io
|
||||
```
|
||||
|
||||
### Ajout de l'utilisateur dans le groupe **docker** pour utiliser docker sans sudo
|
||||
|
||||
```
|
||||
sudo usermod -aG docker $USER
|
||||
newgrp docker
|
||||
```
|
||||
|
||||
|
||||
## Installation de Docker-Compose
|
||||
|
||||
### Téléchargement de Docker-Compose
|
||||
```
|
||||
curl -s https://api.github.com/repos/docker/compose/releases/latest \
|
||||
| grep browser_download_url \
|
||||
| grep docker-compose-Linux-x86_64 \
|
||||
| cut -d '"' -f 4 \
|
||||
| wget -qi -
|
||||
```
|
||||
|
||||
### Mise en place de l'exécutable
|
||||
|
||||
```
|
||||
chmod +x docker-compose-Linux-x86_64 && sudo mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
|
||||
systemctl restart docker
|
||||
```
|
||||
|
||||
### Auto-complétion pour Bash
|
||||
|
||||
```
|
||||
sudo curl -L https://raw.githubusercontent.com/docker/compose/master/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
|
||||
source /etc/bash_completion.d/docker-compose
|
||||
```
|
||||
|
||||
**Docker et Docker-compose sont maintenant installés**
|
||||
|
||||
## Mise en place de Wordpress avec docker-compose
|
||||
|
||||
Créer un dossier pour accueillir le projet, et le fichier **docker-compose.yml**:
|
||||
|
||||
```
|
||||
mkdir wordpress && cd wordpress
|
||||
touch docker-compose.yml
|
||||
```
|
||||
|
||||
Ce fichier de configuration va déployer une image docker de wordpress et de la base de données mysql.
|
||||
|
||||
!!! info "docker-compose.yml"
|
||||
```
|
||||
version: '3.3'
|
||||
|
||||
services:
|
||||
db:
|
||||
image: mysql:5.7
|
||||
volumes:
|
||||
- db_data:/var/lib/mysql
|
||||
restart: always
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: somewordpress
|
||||
MYSQL_DATABASE: wordpress
|
||||
MYSQL_USER: wordpress
|
||||
MYSQL_PASSWORD: wordpress
|
||||
|
||||
wordpress:
|
||||
depends_on:
|
||||
- db
|
||||
image: wordpress:latest
|
||||
ports:
|
||||
- "8000:80"
|
||||
restart: always
|
||||
environment:
|
||||
WORDPRESS_DB_HOST: db:3306
|
||||
WORDPRESS_DB_USER: wordpress
|
||||
WORDPRESS_DB_PASSWORD: wordpress
|
||||
WORDPRESS_DB_NAME: wordpress
|
||||
VIRTUAL_HOST: wordpress.mondomaine.fr
|
||||
volumes:
|
||||
db_data: {}
|
||||
```
|
||||
|
||||
## Installation de SSL pour Nginx avec Let's Encrypt
|
||||
|
||||
Let's encrypt est un service qui permet de générer gratuitement un certificat SSL pour le domaine de notre choix.
|
||||
```
|
||||
sudo apt install python3-acme python3-certbot python3-mock python3-openssl python3-pkg-resources python3-pyparsing python3-zope.interface
|
||||
sudo apt install python3-certbot-nginx
|
||||
sudo certbot -d wordpress.mondomaine.fr
|
||||
```
|
||||
**Les certificats sont alors crés dans `/etc/letsencrypt/wordpress.mondomaine.fr`!**
|
||||
|
||||
## Configuration du **Server Bloc Nginx ** pour wordpress.mondomaine.fr
|
||||
|
||||
On peut maintenant créer le fichier de configuration nginx dans /etc/nginx/sites-available/wordpress.mondomaine.fr.conf:
|
||||
|
||||
!!! info "wordpress.mondomaine.fr"
|
||||
```
|
||||
upstream wpdocker {
|
||||
server 127.0.0.1:8000;
|
||||
}
|
||||
|
||||
server {
|
||||
|
||||
server_name wordpress.mondomaine.fr;
|
||||
|
||||
|
||||
listen [::]:443 ssl; # managed by Certbot
|
||||
listen 443 ssl; # managed by Certbot
|
||||
ssl_certificate /etc/letsencrypt/live/wordpress.mondomaine.fr/fullchain.pem; # managed by Certbot
|
||||
ssl_certificate_key /etc/letsencrypt/live/wordpress.mondomaine.fr/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
|
||||
|
||||
location / {
|
||||
proxy_pass http://wpdocker;
|
||||
proxy_redirect off;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Host $server_name;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
server {
|
||||
if ($host = wordpress.mondomaine.fr) {
|
||||
return 301 https://$host$request_uri;
|
||||
} # managed by Certbot
|
||||
|
||||
location / {
|
||||
rewrite ^/(.*)$ https://$host/$1 permanent;
|
||||
}
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
|
||||
server_name wordpress.mondomaine.fr;
|
||||
return 404; # managed by Certbot
|
||||
}
|
||||
|
||||
```
|
||||
Pour activer ce fichier de configuration, on créé un lien symbolique vers le dossier sites-enabled:
|
||||
|
||||
```
|
||||
sudo ln -s /etc/nginx/sites-available/wordpress.mondomaine.fr.conf /etc/nginx/sites-enabled/
|
||||
```
|
||||
|
||||
On recharge la configuration de Nginx:
|
||||
|
||||
```
|
||||
sudo systemctl reload nginx.service
|
||||
```
|
||||
|
||||
***Et voilà, votre site est accessible à `https://wordpress.mondomaine.fr` !***
|
||||
|
||||
??? info "Plus d'infos sur la configuration de Nginx"
|
||||
Plus d'infos sur [le guide Nginx de Linode](https://www.linode.com/docs/web-servers/nginx/)
|
||||
@ -53,3 +53,5 @@ nav:
|
||||
- divers/index.md
|
||||
- divers/backup.md
|
||||
- divers/install_pxe.md
|
||||
- divers/wordpress_docker-compose_on_debian-10_with_nginx_reverse-proxy.md
|
||||
- divers/nextcloud_docker-compose_on_debian-10_with_nginx_reverse-proxy.md
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user