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 ..
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 !!!
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) ...
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.
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é.
J'ai récemment rencontré le même problème avec PHP 5.6.4.
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.
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
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.
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.
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.
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>
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.