Sur mon serveur, j'ai trouvé sous /var/log/Apache2/
, les journaux sont générés comme access.log
il y a quelques jours mais sont vides (pour les journaux d'accès et d'erreurs), cela se produit pour tous les vhosts configurés sur mon serveur,
Et tous les nouveaux journaux ont été ajoutés à access.log.1
jusqu'à ce moment, j'ai besoin que tous les nouveaux journaux soient ajoutés à access.log
et à Error.log
des dossiers.
Comment résoudre ce problème?
/etc/logrotate.d/Apache2
comme suit:
/var/log/Apache2/*.log {
weekly
missingok
rotate 52
compress
delaycompress
notifempty
create 644 root adm
sharedscripts
postrotate
if [ -f "`. /etc/Apache2/envvars ; echo ${Apache_PID_FILE:-/var/run/Apache2.pid}`" ]; then
/etc/init.d/Apache2 reload > /dev/null
fi
endscript
}
Édition: Je viens de découvrir que le fichier /etc/init.d/Apache2 s'est vidé il y a quelques jours, je ne sais pas comment !!, est-il possible de le restaurer? ma version Apache est: Apache/2.2.12 (Ubuntu)
Dans ton /etc/logrotate.d/Apache2
fichier que vous avez:
if [ -f "`. /etc/Apache2/envvars ; echo ${Apache_PID_FILE:-/var/run/Apache2.pid}`" ]; then
/etc/init.d/Apache2 reload > /dev/null
fi
. /etc/Apache2/envvars ; echo ${Apache_PID_FILE:-/var/run/Apache2.pid}
signifie qu'il va d'abord source le fichier /etc/Apache2/envvars
, alors si la variable Apache_PID_FILE
existe, il affichera sa valeur qui serait un fichier contenant le PID de Apache
, si la variable n'existe pas, sa valeur par défaut sera /var/run/Apache2.pid
.
Le -f
de test
([
) indique de vérifier l'existence du PID, s'il est trouvé, exécutez:
/etc/init.d/Apache2 reload > /dev/null
Ce qui rechargera la configuration de Apache
.
Dans votre cas, le fichier /etc/init.d/Apache2
est manquant, donc Apache
ne recharge pas les configurations conduisant à la mauvaise conduite de logrotate
lors de l'enregistrement de nouveaux journaux dans /var/log/Apache/access.log
et /var/log/Apache/error.log
.