Apache2 Debian probleme de logs à certains endroits
nocram18
Messages postés
531
Statut
Membre
-
nocram18 Messages postés 531 Statut Membre -
nocram18 Messages postés 531 Statut Membre -
Bonjour à tous,
J'ai un site sous apache2 qui tourne depuis quelques mois, je suis en train de rebidouiller deux trois petits trucs mais cela ne fonctionne pas.
Pour faire simple j'ai mon site var/www/site1/log.php, ce dernier fichier m'affiche et enregistre les logs des visiteurs. Il fontionne niquel je n'ai pas de problème avec.
Maintenant mon soucis, j'ai un "maintenance", qui est dans var/www/maintenance/log.php. J'ai fais une redirection de site1 vers maintenance avec un .htaccess.
Mon fichier log.php n'arrive pas à enregistrer mes logs. Comme si il lui manqué quelques choses. Je ne sais pas quoi.
Mes pages php fonctionne dessus, mais mon log.php ne s’exécute pas pour ouvrir log.txt et écrire dedans, alors que sur l'autre cela fonctionne.
Je pense que cela est dû au problème d'alias dans /etc/apache2/sites-avaibles/maintenance.conf.
Je ne sais pas ce que vous pensez.
En vous remerciant d'avance ^^ ++
J'ai un site sous apache2 qui tourne depuis quelques mois, je suis en train de rebidouiller deux trois petits trucs mais cela ne fonctionne pas.
Pour faire simple j'ai mon site var/www/site1/log.php, ce dernier fichier m'affiche et enregistre les logs des visiteurs. Il fontionne niquel je n'ai pas de problème avec.
Maintenant mon soucis, j'ai un "maintenance", qui est dans var/www/maintenance/log.php. J'ai fais une redirection de site1 vers maintenance avec un .htaccess.
Mon fichier log.php n'arrive pas à enregistrer mes logs. Comme si il lui manqué quelques choses. Je ne sais pas quoi.
Mes pages php fonctionne dessus, mais mon log.php ne s’exécute pas pour ouvrir log.txt et écrire dedans, alors que sur l'autre cela fonctionne.
Je pense que cela est dû au problème d'alias dans /etc/apache2/sites-avaibles/maintenance.conf.
Je ne sais pas ce que vous pensez.
En vous remerciant d'avance ^^ ++
A voir également:
- Apache2 Debian probleme de logs à certains endroits
- View recovery logs - Guide
- Remettre l'ecran a l'endroit - Guide
- Pourquoi certains contacts disparaissent de mon répertoire - Accueil - Guide Android
- Pourquoi certains sites sont inaccessibles - Guide
- Andie veut accéder à internet dans son nouveau logement. que doit-elle faire pour avoir une box (modem) et pouvoir se connecter à internet - Forum SFR
3 réponses
Bonjour,
Le truc qui me perturbe un peu, c'est que tes logs devraient être dans
Le chemin du fichier de log se configure dans ton vhost apache.
https://cwiki.apache.org/confluence/display/httpd/ExampleVhosts
Ensuite ton site devrait idéalement fonctionner sans redirection. Les redirections servent à éviter que des liens ne soient cassés sur le site, ou à gérer certains framework (genre wordpress), mais pas à "rediriger" l'endroit où tes logs sont inscrits.
Les htaccess ne sont pas fait pour cela non plus. Ils servent typiquement à rattraper des erreurs 404, mettre un système de login/mot de passe pour accéder à un dossier du site, etc. Du coup j'ai un peu de mal à suivre ce que tu as fait.
Bonne chance
Le truc qui me perturbe un peu, c'est que tes logs devraient être dans
/var/log/apache2/..., puisque la partie dans
/var/wwwest sensé contenir le site lui-même (et uniquement ça).
Le chemin du fichier de log se configure dans ton vhost apache.
https://cwiki.apache.org/confluence/display/httpd/ExampleVhosts
<VirtualHost *:80>
ServerName www.foo.com
# if you want this vhost to listen to extra names, uncomment the next line
# ServerAlias foo.com www.bar.com bar.com
DocumentRoot /var/www/www.foo.com/htdocs
CustomLog /var/log/apache/www.foo.com-access.log combined
ErrorLog /var/log/apache/www.foo.com-error.log
</VirtualHost>
Ensuite ton site devrait idéalement fonctionner sans redirection. Les redirections servent à éviter que des liens ne soient cassés sur le site, ou à gérer certains framework (genre wordpress), mais pas à "rediriger" l'endroit où tes logs sont inscrits.
Les htaccess ne sont pas fait pour cela non plus. Ils servent typiquement à rattraper des erreurs 404, mettre un système de login/mot de passe pour accéder à un dossier du site, etc. Du coup j'ai un peu de mal à suivre ce que tu as fait.
Bonne chance
Apparemment si le but est de logguer les redirects, c'est directement faisable dans la configuration apache (et ça me semble un meilleur endroit que ton code php) :
https://serverfault.com/questions/85122/how-do-i-log-apache-requests-that-are-redirected-to-another-virtualhost
Bonne chance
https://serverfault.com/questions/85122/how-do-i-log-apache-requests-that-are-redirected-to-another-virtualhost
Bonne chance
Le fait qu'un chemin absolu ne marche pas me laisse perplexe.
Essaye de voir si utiliser /tmp/toto.html fonctionne, et le cas échéant vérifie ce qui se passe avec
Au moment où tu fais tes tests, lance au préalable dans un terminal
D'après la documentation fopen peut ouvrir des urls de type http:// ça pourrait être une dernière solution... mais attention aux droits... et à voir si tu on peut effectivement écrire de cette manière
https://www.php.net/manual/en/function.fopen.php
https://www.php.net/manual/en/wrappers.php
Bonne chance
Essaye de voir si utiliser /tmp/toto.html fonctionne, et le cas échéant vérifie ce qui se passe avec
tmpfile.
Au moment où tu fais tes tests, lance au préalable dans un terminal
tail -f /var/log/apache2/*logpour voir les éventuelles erreurs de permissions remontées par apache.
D'après la documentation fopen peut ouvrir des urls de type http:// ça pourrait être une dernière solution... mais attention aux droits... et à voir si tu on peut effectivement écrire de cette manière
https://www.php.net/manual/en/function.fopen.php
https://www.php.net/manual/en/wrappers.php
Bonne chance
Bonjour,
La franchement je ne sais plus où regarder. Mes logs sont bons (j'ai juste une erreur avec GeoIp, sinon rien).
Mes logs de mon site principal fonctionne sans soucis. Mais les alias toujours le même problème :(.
Le problème c'est que je sais que mon fichier log fonctionne donc rien à voir avec fopen ... . je pense que c'est un fichier de conf qui ne vas pas.
Merci, bonne fête nationale :)
La franchement je ne sais plus où regarder. Mes logs sont bons (j'ai juste une erreur avec GeoIp, sinon rien).
Mes logs de mon site principal fonctionne sans soucis. Mais les alias toujours le même problème :(.
Le problème c'est que je sais que mon fichier log fonctionne donc rien à voir avec fopen ... . je pense que c'est un fichier de conf qui ne vas pas.
Merci, bonne fête nationale :)
Pour moi ce qu'il faut clarifier, c'est est ce que log.php est appelé.
Si oui, il devrait être capable d'exécuter fopen pour écrire ses informations dans un fichier. Donc si tu arrives à conclure que ton script php est bien exécuter, il suffit de comprendre pourquoi fopen ne marche pas...
Par exemple, si tu appelles directement log.php (sans passer par l'alias, avec son vrai chemin), est-ce que le fichier est bien écrit ?
Si oui, il devrait être capable d'exécuter fopen pour écrire ses informations dans un fichier. Donc si tu arrives à conclure que ton script php est bien exécuter, il suffit de comprendre pourquoi fopen ne marche pas...
Par exemple, si tu appelles directement log.php (sans passer par l'alias, avec son vrai chemin), est-ce que le fichier est bien écrit ?
Non au contraire sur mes alias le script ne s’exécute pas, mais par contre sur mon site principal le script fonctionne à merveille et écrit bien dans le fichier .html.
Pour les alias j'ai mis les droits 0777 à www-data alors qu'il ne faut seulement les droits 0600.
Tu peux me conseiller quoi comme script php qui me permet de tester ou est le problème. je ne suis pas assez bon en php. Déjà le log de base j'ai passé pas mal de temps à le faire et le peaufiner.
Merci ++
Pour les alias j'ai mis les droits 0777 à www-data alors qu'il ne faut seulement les droits 0600.
Tu peux me conseiller quoi comme script php qui me permet de tester ou est le problème. je ne suis pas assez bon en php. Déjà le log de base j'ai passé pas mal de temps à le faire et le peaufiner.
Merci ++
Merci de ta réponse.
Mes logs sont bien inscrits dans ce dossier, ceci n'est pas un problème. Mais j'aimerai surtout faire fonctionner ma page log.php qui enregistre les logs dans logs.txt (par exemple).
Mon site fonctionne avec redirection car j'utilise le package GeoIP qui permet de bloquer le site selon le pays. Mais si par exemple je bloque la FRANCE, le .htaccess ne le rédiregera pas vers la page 500 de mon site mais vers d'apache.
Je me suis donc dis pour contrer cela de lui faire des vhosts (un pour la maintenance et un pour la redirection).
Ce qui fonctionne, lorsque la personne essaye de se connecter si son pays est interdi, elle est redirigée vers le vhost redirection, cela fonctionne sans problème.
Mais dans ce dernier je n'arrive pas à lui autoriser mes logs apache, ni pour celui de maintenance.
Cela me permettrai surtout de savoir le nombre de personnes redirigées, quelles IPs, quels pays ....
Je sais que ce n'est pas simple, si personne ne trouve je comprendrai.
Voici mon vhost :
Merci bonne fin de journée. :D
Bonne chance
Je ne comprends pas ce que tu veux dire.
La personne est redirigée vers ForwardingPage sans soucis et tombe sur mon index.php sans soucis non plus.
Mais le log ne fonctionne pas, je ne comprends pas pourquoi en le renommant cela changera qqch ?
Je ne troue rien d'intéressant dans la conf de php.
Bonne journée.
Sur le coup j'avais n'avais pas bien compris ce que tu entendais par le log ne fonctionne pas.
En tout cas écrire le fichier à la main est une méthode que pour le coup, tu es sûr de pouvoir faire marcher...
- récupérer la date courante
- récupérer l'IP du client
- récupérer le pays correspondant
Du coup si tu ne t'en sors pas avec apache, je préconise cette solution.
Merci de ta patience.
C'est ce que j'expliquais dans la problématique.
Voici mon code . Ce dernier fonctionne sur le site principal est écrit bien dans le fichier .
<?php $TextFile = "log_site.html"; $contents = file_get_contents($TextFile); $CurrentDate = date("d-m-y H:i"); $ip = (isset($_SERVER)) ? $_SERVER['REMOTE_ADDR'] : $HTTP_SERVER_VARS['REMOTE_ADDR']; $url = $_SERVER['REQUEST_URI']; $pays = $_SERVER['GEOIP_COUNTRY_NAME']; $ville = $_SERVER['GEOIP_CITY']; $log = $CurrentDate.' - '.$ip.' ('.$pays.'), Ville: ('.$ville.') - '.$url."<br />\n".$contents; if ($FP = fopen($TextFile, "w")){ fwrite($FP, $log); fclose($FP); } ?>Fichier donne par exemple :
Mais sur mes alias il ne fonctionne pas. Après je m'en fiche des logs de base dans .
Bonne journée ^^