Impossible de restart apache2

Résolu

Bonjour, j'ai tout essayé mais je n'arrive pas a restart apache2, pouvez-vous m'aider svp.

voici configtest :

voici quand je fais restart ou reload :

et voici status d'apache2 :

1 réponse

  1. Bonjour

    Déjà, il convient de lire ce que disent journalctl -xeu apache.service et autres ${$APACHE_LOG_DIR}/global.log

    A noter aussi que je mentionne httpd, ça peut s'appeler apache2 ou apache selon la distribution

    Ce qui me fait tiquer en premier lieu est le "cannot access directory ${$APACHE_LOG_DIR}", les répertoires TEMP LOG définis dans le httpd.conf sont pourtant nécessaires au démarrage.

    Faites

    echo ${$APACHE_LOG_DIR}

    pour voir si c'est défini puis

    ls -lisa ${$APACHE_LOG_DIR}

    pour voir les droits de ce répertoire.

    Selon le système ça peut réclamer du www-data ou du apache, à confirmer et modifier selon avec chown.

    chown -R www-data:www-data /var/log/httpd

    Côté droits il faut à minima du 744 récursif avec

    chown -R www-data:www-data /var/log/httpd

    Recoupez bien avec ce qui est défini dans /etc/httpd/conf et tenez au jus


    0
    1. *erratum, j'ai posté trop vite

      "le répertoire TEMP et le répertoire LOG", pas "TEMP LOG", ça n'a pas de sens sinon

      Les droits c'est chmod, pas chown, pour "CHange MODifier" contre "CHange OWNer"

      0
    2. Modérateur
      @luckydu43

      Bonjour,

      • En effet, sous Debian, les logs sont dans /var/log/apache2 et non dans /var/log/httpd.
      • Avant de changer les droits, vérifie si c'est vraiment nécessaire, car généralement c'est une mauvaise idée de relâcher des droits.

      Dans ton cas il semble que tu aies besoin de netstat. Pour l'installer :

      sudo apt update
      sudo apt install net-tools

      Vu que tu sembles vouloir installer wordpress, je te donne la procédure que j'utilise ci-dessous.

      Installation des paquets

      sudo apt update
      sudo apt install apache2 default-mysql-server libapache2-mod-php wordpress curl

      Configuration de MySQL

      Ensuite je t'invite à suivre ce qui est expliqué ici.

      sudo mysql_secure_installation

      Configuration de PHP

      On récupère la version de PHP installée, on l'active et on redémarre apache :

      ls /etc/apache2/mods-available/php*conf
      a2enmod php8.2  # À adapter si besoin
      systemctl restart apache2

      On configure PHP :

      cp /usr/lib/php/8.2/php.ini-production /usr/share/wordpress/php.ini

      ... puis dans ce fichier, si on augmenter la taille des uploads on ajoute :

      upload_max_filesize = 20M
      post_max_size = 20M
      memory_limit = 20M

      Configuration apache

      Admettons que ton site s'appelle www.monsite.fr :

      <VirtualHost *:80>
         ServerName monsite.fr
         Redirect permanent / https://www.monsite.fr/
      </VirtualHost>
      
      <VirtualHost *:80>
         ServerName www.monsite.fr
         DocumentRoot /usr/share/wordpress
         Alias /wp-content "/var/lib/wordpress/wp-content"
      
         <Directory /usr/share/wordpress>
             Options FollowSymLinks
             AllowOverride Limit Options FileInfo
             DirectoryIndex index.php
             Require all granted
         </Directory>
      
         <Directory /var/lib/wordpress/wp-content>
             Options FollowSymLinks
             Require all granted
         </Directory>
      
          RewriteEngine on
          RewriteCond %{SERVER_NAME} =www.monsite.fr
          RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
      </VirtualHost>

      Note que le chemin des logs n'est pas spécifié dans cet exemple. Par défaut les logs sont dans /var/log/apache2 et ce dossier appartient à root:adm (on ne l'assigne pas à www-data).

      Tu peux aussi avoir envie de reconfigurer /etc/wordpress/htaccess. Voici les lignes que j'ai décommentées dans mon cas :

      <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteBase /
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . /index.php [L]
      </IfModule>

      Configuration wordpress

      On crée /etc/wordpress/config-www.monsite.fr.php dans lequel on met, ici je suis pour le nom de la base et le nom de l'utilisateur de la base les conventions choisies ici  :

      <?php
      define('DB_NAME', 'wordpress');
      define('DB_USER', 'wordpress');
      define('DB_PASSWORD', '....');
      define('DB_HOST', 'localhost');
      define('WP_CONTENT_DIR', '/var/lib/wordpress/wp-content');
      define('WP_SITEURL', 'http://www.monsite.fr/');
      define('FS_METHOD', 'direct');
      ?>

      Ensuite on lance les commandes :

      sudo chmod 600 /etc/wordpress/config-www.monsite.fr.php
      sudo a2ensite http.www.monsite.fr
      sudo service apache2 reload

      Letsencrypt (https)

      Cette étape suppose que le site est publiquement accessible depuis Internet.

      sudo a2enmod ssl
      sudo systemctl restart apache2
      sudo apt install certbot python3-certbot-apache
      sudo certbot --apache
      sudo certbot renew --dry-run 

      Si la dernière commande marche :

      sudo certbot renew --quiet

      Bonne chance

      0