2012-01-06 13 views
6

sto geting quando io faccio solo phpinfo()Impostazione fuso orario predefinito non funziona nonostante fuso orario sia valida

Attenzione: phpinfo(): Non è sicuro di fare affidamento sulle impostazioni di fuso orario del sistema. Sei richiesto per utilizzare l'impostazione date.timezone o la funzione date_default_timezone_set(). Nel caso in cui hai usato uno di questi metodi e ricevi ancora questo avviso, molto probabilmente hai sbagliato a digitare l'identificatore del fuso orario. Abbiamo scelto 'Europe/Helsinki' per 'EET/2.0/no DST' invece in /myadmin/i.php on line 8

qui è i.php:

<?php 
//echo date_default_timezone_get(); 

date_default_timezone_set("Europe/Kiev"); 

//echo date("l"); 

phpinfo(); 
?> 

E come si può vedo, quando faccio date_default_timezone_set ("Europa/Kiev") ottengo:

Avviso: date_default_timezone_set(): Timezone ID 'Europe/Kiev' non è valido in /myadmin/i.php sulla linea 4

sono sicuro che sto utilizzando stringa fuso orario valido dal here, e l'ho fatto impostare:

date.timezone = Europe/Kiev

nel file php.ini.

Ambiente: CentOS 6, nginx/1.1.11, PHP 5.3.8 (FPM-fcgi)

Io davvero non riesco a capire che cosa è una questione. Grazie.

+0

Cosa significa 'date_default_timezone_set ('Europe/Kiev');' tornare? [Dovrebbe] (http://nl3.php.net/date_default_timezone_set) restituisce 'true' in caso di successo e' false' in caso di errore. – bouke

+0

restituisce bool (falso) – Denys

+0

Gli altri fusi orari funzionano? Puoi provare l'esempio fornito su http://php.net/manual/en/datetimezone.listidentifiers.php per stampare tutti i fusi orari supportati? – Gordon

risposta

6

Grazie ai commenti, sono stato in grado di risolvere il mio problema. Quello che ho fatto, in console:

#yum install php-pear 

#pecl install timezonedb 

E 'richiesto il compilatore C:

configure: error: no acceptable C compiler found in $PATH 

... così ho fatto:

#yum install gcc 

Inoltre, se si ottiene un errore circa il comando make, è sufficiente eseguire

#yum install make 

Infine, riprova:

#pecl install timezonedb 

... visualizza alla fine:

You should add "extension=timezonedb.so" to php.ini 

ho aggiunto "extension = timezonedb.so" in /etc/php.ini e riavviato php- FPM:

#/etc/init.d/php-fpm restart 
+0

prima di eseguire pecl, hai bisogno di phpize, vuoi installare php-devel #yum install php-devel –

0

Per estendere la soluzione di futureboxlab, è possibile riscontrare un altro errore per quanto riguarda il comando 'make', se non si dispone di make installato. In questo caso avrete solo bisogno di correre

#yum install make 

poi, ancora una volta (la terza volta è il fascino)

#pecl install timezonedb