Bonjour,
depuis très longtemps j'accède aux logs OSL de mon hébergement via un script PHP (ouverture du log et affichage trié, en gros)
depuis quelques temps (une ou deux semaines) ça ne fonctionne plus...
j'utilise deux méthodes pour tester la présence du fichier log: fopen et file_exists
l'url de récupération du fichier est celle-ci (à la place des **** je mets mon nick et son mot de passe associé, domaine représente mon hébergement)
https://*****:*****@logs.ovh.net/domaine.fr/osl/domaine.fr-02-08-2017.log
lorsque j'envoie cette url ainsi formatée dans firefox, ça passe impeccable
lorsque j'envoie cette url via file_exists en php ça ne fonctionne pas, lorsque je souhaite ouvrir avec fopen idem ça ne fonctionne pas.
Est-ce que vous avez des idées, pistes, pour corriger ce soucis, ou d'autres façons de faire pourquoi pas, mon but est de récupérer le fichier log, de le trier et d'afficher le résultat dans mon navigateur
par avance merci beaucoup et bonne journée
Accès aux stats OSL depuis PHP
Sujets apparentés
- Serveur non sécurisé, celui-ci ne supporte pas FTP sur TLS
63783
03.09.2018 14:46
- Connexion à mon compte client
57632
13.02.2019 09:51
- reCAPTCHA erreur pour le propriétaire du site : clé de site non valide
49817
14.02.2019 16:17
- [FAQ] Comment mettre à jour mon site pour supporter Apache 2.4 ?
34288
28.07.2017 11:39
- Ce site est inaccessible Impossible de trouver l'adresse DNS du serveur
29742
16.10.2016 16:24
- Augmenter taille PHP Post Max Size sur mutualisé ?
28095
04.12.2019 21:52
- The requested URL / was not found on this server
27797
02.03.2017 18:25
- NextCloud sur mutualisé
27132
07.04.2017 08:42
- Deploy d'un projet Node JS
27048
12.10.2016 20:18
- Passage en php 7.4
24818
30.06.2020 05:05
Slt,
J'accède également aux logs via php pour surveiller certains accès, mais par contre je le fais avec curl, et là ça marche. Cf extrait script ci-dessous.
Quand tu dis "ça ne fonctionne pas"... C'est à dire ??? Tu as une erreur ? Un warning ? Rien du tout ?
```php
$c = curl_init();
// définir URL (juste l'url logs.ovh.net/domaine.fr/etc.)
curl_setopt($c, CURLOPT_URL, $url_vers_log);
// on fait une requête GET
curl_setopt($c, CURLOPT_POST, false);
// on veut récupérer les données renvoyées par le serveur
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
// transmettre user et pwd
curl_setopt($c, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($c, CURLOPT_USERPWD, $user . ":" . $pwd);
// timeout
curl_setopt($c, CURLOPT_CONNECTTIMEOUT, 3);
curl_setopt($c, CURLOPT_TIMEOUT, 10);
// exécuter la requête
$output = curl_exec ($c);
// obtenir un code d'erreur HTTP
$i = curl_getinfo($c, CURLINFO_HTTP_CODE);
```
Dans `$output` tu auras le retour de l'exécution et dans `$i` le code erreur http (bien vérifier qu'il s'agit de HTTP 200, et non pas 403, 404 ou 500, entre autres).
Salut
aucune erreur ne s'affiche, aucun warning, je suis passé en development sur le fichier .ovhconfig dans le dossier contenant le script mais display_errors reste à Off (en plus) donc je suppose que les erreurs ne s'affichent pas. (peut-être que j'ai raté un truc de config)
Enfin bon, quand je génère une erreur volontaire dans le script j'ai un code http 500, donc si j'avais une erreur de code j'aurais ça aussi :slight_smile:
Je pense plutôt à une erreur de droit d'accès en fait en passant par php, j'ai aussi ouvert un ticket du coup. (une histoire de contexte d'exécution peut-être)
L'idée de passer par curl est bonne , merci bien, je vais voir si je peux adapter rapidement mon script...
tu récupères le contenu du fichier dans $output c'est ça? ou tu as d'avantage d'infos dans ce $output?
merci d'avance
ok donc tests avec curl :slight_smile:
on récupère bien dans $output le contenu du fichier uniquement
on peut aussi récupérer les headers avec une option.
quand je teste sur un fichier css d'un de mes sites, ça fonctionne nickel avec curl
quand je teste avec l'accès au og du jour, j'ai un code http 302...
j'ai ajouté quelques infos:
//suivre les relocations:
curl_setopt($c, CURLOPT_FOLLOWLOCATION, true);
// obtenir un code d'erreur HTTP
$i = curl_getinfo($c, CURLINFO_HTTP_CODE);
$url = curl_getinfo($c, CURLINFO_EFFECTIVE_URL);
$urlredir = curl_getinfo($c, CURLINFO_REDIRECT_URL );
$redirect = curl_getinfo($c, CURLINFO_REDIRECT_COUNT );
dans l'effective url j'ai bien l'url visée
dans redirect je n'ai rien
dans count j'ai 1
et dans output rien
302
https://logs.ovh.net/domaine.fr/osl/domaine.fr-02-08-2017.log
1
en ajoutant ces options:
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 0);
je récupère le log!
un code http 200 et un nombre de redirection à 2
A tout hasard, tu es sur le vieil environnement ? Legacy ?
Ou sur le nouveau ? Stable ?
https://docs.ovh.com/fr/fr/web/hosting/modifier-lenvironnement-dexecution-de-mon-hebergement-web/#comment-modifier-l-environnement-d-execution
Le legacy utilise une vielle version de openssl qui utilise des protocoles dépréciés.
Il vaut mieux passer sur le nouveau car tu risques d'avoir à l'avenir des problèmes pour chaque connexion https..
ok je pense que j'étais en legacy puique dans le ovh.config de la racine il n'y avait pas d'image stable.
j'ai modifié comme suit:
container.image=stable
j'ai fait un test: bingo !
merci beaucoup pour votre aide à tous
et en plus j'aurai travaillé sur curl php donc c'est super :slight_smile:
bonne soirée
Merci @Buddy car j'ai eu le même problème.
OVH a dû faire une mise à jour quelque part : je lisais les logs et je n'avais pas d'erreurs avant.
Récemment j'ai les mêmes erreurs que https://community.ovhcloud.com/community/fr/curl-error-60-ssl-certificate-problem?id=community_question&sys_id=8da4f94ce59286d02d4c0165b3e76625 avec des problèmes SSL de certificat.
En passant en environnement stable, ça roule ;-)
en tout cas, j'ai deux autres environnements sur lesquels je n'ai rien changé en fait et maintenant ça refonctionne aussi
c'est à n'y rien comprendre...
merci de ton retour en tout cas ça rassure :slight_smile:
L'environnement legacy utilise des protocoles pour les connexions https qui sont dépassés.
Il est clairement conseillé de basculer les environnements sur l'environnement stable.