Serveur Debian 12 - php 8.2

Administration con centré . com !

Serveur Debian

Hebergement Multi-site

votre ip
votre nom de domaine

La condition est d'avoir un nom de domaine avec les accès aux DNS. Modifier la ligne suivante :

nomdedomaine.fr. IN A votre_ip
ftp        IN CNAME     nomdedomaine.fr.
www        IN CNAME     nomdedomaine.fr.
Après 24h max, vous arriverez sur la page par défaut de votre serveur : http:nomdedomaine.fr et http://votre_ip/

Configuration d'Apache pour nomdedomaine.fr

Fichier de configuration Apache :

sudo nano /etc/apache2/sites-available/nomdedomaine.fr.conf

<VirtualHost *:8080>
  ServerAdmin webmaster@nomdedomaine.fr
  ServerName nomdedomaine.fr
  ServerAlias www.nomdedomaine.fr
  DocumentRoot /var/www/nomdedomaine.fr/public

  <Directory /var/www/nomdedomaine.fr>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
  </Directory>

  ErrorLog ${APACHE_LOG_DIR}/nomdedomaine.fr_error.log
  CustomLog ${APACHE_LOG_DIR}/nomdedomaine.fr_access.log combined
    
  <FilesMatch \.php$>
    SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost"
  </FilesMatch>
  </VirtualHost>

Créer le répertoire pour le site Web :

sudo mkdir -p /var/www/nomdedomaine.fr/public
sudo chown -R www-data:www-data /var/www/nomdedomaine.fr

echo "<?php echo ('bonjour mon super site'); ?>" | sudo tee /var/www/nomdedomaine.fr/public/index.php

Activer le site et recharger Apache :

sudo a2ensite 001.nomdedomaine.fr.conf
sudo systemctl reload apache2
sudo systemctl restart php8.2-fpm
sudo a2dissite 001.nomdedomaine.fr.conf // Désactiver le site si nécessaire
http:nomdedomaine.fr:8080 doit afficher "bonjour mon super site";

Activé proxy d'Apache Nginx sur le port 80

Fichier de configuration Nginx :
sudo nano /etc/nginx/sites-available/nomdedomaine.fr

server {
    listen 80;
    server_name nomdedomaine.fr www.nomdedomaine.fr;

    location / {
        proxy_pass http://127.0.0.1:8080;
        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-Proto $scheme;
    }
} 

Créer le lien symbolique et redémarrer Nginx :

sudo ln -s /etc/nginx/sites-available/reverse-proxy.conf /etc/nginx/sites-enabled/
sudo unlink /etc/nginx/sites-enabled/default   // désactiver le site par défaut
sudo nginx -t
sudo systemctl restart nginx
sudo systemctl stop nginx                        
sudo systemctl start nginx  

sudo systemctl stop apache2                        
sudo systemctl start apache2   

                      
http:nomdedomaine.fr doit afficher "bonjour mon super site";

Installer le certificat Certbot pour avoir le https

sudo apt install certbot python3-certbot-nginx                      
sudo certbot --nginx -d nomdedomaine.fr -d www.nomdedomaine.fr
sudo certbot certonly --nginx -d nomdedomaine.fr -d www.nomdedomaine.fr

sudo tail -f/var/log/letsencrypt/letsencrypt.log
sudo certbot certificates
sudo certbot delete --cert-name nomdedomaine.fr
sudo certbot renew
sudo certbot install --cert-name nomdedomaine.fr -d www.nomdedomaine.fr

server { listen 80 default_server; listen [::]:80 default_server; server_name votre_ip; # Redirection de HTTP à HTTPS location / { return 301 https://$host$request_uri; } } server { listen 443 ssl default_server; listen [::]:443 ssl default_server; server_name votre_ip; ssl_certificate /etc/letsencrypt/live/votre_ip/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/votre_ip/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; location / { proxy_pass http://127.0.0.1:8080; 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-Proto $scheme; } }
server { listen 80; server_name nomdedomaine.fr www.nomdedomaine.fr; # Redirection permanente de HTTP à HTTPS location / { return 301 https://$host$request_uri; } } server { listen 443 ssl; server_name nomdedomaine.fr www.nomdedomaine.fr; ssl_certificate /etc/letsencrypt/live/nomdedomaine.fr/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/nomdedomaine.fr/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; location / { proxy_pass http://127.0.0.1:8080; 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-Proto $scheme; } }

Suivez les instructions pour configurer Certbot. Ensuite, redémarrez Nginx :
Vous serez invité à entrer une adresse email pour les notifications urgentes et à accepter les conditions d'utilisation. Certbot configurera automatiquement Nginx pour utiliser le certificat SSL.

sudo systemctl restart nginx
sudo systemctl status certbot.timer