web-dev-qa-db-fra.com

Impossible de définir le fuseau horaire par défaut dans PHP

J'ai défini cela dans mon fichier php.ini et j'ai redémarré le processus php5-fpm

date.timezone = "UTC"

Mais le script phpinfo () montre toujours ceci:

date.timezone   America/New_York    America/New_York

phpinfo() indique également que le fichier ini correct est utilisé.

J'ai redémarré - mais le problème a persisté. Puis j'ai fait:

Sudo service nginx stop
Sudo service Apache2 start

et date.timezone est correct lorsque mod-php (Apache2) est utilisé au lieu de fcgi qui est php dans nginx.

12
Stann

Vous avez probablement édité le mauvais php.ini. Voir php_info() (ou php -i pour l'interpréteur CLI) lequel est utilisé. Par exemple, sur Ubuntu (et probablement d’autres distributions Linux), son /etc/php5/cli/php.ini pour l’interprète cli, /etc/php5/Apache/php.ini/ pour celui utilisé par Apaches mod_php et /etc/php5/cgi/php.ini utilisé par php5-cgi (utilisé par nginx).

7
KingCrunch

Liste des valeurs de fuseau horaire prises en charge: http://php.net/timezones

2
Dave Kiss

Le problème semble être lié aux processus php-fpm persistants qui font référence aux anciens paramètres du fichier php.ini. Cela a fonctionné pour moi:

Obtenir les identifiants de processus pour php-fpm

root@thiru:/etc/php5/fpm/conf.d# ps aux | head -1 && ps aux | grep php-fpm | grep -v grep
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root     32650  0.0  0.5  86624 17032 ?        Ss   21:44   0:00    php-fpm: master process (/etc/php5/fpm/php-fpm.conf)                    
www-data 32652  0.0  0.1  86624  4700 ?        S    21:44   0:00 php-fpm: pool www                                                       
www-data 32653  0.0  0.1  86624  4704 ?        S    21:44   0:00 php-fpm: pool www   

Tuez les processus. En commençant par le maître.

kill -9 32650
kill -9 32652
kill -9 32653

Démarrer php-fpm en utilisant le script init

service php5-fpm start or /etc/init.d/php5-fpm start
2
thiru

Vérifiez votre installation FPM, si vous avez une piscine avec un chroot actif!

Si vous avez un environnement chroot, vous devez copier le fichier/etc/localtime (lien symbolique vers/usr/share/zoneinfo/xyz) et le répertoire/usr/share/zoneinfo vers votre chroot.

Messages d'erreur possibles:

Fatal error: phpinfo(): Timezone database is corrupt - this should *never* happen!  
Warning: phpinfo(): Invalid date.timezone value ‘UTC’, we selected the timezone ‘UTC’ for now.

Voir https://serverfault.com/questions/413293/php-fpm-chroot-jail-corrupts-timezone-db

0
Octeny