[PHP] - Hightchart et NGINX

Parce qu'il en faut pour tout le monde, discutez ici d'ADA, de shell et autres Wolfram...

Modérateur : Francois

Répondre
Avatar du membre
Frollo
Messages : 35
Enregistré le : mer. 2 sept. 2015 22:14

[PHP] - Hightchart et NGINX

Message par Frollo » dim. 6 janv. 2019 12:50

Je suis en train de basculer un serveur web qui met à dispo entre autres des graphiques de températures d'un (Pi 3 - Jessie 8.0, Apache2, MariaDB, PHP) vers un (Pi3B+ - Stretch 9.4, NGINX, MariaDB,PHP-FPM).

Mes pages PHP qui créent les graphiques ne marchent plus... :(
Je galère un peu pour trouver la raison...

page php :

Code : Tout sélectionner

<!DOCTYPE html>
<html>
<head>
    <title>Surveillance de la TEMPERATURE</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script>
    <script src="http://code.highcharts.com/highcharts.js"></script>
</head>
 
<body>
 
<span style="text-align: center">
<?php
// ************* preparation de la connexion a MySQL ****************************
    $hostname = "localhost";
    $database = "bd";
    $username = "user";
    $password = "pass";
 
    function connectMaBase($hostname, $database, $username, $password){
        $Conn = mysql_connect ($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR);  
        mysql_select_db($database, $Conn);
    }
 
// ************* preparation de la requete **************************************
    $query1 = "SELECT date, house_temp FROM meteo_maison ORDER BY `date` DESC  LIMIT 500";
                 
// connexion mysql et lancement requete *****************************************
    connectMaBase($hostname, $database, $username, $password); // on ouvre la base
    $req1 = mysql_query($query1) ; // on lance la requete
	echo $req1
    mysql_close(); // on ferme la base
     
// ********** traitement du resultat ********************************************
    while($data = mysql_fetch_assoc($req1)) {
        $dateD = strtotime($data[date]) * 1000; //transforme la date MySQL en timestamp
        $liste1[] = "[$dateD, $data[house_temp]]"; // format data pour highchart [x,y],[x,y].....        
    }
    $liste1 = join(',', array_reverse($liste1)); // on inverse l'ordre car la requete SQL sort le resultat a l'envers 
?>
</span>

<div id="graphique1"></div>
 
<script type="text/javascript">
//**ceci est du code Highcharts.com*************************************************************************
//** vous pouvez trouver toutes les decriptions des options sur le site officiel****************************
// temperature 
//$.getJSON('https://www.highcharts.com/samples/data/jsonp.php?filename=range.json&callback=?', 
$(function() {
	Highcharts.setOptions({
		global: {
			useUTC: false
				}
		});
    chart1 = new Highcharts.Chart({
        chart: {
            renderTo: 'graphique1',
            type: 'spline',
            zoomType: 'x',
            backgroundColor: null,
        },
        title: {
            text: 'Température Bureau',
            style:{
                color: '#4572A7',
            },
        },
        legend: {
            enabled: false,
            backgroundColor: 'white',
            borderRadius: 14,
        },
        xAxis: {
            type: 'datetime',
            dateTimeLabelFormats: { 
                month: '%e. %b',
                year: '%b',
            }
         },
        yAxis: [{ 
            labels: {
                format: '{value} °C',
                style: {
                    color: '#C03000',
                },
            },
            title: {
                text: '',
                style: {
                    color: '#C03000',
                },
            }
        }],
        tooltip: {
            shared: true,
            crosshairs: true,
            borderRadius: 6,
            borderWidth: 3,
            xDateFormat: '%A %e %b  %H:%M:%S',
            valueSuffix: ' °C',
         },
        plotOptions: {
            spline: {
                marker: {
                    enabled: true, 
                },
		dataLabels:{
		    enabled: true,
		},
            },
        },
 
        series: [{
            name: 'Temp. intérieur',
            color: 'red',
            zIndex: 1,
            data: [<?php echo $liste1; ?>] // c'est ici qu'on insert les data
        }]
    });
});
</script>
 
</body>
</html>

Un peu tricky l'emboitement de code PHP-HIGHCHART-MySQL/PDO et serveur du Raspberry Pi, j'en conviens :?

Quelqu'un une idée ? Peut être une incompatibilité de PHP vers PHP-FPM ?

mike913
Raspinaute
Messages : 246
Enregistré le : mar. 7 oct. 2014 09:46
Localisation : Morsang / Orge - Essonne
Contact :

Re: [PHP] Hightchart et NGINX

Message par mike913 » dim. 6 janv. 2019 13:32

Bonjour,
C'est difficile de dire ce qui ne fonctionne pas sans les messages d'erreurs.
De plus il serait préférable de séparer le PHP, en le mettant dans un script séparé.
Mon site https://meteo.folcke.net/ fonctionne avec NGINX et PHP 7
DS712+ 2x Western Digital WD10EADS-00L 1000 GB (SHR) - Firmware: DSM 6.1.6-15266
Raspberry - RFXTRX433 - Aeon Labs ZStick V2 - Domoticz
FreeBox v6
https://meteo.folcke.net
https://wiki.folcke.net

Avatar du membre
deneth
Messages : 11
Enregistré le : dim. 16 sept. 2018 14:17

Re: [PHP] Hightchart et NGINX

Message par deneth » dim. 6 janv. 2019 20:19

Oui difficile de t'aider sans message d'erreur.
J'ai regardé vite fait le code php, et je n'ai pas vu de choses choquantes.
Je pense à une incompatibilité de fonctions entre version de PHP.
C'était quelle version de PHP avec apache, et quelle version avec Nginx?
J'ai moi aussi migré des pages php de apache+php vers nginx+php avec une autre bibliothèque de graphique, et je ne me souviens pas avoir eu de gros soucis ( c'était pas sur RPi ).

Répondre

Retourner vers « Autres langages »