Zoneminder : MAJ ==> 1.29.0 problème - php's date.timezone

Hier, j’ai fait une MAJ de mon serveur (jessie avec backports) et j’ai cru voir passer un ‘zoneminder’, lors du défilement de l’upgrade . Sitôt après le prochain clic sur ma page de gestion ZM, plus rien, sauf cette ligne :

Heure a été vérifiée et tout semble être bon de ce côté :

$ timedatectl Local time: jeu. 2016-02-25 17:16:07 CET Universal time: jeu. 2016-02-25 16:16:07 UTC RTC time: jeu. 2016-02-25 16:16:07 Time zone: Europe/Paris (CET, +0100) NTP enabled: no NTP synchronized: yes RTC in local TZ: no DST active: no Last DST change: DST ended at dim. 2015-10-25 02:59:59 CEST dim. 2015-10-25 02:00:00 CET Next DST change: DST begins (the clock jumps one hour forward) at dim. 2016-03-27 01:59:59 CET dim. 2016-03-27 03:00:00 CEST
Je viens de faire un [mono]’/etc/init.d/zoneminder restart’[/mono] et j’aurais besoin de compétences pour savoir ce qu’il convient de faire :

$ sudo /etc/init.d/zoneminder restart [....] Restarting zoneminder (via systemctl): zoneminder.serviceJob for zoneminder.service failed. See 'systemctl status zoneminder.service' and 'journalctl -xn' for details. failed! Où se trouvent ces ‘systemctl status zoneminder.service’ and 'journalctl -xn’qu’il me faut aller lire :question:
Merci.

[quote=“ricardo”]$ sudo /etc/init.d/zoneminder restart [....] Restarting zoneminder (via systemctl): zoneminder.serviceJob for zoneminder.service failed. See 'systemctl status zoneminder.service' and 'journalctl -xn' for details. failed! Où se trouvent ces ‘systemctl status zoneminder.service’ and 'journalctl -xn’qu’il me faut aller lire :?:[/quote]
Ce sont tout simplement des commandes à entrer telles quelles dans ta console, avec ton utilisateur habituel.
Elles te donneront plus de détails sur ce qui coince.

Pour ce qui est de php.ini le mieux c’est php.net/manual/fr/timezones.php

[Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = Europe/Paris
Tu dois bien avoir un php.ini quelque part puisque zoneminder se plaint de php

phpfacile.com/apprendre_le_p … _php_ini_1

[quote=“vv222”][quote=“ricardo”]$ sudo /etc/init.d/zoneminder restart [....] Restarting zoneminder (via systemctl): zoneminder.serviceJob for zoneminder.service failed. See 'systemctl status zoneminder.service' and 'journalctl -xn' for details. failed! Où se trouvent ces ‘systemctl status zoneminder.service’ and 'journalctl -xn’qu’il me faut aller lire :question:[/quote]
Ce sont tout simplement des commandes à entrer telles quelles dans ta console, avec ton utilisateur habituel.
Elles te donneront plus de détails sur ce qui coince.[/quote]
Merci vv mais rien de passionnant trouvé avec ces commandes.

Pour ce qui est de php.ini le mieux c’est php.net/manual/fr/timezones.php

[Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = Europe/Paris
Tu dois bien avoir un php.ini quelque part puisque zoneminder se plaint de php

phpfacile.com/apprendre_le_p … _php_ini_1[/quote]
J’ai enfin trouvé des php.ini mais pas grâce à ‘find’ qui ne trouve rien. locate est un peu plus causant mais c’est encore le soft de KDE qui trouve le mieux.

[mono]/etc/php5/cli/php.ini
/etc/php5/apache2/php.ini
/usr/share/php5/php.ini-development
/usr/share/php5/php.ini-production
/usr/share/php5/php.ini-production.cli[/mono]

Celui de [mono]/etc/php5/cli[/mono] semble être le bon mais il est grand et il faut du temps pour trouver.

[code][PHP]

;;;;;;;;;;;;;;;;;;;
; About php.ini ;
;;;;;;;;;;;;;;;;;;;
; PHP’s initialization file, generally called php.ini, is responsible for
; configuring many of the aspects of PHP’s behavior.[/code]
Voici le morceau qui devrait convenir :

[code][Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone =

; http://php.net/date.default-latitude
;date.default_latitude = 31.7667

; http://php.net/date.default-longitude
;date.default_longitude = 35.2333

; http://php.net/date.sunrise-zenith
;date.sunrise_zenith = 90.583333

; http://php.net/date.sunset-zenith
;date.sunset_zenith = 90.583333[/code]
je suppose que dans la ligne [mono];date.timezone =[/mono] , je dois ajouter Europe/Paris et que je dois supprimer le ‘;’ pour décommenter. Je ne connais pas du tout PHP. :question:

EDIT :
Ben rien de mieux :confused:
j’ai aussi essayé en ne supprimant que le ‘;’ en début de ligne et en laissant vide après le ‘=’, mais toujours la même annonce laconique :
[mono]ZoneMinder is not installed properly: php’s date.timezone is not set to a valid timezone[/mono]

EDIT 2 :
Je viens de trouver ça, où la zone est placée entre guillemets.
J’essaierai demain.
https://www.siteground.com/kb/datetimezone_value_in_php/

Faut retirer le ; en tete de ligne et mettre une valeur

[Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = Europe/Paris

Oui, c’est ce que j’ai fait en premier, mais …:naughty:
[mono]date.timezone = Europe/Paris[/mono]
J’ai rebooté ensuite.

Dans toutes les configurations php.ini le paragraphe [Date] est commenté sur toutes les lignes, y-compris la ligne [mono];date.timezone =[/mono] qui est vide après le ‘=’. Et ça, même dans un ancien “Zoneminder” (version obsolète et boguée ailleurs), qui ne présente pas cette alerte.
J’ai trouvé le ligne d’alerte en question dans l’index.php de Zoneminder, mais je ne sais pas en tirer les conclusions. Besoin d’aide.
Lignes 69 à 72 de
https://github.com/ZoneMinder/ZoneMinder/blob/master/web/index.php

[quote]// Check time zone is set
if (!ini_get(‘date.timezone’) || !date_default_timezone_set(ini_get(‘date.timezone’))) {
date_default_timezone_set(‘UTC’);
Fatal( “ZoneMinder is not installed properly: php’s date.timezone is not set to a valid timezone” );
}[/quote]

il faut trouver le ini_get, la il a l’air de forcer UTC au passage

[quote]…il a l’air de forcer UTC au passage…[/quote]Seulement s’il ne trouve pas (ou mal définie) de [mono]Timezone[/mono] définie dans le système.

=======
Par curiosité, que donne :cat /etc/timezone

Pour reconfigurer timezone il y a (compte root):dpkg-reconfigure tzdata

$ cat /etc/timezone Europe/Paris

[code]$ sudo dpkg-reconfigure tzdata
[sudo] password for ricardo:

Current default time zone: 'Europe/Paris’
Local time is now: Fri Feb 26 14:54:53 CET 2016.
Universal Time is now: Fri Feb 26 13:54:53 UTC 2016.
[/code]

Je n’ai rien modifié, ce sont les donnée pré-inscrites

[quote=“grandtoubab”][quote]// Check time zone is set
if (!ini_get(‘date.timezone’) || !date_default_timezone_set(ini_get(‘date.timezone’))) {
date_default_timezone_set(‘UTC’);
Fatal( “ZoneMinder is not installed properly: php’s date.timezone is not set to a valid timezone” );
}[/quote]

il faut trouver le ini_get, la il a l’air de forcer UTC au passage[/quote]

Toutes les méthodes de recherche avec ini_get, *ini_get ou ini_get restent sans réponse.

J’essaierais bien de reconfigurer avec UTC, qu’en pensez-vous ,

[quote=“grandtoubab”][quote]// Check time zone is set
if (!ini_get(‘date.timezone’) || !date_default_timezone_set(ini_get(‘date.timezone’))) {
date_default_timezone_set(‘UTC’);
Fatal( “ZoneMinder is not installed properly: php’s date.timezone is not set to a valid timezone” );
}[/quote]

il faut trouver le ini_get, la il a l’air de forcer UTC au passage[/quote]

php.net/manual/fr/function.ini-get.php

fautdrait pouvoir tracer ou etre en mode debug pour voir ce que lit cette fonction

C’est trop Chinois pour moi.
Je crois que je vais laisser tomber ce putain de Zoneminder, avec lequel il ne se passe pas 3 mois sans qu’il y ait un emmerdement.
Le paquet .deb actuel est en Jessie-backports et s’il y a un bogue, ils ne sont pas pressé d’y remédier.

Vu le retour des commandes que j’avais demandé,

je peux dire que pour ce qui est de la variable timezone au niveau de ton système debian, tout va bien.

=======
Dans le fichier [mono]php.ini[/mono], je me demande si tu ne devrais pas formuler l’assignation de la valeur [mono]Europe/Paris[/mono] à la variable [mono]date.timezone[/mono] comme ce qui suit :

=======
Mais je pense que le problème est que [mono]php[/mono] devrait trouver et utiliser la valeur du système debian, ce qu’il ne fait pas.

C’est bien ce que je pense.
Je viens même de réinstaller et toujours cette même ligne. :013
On va attendre que ce bogue soit réparé.

C’est sûr que c’est rageant : Je viens de réinstaller un debian 8.3 sur mon EeePC900, et les noms de variables que j’utilisais pour paramétrer le touchpad de cette machine ne sont plus reconnues.
Moi qui m’étais fait des script faciles à lancer,

ça me me fait comme une sorte de… fffussoir (Pascal Vincent “Les robins des bois.”)

EDIT: J’ai finalement lancé une distribution en mode Live avec laquelle le touchpad fonctionnait,
puis j’ai récupéré avec synclient -l la liste des variables paramétrées,
et j’ai copié le tout sur la partition de mon installation debian.

Je vais fouiller pour savoir s’il n’existe pas une alternative à Zoneminder, qui fonctionne sous Debian.

Ricardo,
pour savoir si ton time zone PHP est bien défini, crée toi une page web de test avec un phpinfo.php
ou via

http://myservername/phpinfo (pas testé)
Je pense que c’est une mise à jour de php qui t’as mis le bazar, pas une mise à jour de ZM car ce test de timezone est fait depuis longtemps.
Mais il me semblait qu’il sortait juste en erreur dans les logs, pas qu’il bloquait le démarrage.

dans /etc/php5/apache2/php.ini, je mettrais

car c’est une variable de type string qui est attendue après le =, d’ou les “”.