Serveur Debian

Administration con centré . com !

Serveur Debian

APACHE + PHP

                  +------------------+
                  |  Utilisateurs    |
                  +---------+--------+
                            |
                            v                            
             +---------------------------+
             |       Apache + PHP        |
             +-------------+-------------+
                 |                 |
                 v                 v
         +---------------+    +----------------------------+
         | /var/www/html |    | /var/www/nomdedomaine.fr   |
         |   default     |    |   site2                    |
         +---------------+    +----------------------------+                  

Installe

sudo apt install apache2 -y
sudo systemctl status apache2

sudo apt install php libapache2-mod-php php-mysql php-xml php-mbstring php-curl -y
sudo apt install  php8.2-fpm
sudo apt install libapache2-mod-fcgid -y

sudo apachectl -S # permet de récupérer des informations sur la configuration d'Apache.

http://votre_ip/
http://name_serveur/
echo "<?php phpinfo();?>" | sudo tee /var/www/html/info.php
sudo apachectl configtest
sudo systemctl status apache2
sudo systemctl restart apache2 
sudo systemctl stop apache2
sudo systemctl start apache2

apache2ctl fullstatus 
apache2ctl status 
apache2ctl graceful             #Redémarre gracieusement le démon Apache     
apache2ctl graceful-stop        #Arrête le démon Apache httpd de manière élégante
apache2ctl configtest           #Exécutez un test de syntaxe de fichier de configuration

tail -f /var/log/apache2/error.log
tail -f /var/log/apache2/access.log


# Les Modules :


sudo a2enmod fcgid
sudo a2enmod rewrite
sudo a2enmod proxy
sudo a2enmod proxy_fcgi
sudo a2enmod ssl

    [Install]
    sudo apt install nom_du_module
    sudo a2enmod nom_du_module
    sudo systemctl restart apache2

    [Remove]
    sudo a2dismod nom_du_module
    sudo apt remove --purge nom_du_module
    sudo systemctl restart apache2



VirtualHost et FastCGI : directive PHP

Supprimer le maximum d'informations dans les en-têtes HTML renvoyées par Apache,

sudo nano /etc/apache2/conf-available/security.conf
ServerTokens Prod  # Masquer la version d'Apache
ServerSignature Off # Supprimer les informations de signature d'Apache
Header unset X-Powered-By  # Supprimer l'en-tête 'X-Powered-By' pour PHP (et autres langages si nécessaire)  

IP-ADRESSE-DE-VOTRE-SERVEUR
votre nom de domaine


Configurer son nom de domaine : nomdedomaine.fr

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






sudo nano /etc/apache2/sites-available/nomdedomaine.fr.conf
<VirtualHost *:80>
    ServerAdmin webmaster@nomdedomaine.fr
    ServerName nomdedomaine.fr
    ServerAlias www.nomdedomaine.fr

    DocumentRoot /var/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

    # Pass PHP scripts to FastCGI process manager
    <FilesMatch \.php$>
        # SetHandler "proxy:unix:/var/run/php/php8.2-fpm.sock|fcgi://localhost/"
        SetHandler application/x-httpd-php
    </FilesMatch>
</VirtualHost>


sudo a2ensite /var/www/nomdedomaine.fr
sudo systemctl restart apache2

sudo a2dissite  /var/www/nomdedomaine.fr


/etc/hosts
C:\Windows\System32\drivers\etc  hosts 

ton.ip        mon.domaine        www.mon.domaine
NameVirtualHost ip.du.pc

Supprimer APACHE

sudo systemctl stop apache2
sudo apt-get purge apache2 apache2-utils apache2-bin apache2.2-common -y
sudo rm -rf /etc/apache2
sudo rm -rf /var/www/html
sudo rm -rf /var/log/apache2
sudo apt-get autoremove -y

Le certificat SSL : letsencrypt

certificates sur SSL sur 000-default.conf

sudo a2enmod ssl
sudo a2enmod rewrite

# Activer le site SSL par défaut
sudo a2ensite default-ssl
sudo certbot --apache -d nomduserveur.eu

sudo nano /etc/apache2/sites-available/000-default.conf

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    # Rediriger tout le trafic HTTP vers HTTPS
    RewriteEngine on
    RewriteCond %{SERVER_NAME} =nomduserveur.euu
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>


sudo nano /etc/apache2/sites-available/default-ssl.conf

<VirtualHost *:443>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    ServerName nomduserveur.eu

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/nomduserveur.eu/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/nomduserveur.eu/privkey.pem
    Include /etc/letsencrypt/options-ssl-apache.conf

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
 

Liste des modules Apache

Module État actuel Utilité
access_compatActivéAssure la compatibilité avec les directives d'accès des versions précédentes d'Apache.
actionsDésactivéPermet de définir des actions pour les types de média.
aliasActivéPermet de mapper des URL vers des chemins de répertoires spécifiques.
allowmethodsDésactivéRestreint les méthodes HTTP autorisées.
asisDésactivéPermet de servir des documents sans transformation.
auth_basicActivéFournit l'authentification de base HTTP.
auth_digestDésactivéFournit l'authentification digest HTTP.
auth_formDésactivéFournit l'authentification par formulaire.
authn_anonDésactivéPermet l'authentification anonyme.
authn_coreActivéModule principal pour l'authentification.
authn_dbdDésactivéPermet l'authentification en utilisant des bases de données SQL.
authn_dbmDésactivéPermet l'authentification en utilisant des bases de données DBM.
authn_fileActivéPermet l'authentification en utilisant des fichiers de texte plat.
authn_socacheDésactivéPermet l'authentification en utilisant un cache partagé.
authnz_fcgiDésactivéPermet l'authentification et l'autorisation via FastCGI.
authnz_ldapDésactivéPermet l'authentification et l'autorisation via LDAP.
authz_coreActivéModule principal pour l'autorisation.
authz_dbdDésactivéPermet l'autorisation en utilisant des bases de données SQL.
authz_dbmDésactivéPermet l'autorisation en utilisant des bases de données DBM.
authz_groupfileDésactivéPermet l'autorisation en utilisant des fichiers de groupe.
authz_hostActivéContrôle l'accès en fonction du nom d'hôte ou de l'adresse IP.
authz_ownerDésactivéContrôle l'accès en fonction du propriétaire du fichier.
authz_userActivéContrôle l'accès en fonction de l'utilisateur.
autoindexActivéGénère automatiquement des listes d'index pour les répertoires.
brotliDésactivéPermet la compression du contenu en utilisant l'algorithme Brotli.
bufferDésactivéPermet le buffering des sorties des filtres.
cacheDésactivéFournit des fonctionnalités de mise en cache.
cache_diskDésactivéPermet la mise en cache des fichiers sur disque.
cache_socacheDésactivéPermet la mise en cache en utilisant des caches partagés.
cern_metaDésactivéPermet de servir des métadonnées CERN.
cgiDésactivéPermet l'exécution des scripts CGI.
cgidDésactivéPermet l'exécution des scripts CGI via le démon CGI.
charset_liteDésactivéPermet la transformation des jeux de caractères.
dataDésactivéPermet de servir des fichiers en ligne de données.
davDésactivéPermet la gestion des versions de fichiers via WebDAV.
dav_fsDésactivéPermet la gestion des versions de fichiers via WebDAV sur le système de fichiers.
dav_lockDésactivéPermet la gestion des verrous WebDAV.
dbdDésactivéFournit une interface pour les bases de données SQL.
deflateActivéPermet la compression du contenu en utilisant l'algorithme DEFLATE.
dialupDésactivéSimule un environnement à bande passante limitée.
dirActivéGère la sélection des fichiers d'index, comme index.html.
dump_ioDésactivéLogue les entrées et sorties d'Apache pour le débogage.
echoDésactivéPermet de renvoyer des réponses HTTP prédéfinies pour le test.
envActivéPermet de configurer et de manipuler des variables d'environnement.
expiresDésactivéContrôle les en-têtes HTTP d'expiration pour la mise en cache côté client.
ext_filterDésactivéPermet de filtrer la sortie d'Apache à travers des programmes externes.
fcgidActivéPermet l'exécution des applications FastCGI.
file_cacheDésactivéPermet de mettre en cache les fichiers sur disque pour améliorer les performances.
filterActivéFournit un cadre pour les filtres de contenu.
headersDésactivéPermet de modifier les en-têtes HTTP des réponses.
heartbeatDésactivéPermet la surveillance des serveurs en temps réel.
heartmonitorDésactivéPermet de surveiller la santé des serveurs en temps réel.
http2DésactivéActive le protocole HTTP/2.
identDésactivéPermet d'identifier les utilisateurs distants via le protocole identd.
imagemapDésactivéPermet de mapper les zones cliquables d'images aux URLs.
includeDésactivéPermet d'inclure d'autres fichiers dans les configurations.
infoDésactivéFournit des informations sur la configuration du serveur.
lbmethod_bybusynessDésactivéPermet l'équilibrage de charge en fonction de la charge des serveurs.
lbmethod_byrequestsDésactivéPermet l'équilibrage de charge en fonction du nombre de requêtes.
lbmethod_bytrafficDésactivéPermet l'équilibrage de charge en fonction du trafic.
lbmethod_heartbeatDésactivéPermet l'équilibrage de charge en utilisant des battements de coeur pour vérifier la santé des serveurs.
ldapDésactivéPermet la connexion à des serveurs LDAP pour l'authentification et l'autorisation.
log_debugDésactivéFournit des capacités de journalisation pour le débogage.
log_forensicDésactivéFournit une journalisation détaillée pour l'analyse médico-légale.
luaDésactivéPermet l'intégration de scripts Lua dans Apache.
macroDésactivéPermet l'utilisation de macros dans les fichiers de configuration Apache.
mdDésactivéPermet la gestion automatique des certificats Let's Encrypt.
mimeActivéDétermine le type de contenu (MIME) en fonction des extensions de fichier.
mime_magicDésactivéDétermine le type de contenu en analysant le contenu des fichiers.
mpm_eventDésactivéModule MPM pour gérer les connexions en utilisant un modèle d'événements.
mpm_preforkActivéModule MPM utilisant des processus multiples pour gérer les requêtes.
mpm_workerDésactivéModule MPM utilisant des threads pour gérer les requêtes.
negotiationActivéGère la négociation de contenu pour servir le meilleur contenu disponible en fonction de la demande du client.
php8.2ActivéPermet l'exécution des scripts PHP via PHP-FPM.
proxyActivéModule principal pour les fonctionnalités de proxy.
proxy_ajpDésactivéPermet le proxying des requêtes via le protocole AJP.
proxy_balancerDésactivéFournit des fonctionnalités de répartition de charge.
proxy_connectDésactivéPermet le proxying des requêtes CONNECT pour les tunnels SSL.
proxy_expressDésactivéPermet la configuration dynamique des proxys.
proxy_fcgiActivéPermet le proxying des requêtes FastCGI.
proxy_fdpassDésactivéPermet le passage de descripteurs de fichiers à travers les proxys.
proxy_ftpDésactivéPermet le proxying des requêtes FTP.
proxy_hcheckDésactivéPermet de vérifier la santé des backends dans un cluster de proxys.
proxy_htmlDésactivéPermet de réécrire le contenu HTML à travers les proxys.
proxy_httpDésactivéPermet le proxying des requêtes HTTP.
proxy_http2DésactivéPermet le proxying des requêtes HTTP/2.
proxy_scgiDésactivéPermet le proxying des requêtes SCGI.
proxy_uwsgiDésactivéPermet le proxying des requêtes uwsgi.
proxy_wstunnelDésactivéPermet le proxying des tunnels WebSocket.
pythonDésactivéPermet l'intégration de scripts Python dans Apache.
ratelimitDésactivéPermet de limiter le taux de requêtes des clients.
reflectorDésactivéPermet de refléter les requêtes HTTP pour le test.
remoteipDésactivéPermet de remplacer l'adresse IP du client par l'adresse IP fournie par un proxy de confiance.
reqtimeoutActivéPermet de définir des délais d'attente pour les requêtes.
requestDésactivéPermet de gérer les requêtes HTTP.
rewriteActivéFournit un moteur de réécriture des URL.
sedDésactivéPermet de filtrer et de transformer le contenu des réponses HTTP en utilisant des expressions régulières.
sessionDésactivéPermet la gestion des sessions HTTP.
session_cookieDésactivéPermet la gestion des sessions HTTP via des cookies.
session_cryptoDésactivéPermet la gestion des sessions HTTP avec cryptage.
session_dbdDésactivéPermet la gestion des sessions HTTP en utilisant des bases de données SQL.
setenvifActivéPermet de définir des variables d'environnement en fonction des en-têtes de requête.
slotmem_plainDésactivéPermet de stocker des données partagées en mémoire dans un format simple.
slotmem_shmDésactivéPermet de stocker des données partagées en mémoire dans un format segmenté.
socache_dbmDésactivéPermet la mise en cache en utilisant des bases de données DBM.
socache_memcacheDésactivéPermet la mise en cache en utilisant Memcached.
socache_redisDésactivéPermet la mise en cache en utilisant Redis.
socache_shmcbActivéPermet la mise en cache en utilisant des segments de mémoire partagée.
spelingDésactivéCorrige automatiquement les erreurs de frappe dans les URLs.
sslDésactivéPermet la prise en charge du protocole HTTPS (SSL/TLS).
statusActivéFournit des informations sur le statut du serveur et des statistiques.
substituteDésactivéPermet de modifier le contenu des réponses HTTP en utilisant des expressions régulières.
suexecDésactivéPermet d'exécuter des scripts CGI sous différents utilisateurs.
unique_idDésactivéGénère un identifiant unique pour chaque requête HTTP.
userdirDésactivéPermet l'accès aux répertoires des utilisateurs via des URLs de type /~user/.
usertrackDésactivéPermet de suivre les utilisateurs à l'aide de cookies.
vhost_aliasDésactivéPermet de mapper les noms d'hôtes virtuels à des répertoires sur le serveur.
wsgiDésactivéPermet d'exécuter des applications Python via WSGI.
xml2encDésactivéPermet de manipuler les encodages de contenu XML.