• Applications
  • [Discussion] TARDIStart : une startpage pour votre seedbox

super ..mais j’espère que ça ne pose pas de problème plus tard

sinon oui connaisseur php ou @Jedediah
Bonsoir;

ça marchait quand même, mais 3 x 24 environ; soit plus de 70 lignes qui polluaient le fichier error.log à chaque login, ça faisait beaucoup à mon goût !!!

Bizarre d'ailleurs que personne ici, n'ait relevé ce truc, à croire que certains ne regardent pas souvent les logs !!!!

De plus, ça peut noyer une erreur plus embêtante dans cette masse, qui passerait inaperçue.

Même si c'est inévitable d'en avoir (timeout, etc..), j'essaie de faire en sorte d'en avoir le moins possible, et d'autant plus issues d'une page d'accès, qui de part sa vocation est la plus fréquentée.

A+++
jean-luc wrote:Bonjour;

Merci Xavier de m'avoir éclairé.

J'ai résolu une grosse partie des erreurs en remplaçant:
titre par 'titre'
icone par 'icone'
lien par 'lien"
dans le fichier "/var/www/tardistart/index.php"


Il ne reste plus qu'une seule erreur:
2016/10/25 11:39:58 [error] 3724#3724: *50 FastCGI sent in stderr: "PHP message: PHP Notice:  Undefined offset: 1 in /var/www/tardistart/statsServ.php on line 11
PHP message: PHP Notice:  Undefined offset: 1 in /var/www/tardistart/statsServ.php on line 11" while reading upstream, client: 11.222.333.44, server: www.mondomaine.fr, request: "GET / HTTP/2.0", upstream: "fastcgi://unix:/run/php/php7.0-fpm.sock:", host: "www.mondomaine.fr"
La ligne 11 doit correspondre à cette partie du fichier "/var/www/tardistart/statsServ.php":
<?php

function getUpTime() {
    // UPTIME
    exec("uptime", $system); // get the uptime stats
    $string = $system[0]; // this might not be necessary
    $uptime = explode(" ", $string); // break up the stats into an array
    $up_days = $uptime[3]; // grab the days from the array
    $hours = explode(":", $uptime[6]); // split up the hour:min in the stats
    $up_hours = $hours[0]; // grab the hours
    $mins = $hours[1]; // get the mins
    $up_mins = str_replace(",", "", $mins); // strip the comma from the mins
    return [$up_days, $up_hours, $up_mins];
}
Si un conaisseur php passe par là ....

Merci.

Salut,

Je viens de regarder ça, cela viens de la fonction uptime et de la manière dont les résultats sont parsés.
Chez moi, j'ai a même erreur que toi, car la date et l'heure d'uptime sont au début de la string.

Du coup uptime[1] n'est pas du tout la string qui contient l'heure exacte d'uptime, mais une string vide, et donc hours[1] n'existe pas du tout, d'ou l'erreur.
Le fix est de remplacer :
    $hours = explode(":", $uptime[6]); // split up the hour:min in the stats
par :
    $hours = explode(":", $uptime[1]); // split up the hour:min in the stats
et ça devrait fonctionner.

Voila
Salut;
Salut;

Merci shyne...ça colle ...

Même si c'est un détail, ce ne serait pas plus mal que l'initiateur du tuto le modifie tant qu'a faire.

Le bash, ça va, mais le php, je ne m'y suis jamais versé...

A+++
Salut..

Oui vraiment bizarre qu'il ait pas vu (peut-être par manque de temps et difficile aussi tu es sur plusieurs projets, de tout faire.)

Moi si je pouvais mettre mes log en fond écran ça serait le top.(ho la commande tail chauffe bien)
Car je suis assez maniaque, si une erreur dans les logs je cherche comment la règler..

Au pire vous envoyez une copie sur le git pour qu'il le mette à jour....

Au top si problème corrigé
Salut;
Je n'ai plus aucune erreur dans error.log suite aux 2 modifications réalisées, par contre pour la dernière plus d'erreurs, mais pas d'affichage jours, ni heures, ni minutes;

http://www.hostingpics.net/viewer.php?id=796926uptimestart.png

Ceci dit, comme j'ai rebooté le serveur et qu'à l'heure actuelle mon uptime n'est de 1:36 ; peut être faut il attendre d'atteindre 1 jour pour voir l'affichage; ceci dit même si ça ne fonctionne pas ce n'est pas grave, j'aime autant ça que des lignes qui polluent le fichier error.log de nginx.

A+
Pour afficher l'uptime, il parse le retour de la fonction uptime (fallait se trouer pour la trouver cette commande).

À mon avis la position de la chaîne hh:mm:ss doit pas être au même endroit suivant l'os. Chez moi ma modif fonctionne bien, en vrai je pense qu'il faut juste tester différente valeur et voir si ca marche et si ca fait pas d'erreur.

Salut,

donc la je vient de me penché sur ton problème et j'ai peu être une solution très simple
dans index.php
tu remplace

<?php include_once('./statsServ.php'); 
$uptime = getUpTime()[0];
if(getUpTime()[0] === 1): $uppy = $uptime . " jour"; else: $uppy = $uptime . " jours"; endif;
$json = file_get_contents('admin/service.json');
$data = json_decode($json, true);
?>

par

<?php include_once('./statsServ.php'); 
$uppy = shell_exec('uptime | tr "," " " | cut -f4-7 -d" "');
$json = file_get_contents('admin/service.json');
$data = json_decode($json, true);
?>

puis dans le ficher statsServ.php tu supprime la fonction getUpTime() (pour rendre le code propre car on s'en sert plus)
c'est pas tres jolie mais sa fonctionne(pas pu tester avec "jour" car je suis sur une vm)

voila...

Bonsoir

alors voici une autre solution pour afficher les heures et les minutes en plus des jours de fonctionnement du serveur

dans index.php se trouvant dans le dossier admin remplacé ceci

<body style="background-image: url(&quot;../assets/img/bg1.jpg&quot;);">
<?php include_once('../statsServ.php'); 
$uptime = getUpTime()[0];
if(getUpTime()[0] === 1): $uppy = $uptime . " jour"; else: $uppy = $uptime . " jours"; endif;
$json = file_get_contents('./service.json');
$data = json_decode($json, true);
?>

par cela

<body style="background-image: url(../assets/img/bg1.jpg);">
<?php include_once('../statsServ.php'); 
//$uppy = getUpTime()[0];
$uppy = uptime ();
$json = file_get_contents('./service.json');
$data = json_decode($json, true);
?>

dans statsServ.php

il faut remplacé ceci

function getUpTime() {
    // UPTIME
    exec("uptime", $system); // get the uptime stats
    $string = $system[0]; // this might not be necessary
    $uptime = explode(" ", $string); // break up the stats into an array
    $up_days = $uptime[3]; // grab the days from the array
    $hours = explode(":", $uptime[6]); // split up the hour:min in the stats
    $up_hours = $hours[0]; // grab the hours
    $mins = $hours[1]; // get the mins
    $up_mins = str_replace(",", "", $mins); // strip the comma from the mins
    return [$up_days, $up_hours, $up_mins];
}

par cela

function uptime () {
    // UPTIME
    $fd = fopen('/proc/uptime', 'r'); 
    $ar_buf = split(' ', fgets($fd, 4096)); 
    fclose($fd); 

$sys_ticks = trim($ar_buf[0]); 

$min   = $sys_ticks / 60; 
$hours = $min / 60; 
$days  = floor($hours / 24) ; 
$hours = floor($hours - ($days * 24)); 
$min   = floor($min - ($days * 60 * 24) - ($hours * 60)); 

if ($days != 0) { 
   $result = "$days " . "jours "; 
   } 

if ($hours != 0) { 
   $result .= "$hours " . "heures "; 
   } 

if ($min != 0) {
   $result .=  "$min " . "minutes ";
   }
   
return $result;
}

pour finir dans le dossier tardistart il faut modifier le fichier index.php
soit ceci

<?php include_once('./statsServ.php'); 
$uptime = getUpTime()[0];
if(getUpTime()[0] === 1): $uppy = $uptime . " jour"; else: $uppy = $uptime . " jours"; endif;
$json = file_get_contents('admin/service.json');
$data = json_decode($json, true);
?>

par cela

<?php include_once('./statsServ.php'); 
//$uppy = getUpTime()[0];
$uppy = uptime ();
$json = file_get_contents('admin/service.json');
$data = json_decode($json, true);
//echo "Server Uptime: <b>".uptime()."</b>"; 
?>

là je pense que ça devrait fonctionner,

j'ai essayé en modifiant les données du texte original du fichier statsServ.php par celui ci

/function getUpTime() {
    // UPTIME
    exec("uptime", $system); // get the uptime stats
    $string = $system[0]; // this might not be necessary
    $uptime = explode(" ", $string); // break up the stats into an array
    $up_days = $uptime[3]; // grab the days from the array
    $hours = explode(":", $uptime[5]); // split up the hour:min in the stats
    $up_hours = $hours[0]; // grab the hours
    $mins = $hours[1]; // get the mins
    $up_mins = str_replace(",", "", $mins); // strip the comma from the mins

$result = [$up_days . " jour(s), " . $up_hours . " Heure(s) et " . $up_mins . " minute(s)."];
return $result;
}

mais avec cette config ça ne fonctionne que par intermitence, il y a des heures ou il n'y a que les jours qui s'affichent, et je n'ai pas trouvé ou ça coince.

Ta solution fait le job Xavier mais je ne l'a trouve pas top.

Bonne fin de soirée

Magicalex
Salut;

Mais c'est bien sur !!! en plus j'avais déjà utilisé seedbox-manager...
Ce n'était qu'un détail que Jedediah a du zapper, mais avec ça, plus d'erreurs dans error.log durant les premières 24h et en plus, ça n'affiche au moins pas n'importe quoi...
J'ai juste remplacé sa fonction par la tienne dans "statsServ.php"; puis modifier "index.php" comme ceci:

<?php include_once('./statsServ.php');
$uppy = getUpTime();
$json = file_get_contents('admin/service.json');
$data = json_decode($json, true);
?>

-Plus de 24h, ça donne :
http://www.hostingpics.net/viewer.php?id=484932uptime0.png
-Après reboot ceci:
http://www.hostingpics.net/viewer.php?id=556132uptime1.png

Parfait...
Sinon félicitations pour le nouveau site.
A++

Sinon, n'hésitez pas à faire un PR sur Github, ça mange pas de pain et ça contribue au projet.
Je n'ai pas le temps de repasser sur les modifications proposées pour le moment mais si vous faire un PR, je me ferai une joie de le checker et d'intégrer ça à la source 😉

5 jours plus tard

Merci pour ton boulot, c'est bien sympa 🙂

5 jours plus tard

Hey Jejediah 🙂 Dis moi, au debut de ton projet, tu n'avais pas integré un script js permettant un accès rapide a ses sites/liens préféré lorsqu'on pointe sa souris vers le bas de la page ? J'ai le souvenir de ca, mais plus moyen de retomber dessus

22 jours plus tard

Hello !

Petit problème de mon coté, j'ai une erreur 403 pour la page admin de mon coté ... une idée ? merci

    blacksly

    bonsoir

    tu as bien remplacé le user de cette ligne par le tiens?

    auth_basic_user_file "/etc/nginx/passwd/rutorrent_passwd_user";

    Ha ! l'erreur de débutant ... merci superritou, je n'avais effectivement pas remplacer cette ligne x)

    Merci bien 🙂

    2 mois plus tard

    Hello,

    J'ai tenté de changer le fond d'écran.

    Sans succès. Au mieux j'ai un voile blanc 🙂

    Vous avez une piste du fichier à modifier?

    Merci d'avance.