Impossible de restart apache2

Tortue_25 Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   -  
mamiemando Messages postés 33785 Date d'inscription   Statut Modérateur Dernière intervention   -

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

luckydu43 Messages postés 4303 Date d'inscription   Statut Membre Dernière intervention   1 067
 

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
luckydu43 Messages postés 4303 Date d'inscription   Statut Membre Dernière intervention   1 067
 

*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
mamiemando Messages postés 33785 Date d'inscription   Statut Modérateur Dernière intervention   7 885 > luckydu43 Messages postés 4303 Date d'inscription   Statut Membre Dernière intervention  
 

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