Difference between revisions of "WebArea/Compat/PHP/Fr"

From TuxFamilyFAQ
Jump to navigationJump to search
 
Line 4: Line 4:
 
== Accéder aux logs d'erreurs ==
 
== Accéder aux logs d'erreurs ==
  
Les sysadmins TuxFamily sont super sympas. Mais parfois, ils ne sont simplement pas disponible LÀ MAINTENANT TOUT DE SUITE, c-à-d  quand vous avez vraiment mais alors vraiment besoin d'accéder aux logs d'erreurs PHP.
+
Les sysadmins TuxFamily sont super sympas. Mais parfois, ils ne sont simplement pas disponibled LÀ MAINTENANT TOUT DE SUITE, c-à-d  quand vous avez vraiment mais alors vraiment besoin d'accéder aux logs d'erreurs PHP.
 
Vous pouvez contourner ce problème en configurant PHP pour qu'il logge ses erreurs dans un fichier à vous.
 
Vous pouvez contourner ce problème en configurant PHP pour qu'il logge ses erreurs dans un fichier à vous.
  
 
Pour ce faire, copiez le fichier php.ini adéquat dans le même dossier que le point d'entrée de votre application (typiquement index.php) puis ajoutez-y error_log = /chemin/absolu/vers/un/fichier.log.
 
Pour ce faire, copiez le fichier php.ini adéquat dans le même dossier que le point d'entrée de votre application (typiquement index.php) puis ajoutez-y error_log = /chemin/absolu/vers/un/fichier.log.
Comme c'est plus facile à dire qu'à faire, (après tout les chemins chez TuxFamily paths peuvent parfois être un peu contre-intuitifs), vous pouvez utiliser le script PHP suivant :
+
Comme c'est plus facile à dire qu'à faire, (après tout les chemins chez TuxFamily peuvent parfois être un peu contre-intuitifs), vous pouvez utiliser le script PHP suivant :
  
 
  <nowiki>
 
  <nowiki>

Latest revision as of 23:32, 16 October 2020


PHP chez TuxFamily

Accéder aux logs d'erreurs

Les sysadmins TuxFamily sont super sympas. Mais parfois, ils ne sont simplement pas disponibled LÀ MAINTENANT TOUT DE SUITE, c-à-d quand vous avez vraiment mais alors vraiment besoin d'accéder aux logs d'erreurs PHP. Vous pouvez contourner ce problème en configurant PHP pour qu'il logge ses erreurs dans un fichier à vous.

Pour ce faire, copiez le fichier php.ini adéquat dans le même dossier que le point d'entrée de votre application (typiquement index.php) puis ajoutez-y error_log = /chemin/absolu/vers/un/fichier.log. Comme c'est plus facile à dire qu'à faire, (après tout les chemins chez TuxFamily peuvent parfois être un peu contre-intuitifs), vous pouvez utiliser le script PHP suivant :

<?php
function nope_the_fuck_out_of_here($message) {
    echo $message . ' Aborting.';
    exit();
}
$ini_file = php_ini_loaded_file();
if (!is_file($ini_file)) nope_the_fuck_out_of_here('Unable to determine php.ini location.');
$base_path = implode(array_slice(explode('/', realpath(getcwd()), 8), 0, 7), '/');
if (!is_dir($base_path)) nope_the_fuck_out_of_here('Non-existing webarea base path.');
$error_dirpath = $base_path . '/php-include';
if (!is_dir($error_dirpath)) nope_the_fuck_out_of_here('No php-include directory.');
$error_filepath = $error_dirpath . '/error.log';
if (!is_file('php.ini')) {
    $copy = copy($ini_file, 'php.ini');
    if (!$copy) nope_the_fuck_out_of_here("Copying ${ini_file} failed.");
} else echo "php.ini already exists, skipping copy.\n<br>";
$config = file_put_contents('php.ini', "error_log = ${error_filepath}\n", FILE_APPEND);
if (!$config) nope_the_fuck_out_of_here("Error while setting error_log.");
echo "Success! Copied ${ini_file} to the current directory and adjusted error_log to log errors into ${error_filepath}.";

Placez-le dans le même dossier que le point d'entrée de votre application (typiquement index.php), nommez-le own-error-log.php ou own-error-log.php7 et exécutez-le via votre navigateur. Vous devriez obtenir un message disant "Success!" ainsi que des détails sur le stockage des erreurs PHP. Une fois votre diagnostic terminé, enlevez le fichier php.ini (ou au moins sa directive error_log) et le fichier php-includes/error.log (sinon vous risquez de remplir le quota assigné à votre projet).