J'ai un projet Symfony2. J'ai mis à jour mon php à 5.5.7 aujourd'hui et depuis lors, je reçois le
Warning: date_default_timezone_get(): 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...
J'installe le fuseau horaire par défaut dans mon php.ini
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = "Europe/Paris";
Pour être sûr que c'est le bon php.ini, je vérifiais avec
phpinfo();
Et le chemin que je vais y arriver est celui que je modifie:
/usr/local/php5.5.7/lib
Mais là-bas, je vois le
Default timezone UTC
Ce qui est étrange.
une idée? Je vous remercie.
Vous essayez peut-être de le définir dans le php.ini
d'Apache, mais votre CLI (interface de ligne de commande) php.ini
n'est pas bon.
Recherchez votre fichier php.ini
à l'aide de la commande suivante:
php -i | grep php.ini
Puis recherchez date.timezone
et réglez-le sur "Europe/Amsterdam"
. tous les fuseaux horaires valides seront trouvés ici http://php.net/manual/en/timezones.php
Une autre façon (si l’autre ne marche pas), cherchez le fichier AppKernel.php
, qui devrait se trouver dans le dossier app
de votre Symfony répertoire du projet. Remplacez la fonction __construct
ci-dessous dans la classe AppKernel
:
<?php
class AppKernel extends Kernel
{
// Other methods and variables
// Append this init function below
public function __construct($environment, $debug)
{
date_default_timezone_set( 'Europe/Paris' );
parent::__construct($environment, $debug);
}
}
J'ai trouvé un moyen similaire de résoudre ce problème (du moins c'est ce qui s'est passé pour moi).
Commencez par vérifier où se trouve le CLI php.ini
:
php -i | grep "php.ini"
Dans mon cas, je me suis retrouvé avec: Fichier de configuration (php.ini) Chemin =>/etc
Ensuite, cd ..
tout le chemin du retour et cd
dans /etc
, faites ls
dans mon cas, php.ini ne s'est pas présenté, mais seulement un php.ini.default
Maintenant, copiez le fichier php.ini.default nommé php.ini:
Sudo cp php.ini.default php.ini
Pour éditer, changez les permissions du fichier:
Sudo chmod ug+w php.ini
Sudo chgrp staff php.ini
Ouvrez le répertoire et éditez le fichier php.ini:
open .
Astuce: si vous ne pouvez pas éditer le fichier php.ini à cause d'un problème d'autorisations, copiez 'php.ini.default' et collez-le sur votre bureau. Renommez-le en "php.ini" puis ouvrez-le et éditez-le après l'étape 7. Puis déplacez-le (copiez-le/collez) dans le dossier/etc. Le problème sera résolu.
Recherchez [Date] et assurez-vous que la ligne suivante est dans le bon format:
date.timezone = "Europe/Amsterdam"
J'espère que cela pourrait vous aider.
La réponse par crack actuellement acceptée est obsolète dans Symfony 2.3 et sera supprimée par la version 3.0. Il devrait être déplacé vers le constructeur:
public function __construct($environment, $debug) {
date_default_timezone_set('Europe/Warsaw');
parent::__construct($environment, $debug);
}
Depuis PHP 5.5, il existe un fichier php.ini distinct pour l'interface CLI. Si vous utilisez la console de symfony à partir de la ligne de commande, ce fichier php.ini spécifique est utilisé.
Dans Ubuntu 13.10, vérifiez le fichier:
/etc/php5/cli/php.ini
Suivi de réponse de sas , PHP 5.4, Symfony 2.8, je devais utiliser
ini_set('date.timezone','<whatever timezone string>');
au lieu de date_default_timezone_set
. J'ai également ajouté un appel à ini_set
en haut d'un web/config.php
personnalisé pour que cette vérification aboutisse.
Le problème apparaît lorsque nous utilisons PHP 5.1 sur Redhat ou Centos