Impossible de restart apache2
Résolu1 réponse
-
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/httpdCôté droits il faut à minima du 744 récursif avec
chown -R www-data:www-data /var/log/httpdRecoupez bien avec ce qui est défini dans /etc/httpd/conf et tenez au jus
-
*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"
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.phpdans 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
-


