php 5.3.1/testing: Fehlerhafte Zeitfunktionen???

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
frankieboy
Beiträge: 355
Registriert: 19.08.2003 15:25:48
Wohnort: Bremen

php 5.3.1/testing: Fehlerhafte Zeitfunktionen???

Beitrag von frankieboy » 06.03.2010 12:19:06

Hallo,

in der genannten php-Version scheint der Wurm zu sein, selbst in Standard-Scripten wie phphinfo() wird auf den Fehler hingewiesen:
date

Warning: phpinfo() [function.phpinfo]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CET/1.0/no DST' instead in /var/www/system/html/phpinfo/index.php on line 2
Der Fehlerhinweis taucht aber auch in anderen Anwendungen auf (phpMyAdmin, eigene Scripte).

In der php.ini habe ich folgenden Eintrag vorgenommen:

Code: Alles auswählen

date.timezone = "Europe/Berlin"
Der Fehlerhinweis bleibt und mehr Möglichkeiten der Fehlerbehebung sehe ich im Moment nicht. Wer hat Ideen?

Viele Grüße

Frankieboy
Zuletzt geändert von frankieboy am 06.03.2010 16:08:20, insgesamt 2-mal geändert.
Debian Bookworm mit xfce-Desktop

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: php 3.1.5/testing: Fehlerhafte Zeitfunktionen???

Beitrag von rendegast » 06.03.2010 14:05:18

php 3.1.5 ist schon eine Weile her?
Gemeint ist 5.3.1?

Gibt mehrere (php).ini

Code: Alles auswählen

$ locate php.ini | sort
/etc/php5/cgi/php.ini
/etc/php5/cli/php.ini
/etc/php5/conf.d/aa_php.ini_recommended.ini
Gibt

Code: Alles auswählen

php[5] -i | grep date
php[5]-cgi -i | grep date
selbe Werte aus?



instead in /var/www/system/html/phpinfo/index.php on line 2
Was steht denn da?
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

frankieboy
Beiträge: 355
Registriert: 19.08.2003 15:25:48
Wohnort: Bremen

Re: php 3.1.5/testing: Fehlerhafte Zeitfunktionen???

Beitrag von frankieboy » 06.03.2010 16:06:52

rendegast hat geschrieben:php 3.1.5 ist schon eine Weile her?
Gemeint ist 5.3.1?
:oops: Gemeint ist tatsächlich 5.3.1 (genauer aus Debian-Package 5.3.1-5)
rendegast hat geschrieben: Gibt mehrere (php).ini

Code: Alles auswählen

$ locate php.ini | sort
/etc/php5/cgi/php.ini
/etc/php5/cli/php.ini
/etc/php5/conf.d/aa_php.ini_recommended.ini
Bei mir sieht das so aus:

Code: Alles auswählen

$ locate php.ini | sort
/etc/php5/apache2/php.ini
/etc/php5/cli/php.ini
/usr/share/doc/php5-common/examples/php.ini-dist
/usr/share/doc/php5-common/examples/php.ini-paranoid
/usr/share/doc/php5-common/examples/php.ini-recommended
/usr/share/php5/php.ini-dist
/usr/share/php5/php.ini-dist.cli
rendegast hat geschrieben: Gibt

Code: Alles auswählen

php[5] -i | grep date
php[5]-cgi -i | grep date
selbe Werte aus?

Code: Alles auswählen

php -i | grep date
date
date/time support => enabled
date.default_latitude => 31.7667 => 31.7667
date.default_longitude => 35.2333 => 35.2333
date.sunrise_zenith => 90.583333 => 90.583333
date.sunset_zenith => 90.583333 => 90.583333
date.timezone => Europe/Berlin => Europe/Berlin

php -cgi -i | grep date
date
date/time support => enabled
date.default_latitude => 31.7667 => 31.7667
date.default_longitude => 35.2333 => 35.2333
date.sunrise_zenith => 90.583333 => 90.583333
date.sunset_zenith => 90.583333 => 90.583333
date.timezone => no value => no value
Allerdings läuft php bei mir auch nicht als cgi-Modul
rendegast hat geschrieben: instead in /var/www/system/html/phpinfo/index.php on line 2
Was steht denn da?

Code: Alles auswählen

<?php
phpinfo();
?>
:D (gesamter Dateinhalt)

Ich hoffe, die Angaben sind zur Fehlerfindung nützlich. Danke.

Viele Grüße

Frankieboy
Debian Bookworm mit xfce-Desktop

Benutzeravatar
Maik aus MS
Beiträge: 603
Registriert: 19.08.2005 17:01:19
Wohnort: Greven
Kontaktdaten:

Re: php 5.3.1/testing: Fehlerhafte Zeitfunktionen???

Beitrag von Maik aus MS » 06.03.2010 16:34:56

Has du diese Zeile selbst geschrieben?

Code: Alles auswählen

date.timezone = "Europe/Berlin"
Ich mein es wird anders geschrieben. Versuch mal das:

Code: Alles auswählen

date_default_timezone_set('Europe/Berlin')
Maik
Die mich kennen mögen mich.
Die mich nicht mögen können mich.

frankieboy
Beiträge: 355
Registriert: 19.08.2003 15:25:48
Wohnort: Bremen

Re: php 5.3.1/testing: Fehlerhafte Zeitfunktionen???

Beitrag von frankieboy » 06.03.2010 18:16:13

Maik aus MS hat geschrieben:Has du diese Zeile selbst geschrieben?

Code: Alles auswählen

date.timezone = "Europe/Berlin"
Das ist der "globale" Eintrag in der php.ini
Maik aus MS hat geschrieben:Ich mein es wird anders geschrieben. Versuch mal das:

Code: Alles auswählen

date_default_timezone_set('Europe/Berlin')
Wenn ich die Dokumentation richtig verstehe, kann mit dieser Einstellung die timezone für jedes einzelne Script individuell bestimmt werden. Nachteil: Die Codezeile muss auch tatsächlich in jedem relevanten Script eingetragen werden. Ich habe das jetzt mal gemacht und meine Datei zu phpinfo() sieht jetzt wie folgt aus:

Code: Alles auswählen

<?php
date_default_timezone_set('Europe/Berlin');
phpinfo();
?>
Die Fehleranzeige ist weg, was natürlich gut ist ;-), trotzdem bin ich nicht zufrieden. Warum wird die "globale" Einstellung in der php.ini ignoriert? Ich habe jetzt zwar eine Lösung, die mir aber unsauber vorkommt :?

Danke natürlich trotzdem für Deinen Tipp, Maik.

Viele Grüße

Frankieboy
Debian Bookworm mit xfce-Desktop

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: php 5.3.1/testing: Fehlerhafte Zeitfunktionen???

Beitrag von rendegast » 06.03.2010 18:36:00

Warum wird die "globale" Einstellung in der php.ini ignoriert?
Weil es nicht die globale ist.
Die cli/php.ini wird in diesem Fall wohl nicht referenziert.

Die Dinger werden in der Reihenfolge

Code: Alles auswählen

/etc/php5/ANWENDUNG/php.ini
/etc/php5/ANWENDUNG/conf.d/*.ini
abgearbeitet.

Wenn Du eine Einstellung für alle Anwendungen setzen willst,
bringe sie zBsp. in einer /etc/php5/conf.d/zz_lokal.ini unter.
Zumindest im Falle php5-cgi und php5-cli ist dieses verlinkt durch /etc/php5/ANWENDUNG/conf.d .
Bei mehrfach gesetzter Option ist der zuletzt eingelesene der gültige.

Ich lasse Paket-ini unberührt und setze Optionen in selbsterstellten Dateien.
Das mindert auch Nachfragen bei Upgrades, da die Upgrade-Mechanismen unveränderte Vorgängerdateien vorfinden.
Du kannst dabei mit aphabetischer oder nummerischer Sortierung arbeiten.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
Maik aus MS
Beiträge: 603
Registriert: 19.08.2005 17:01:19
Wohnort: Greven
Kontaktdaten:

Re: php 5.3.1/testing: Fehlerhafte Zeitfunktionen???

Beitrag von Maik aus MS » 07.03.2010 11:12:56

Ich habe die oben beschriebene Zeile in der php.ini gefunden aber ohne Europe/Berlin. Den Ort habe ich nur eingetragen und dann war gut.
Der Fehler ist bei mir durch ein normales update entstanden. Bei testing koennen schon mal Fehler auftreten.

Ich habe mein System neu aufgesetzt(wegen ext4 usw) und dieser Fehler ist nicht mehr aufgetreten.

Maik
Die mich kennen mögen mich.
Die mich nicht mögen können mich.

Antworten