web-dev-qa-db-fra.com

Impossible de définir date.timezone Dans le fichier php.ini

J'utilise php5.5 et j'obtiens cette erreur chaque fois que j'utilise la fonction de date en PHP:

 Warning: 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 the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /var/www/info.php on line 1

le fichier de configuration chargé est ici:

/etc/php5/Apache2/php.ini 

donc j'ai changé le paramètre date.timezone en ceci:

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

; 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

Puis je redémarre le serveur:

Sudo /etc/init.d/Apache2 restart

mais en obtenant toujours cette erreur, j'ai essayé de vérifier le fichier .ini à l'emplacement du fichier Additional ini, mais rien ne remplace le paramètre date.timezone

J'ai vérifié l'autorisation du fichier php.ini, mais ne fonctionne toujours pas S'il vous plaît, guidez-moi pour résoudre ce problème, merci ..

19
Edxz

a finalement résolu mon problème, voici mon fichier de configuration chargé:

/etc/php5/Apache2/php.ini 

modifié le date.timezone ici mais cela ne fonctionne pas.

Donc, je vérifie les valeurs "Rechercher dans ce répertoire des fichiers .ini supplémentaires" dans phpinfo (), qui indiquent:

/etc/php5/Apache2/conf.d 

alors je recherche date.timezone parmi tous les fichiers de ce dossier mais n'en ai trouvé aucun.

c'est ma valeur additionnelle d'analyse de fichier .ini dans phpinfo ():

/etc/php5/Apache2/conf.d/05-opcache.ini, /etc/php5/Apache2/conf.d/10-pdo.ini, /etc/php5/Apache2/conf.d/20-json.ini, /etc/php5/Apache2/conf.d/20-mysql.ini, /etc/php5/Apache2/conf.d/20-mysqli.ini, /etc/php5/Apache2/conf.d/20-pdo_mysql.ini, /etc/php5/Apache2/conf.d/20-xdebug.ini, /etc/php5/Apache2/conf.d/30-mcrypt.ini 

J'ai modifié /etc/php5/Apache2/conf.d/20-xdebug.ini et ajouté cette ligne: 

date.timezone = Asia/Jakarta

très bizarre mais cela a résolu mon problème !!!

15
Edxz

Essaye ça:

date.timezone = "Asia/Jakarta"

Modifier:

Localisons le php.ini correct. Déclenchez-le dans Apache/nginx/quel que soit le serveur Web que vous utilisez (car la version en ligne de commande peut être différente de celle utilisée par celui-ci).

<?php
phpinfo();
?>

Quel est le .ini dans la sortie? Toujours le même?

Edit2:

Après l’édition php.ini, il suffit de redémarrer le serveur web (Apache ou nginx) ...

17
Damiano Barbati

Vous devriez vérifier par localiser php.in, s'il y en a un autre quelque part.

pour moi. il devrait y avoir CLI pour l'interface de ligne de commande:

/etc/php5/cli/php.ini
/etc/php5/fpm/php.ini

changer le /etc/php5/cli/php.ini

Ça marche pour moi maintenant.

5
temple

Une autre solution pour moi après avoir compilé PHP à partir du source était de vérifier que php.ini chargeait réellement un fichier de configuration. En ligne de commande

php --ini

résultats 

Configuration File (php.ini) Path: /usr/local/lib
Loaded Configuration File:         (none)
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

Trouve le. 

find -name "php.ini" #it was in /usr/local/php/php.ini
cp /usr/local/php/php.ini /usr/local/lib/php.ini

Redémarrez php (dans mon cas, /etc/init.d/php-fpm stop, /etc/init.d/php-fpm start) et cela fonctionne bien. Pour une raison quelconque, il s'est mal copié. 

  • Distro: Centos 7
  • Serveur Web: Nginx
  • Type: instance EC2
3
Andrew Howden

J'ai récemment rencontré le même problème avec PHP 5.6.4.

  • PHP 5.6.4 se comporte étrangement
  • PHP 5.6.11 se comporte normalement comme prévu

Lorsque je mets l'option de configuration date.timezone dans la section [PHP] du fichier de configuration, tout fonctionne correctement pour PHP 5.6.4. Par exemple, j'ai ajouté l'option au tout début du fichier php.ini

[PHP]
date.timezone = "Europe/Stockholm"

Mais quand je mets l'option de configuration comme cela est montré dans l'exemple sous la section [Date] cela ne fonctionne pas comme prévu, il semble que l'option soit ignorée

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
; this does not work for me for PHP 5.6.4 but works fine for PHP 5.6.11
date.timezone = "Europe/Stockholm"

Quand j'ajoute une option au 20-xdebug.ini comme c'est la suggestion dans la réponse acceptée https://stackoverflow.com/a/20731466/2111430 l'option est acceptée car ce fichier ne contient que la section [PHP]. Par curiosité, j'ai essayé d'autres fichiers ini inclus et il semble que je puisse utiliser n'importe quel fichier.

Une fois de plus, le problème ne m’était arrivé que avec PHP 5.6.4. Lorsque j'ai changé l'option sur le serveur avec PHP 5.6.11, il s'est comporté exactement comme je m'y attendais.

2
Victor Smirnov

Vérifiez les paramètres en conflit dans votre fichier php.ini, j'ai eu le même problème et dans mon cas, les paramètres xdebug définis avant date.timezone causant cette chose: Pour plus de détails, consultez: PHP Problème Xdebug - date.timezone & session .save_path undefined

1
mukund

Cela a fonctionné pour moi quand j'ai remarqué que l'entrée date.timezone dans php.ini avait été commentée. Après avoir supprimé le point-virgule, le fuseau horaire a été défini correctement. 

1
user3922395

J'ai corrigé cela dans Mac OS X El Capitan en créant une structure de dossiers:/Bibliothèque/Serveur/Web/Config/php, puis en créant un fichier php.ini dans ce nouveau dossier php avec la directive date.timezone.

0
Arthur Mastropietro

certains installateurs d’applications php en ligne de commande (comme l’installateur de symfony, ou même lorsque les scripts php sont exécutés à partir de cli), utilisez le fichier ini dans le répertoire php-cli

/etc/php5/cli/php.ini


cela a résolu mon problème similaire dans le processus de vérification de dépendance lors de l'installation de Symfony.

0
minhajul

Si vous définissez la valeur date.timezone dans php.ini mais que cela ne fonctionne pas (c'est-à-dire que la valeur locale et la valeur principale sont différentes), vous devrez peut-être mettre à jour quelque chose comme ceci dans votre fichier de configuration Apache:

<IfModule mod_php5.c>
  php_value date.timezone "Europe/Paris"
</IfModule>

0
paralaks

Dans mon cas, j'avais 2 enregistrements date.timezone= dans le fichier php.ini et le dernier remplaçait le premier. retirer l'un d'eux a résolu mon problème.

N'oubliez pas non plus que vous devez redémarrer le processus du serveur Web.

0
Accountant م