Page 1 sur 1

[PHP] - Hightchart et NGINX

Posté : dim. 6 janv. 2019 12:50
par Frollo
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 ?

Re: [PHP] Hightchart et NGINX

Posté : dim. 6 janv. 2019 13:32
par mike913
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

Re: [PHP] Hightchart et NGINX

Posté : dim. 6 janv. 2019 20:19
par deneth
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 ).