2010-02-06 7 views
64

Eccone uno strano. Ho appena l'aggiornamento a PHP 5.3.0 e dal momento che l'aggiornamento sto ottenendo il seguente avviso:Configurazione PHP: non è sicuro affidarsi alle impostazioni del fuso orario del sistema

Attenzione: getdate() [function.getdate]: Non è sicuro di fare affidamento sulla fuso orario del sistema impostazioni. È richiesto per utilizzare l'impostazione date.timezone o la funzione date_default_timezone_set() . Nel caso in cui tu abbia usato uno dei metodi e tu sia ancora ricevendo questo avviso, molto probabilmente è errato l'identificatore del fuso orario. Abbiamo scelto 'America/Chicago' per 'CST/-6.0/no DST'

Dopo aver guardato in vari forum, tutti dicono che per risolvere il problema, tutto quello che dovete fare è modificare la zona data php.ini e riavvia Apache.

Non ha funzionato per me.

ho cercato

date.timezone="America/New_York" 

date.timezone=America/New_York 

date.timezone="US/Central" 

riavviato apache dopo che ho fatto la modifica.

Dato che ho ancora la versione precedente di PHP installare, ho anche fatto in modo che sto modificando il file php.ini che l'attuale versione di PHP utilizza al momento di caricare

/usr/local/php5/lib/php.ini

Ancora ottenere l'avvertimento.

Qualche suggerimento?

Grazie per il tempo.

+7

Stai modificando il file ini corretto? – rrrfusco

+3

Ho trovato questo un problema che il fuso orario è stato impostato nel php.ini di apache ma non nel php.ini cli. – Kzqai

+0

Il fuso orario deve essere reale, UTC o GMT non funzioneranno. –

risposta

2

Verificare la presenza di errori di sintassi nel file php.ini, specialmente prima i paramaters Data, che impediscono che il file venga analizzato correttamente.

7

Mi è capitato di dover installare Apache & PHP su due laptop di recente. Dopo aver pianto e digrignato i denti, ho notato nell'output di phpinfo che (per qualsiasi ragione: non prestare attenzione durante l'installazione di PHP, programma di installazione errato) Apache si aspettava che php.ini fosse da qualche parte dove non lo era.

due scelte:

  1. metterlo in cui Apache pensa che dovrebbe essere o
  2. punto di Apache alla vera posizione del php.ini

... e riavviare Apache. Le impostazioni del fuso orario dovrebbero essere riconosciute a quel punto.

37

Tchalvak, che ha commentato la domanda originale, mi ha colpito in testa.Sono stato la modifica (io uso Debian):

/etc/php5/apache2/php.ini 

... che aveva il fuso orario corretto per me ed era l'unico file .ini essere caricato con date.timezone all'interno di esso, ma stavo ricevendo quanto sopra errore quando ho eseguito uno script tramite Bash. Non avevo idea che avrei dovuto modificare:

/etc/php5/cli/php.ini 

pure. (Beh, per me è stato 'anche', per te potrebbe essere diverso, naturalmente, ma terrò le mie versioni Apache e CLI di php.ini sincronizzate ora).

+1

+1 OMG, sei un salvatore !!!!!!!!!!! Ho collegato simbolicamente il file CLI al file apache ini. Niente più di questa confusione! –

+0

Nessun problema! Il collegamento simbolico è probabilmente il miglior piano per essere onesti. Felice di aver aiutato. :) – Vaughany

-10

anche si può provare questo

date.timezone = <?php date('Y'); ?> 
2

Modifica l'index.php come segue:

require_once($yii); 
$app = Yii::createWebApplication($config); 
Yii::app()->setTimeZone('UTC'); 
$app->run(); 
+0

Sebbene tu risponda potresti risolvere il problema, fare un piccolo commento su come funziona non danneggerà e renderà il PO più comprensibile su cosa stai facendo. – nKn

+0

Nel codice generato automaticamente yii ha creato l'applicazione con le informazioni fornite nel file di configurazione. In questo caso a livello di applicazione stiamo impostando il fuso orario. Quindi abbiamo bisogno di creare $ app invece di scrivere come –

+0

Nel codice generato automaticamente yii ha creato l'applicazione con le informazioni fornite nel file di configurazione. In questo caso a livello di applicazione stiamo impostando il fuso orario. Quindi dobbiamo creare $ app invece di scrivere come Yii :: createWebApplication ($ config) -> run() in quanto ciò non ci consente di apportare modifiche all'app prima dell'esecuzione. Il cambiamento che vogliamo fare fa conoscere all'app il nostro fuso orario. In futuro, se qualsiasi altro parametro si desidera modificare, è possibile farlo facilmente modificando l'app prima di eseguirla. Sperando che sia chiaro cosa sto cercando di fare :) –

2

Ovviamente sono un po 'fuori stagione su questa domanda, ma per il bene della prossimo malato: ho appena avuto questo problema e nel mio caso (a differenza di OP che ha provato lo stesso senza successo) la correzione era di revisionare php.ini, modificando

date.timezone = America/New York 

a

date.timezone = America/New_York 

Questo è l'aggiunta di sottolineatura.

1

ho modificato /etc/php.ini

[Data] ; Definisce il fuso orario predefinito utilizzato dalle funzioni di data ; http://php.net/date.timezone date.timezone = ('Asia/kolkata')

e ora funziona bene.

Vipin Pal

5

provare questo, funziona per me.

date_default_timezone_set('America/New_York'); 

Nel file effettivo che si è lamentato.

6

aprire il file .htaccess, aggiungere questa riga al file, salvare, e riprovare:

php_value date.timezone "America/Sao_Paulo" 

Questo funziona per me.

1

Potrebbe essere stato dimenticato di rimuovere il punto e virgola per decommentare tale riga. Per la riga date.timezone = "US/Central", assicurati che non ci sia punto e virgola di fronte a quella linea.

0

Ho trovato, in modo bizzarro, che avrei potuto correggere gli errori posizionando la dichiarazione del fuso orario nella parte superiore del mio file php.ini.

Era già nel mio php.ini. Per due volte, in realtà. E mi stavo strappando i capelli perché tutti dicevano che doveva esserci un altro ini che veniva caricato ... Non c'era.

Spero che questo possa salvare qualcun altro il tempo/perdita di capelli.

Problemi correlati