2012-01-06 9 views
6

mam czuło kiedy tylko zrobić phpinfo()Domyślnym ustawieniem strefy czasowej nie działa pomimo czasowej jest ważne

Ostrzeżenie: phpinfo(): To nie jest bezpieczne polegać na ustawieniach strefy czasowej systemu. Jesteś wymagany, aby użyć ustawienia date.timezone lub date_default_timezone_set(). Jeśli używałeś któregokolwiek z tych sposobów i nadal otrzymujesz to ostrzeżenie, najprawdopodobniej błędnie wpisałeś identyfikator strefy czasowej. Wybraliśmy 'Europe/Helsinki' dla 'EET/2.0/bez DST' zamiast w /myadmin/i.php na linii 8

tutaj jest i.php:

<?php 
//echo date_default_timezone_get(); 

date_default_timezone_set("Europe/Kiev"); 

//echo date("l"); 

phpinfo(); 
?> 

I jak można zobaczyć, kiedy robię date_default_timezone_set ("Europa/Kijów") pojawia się:

Notice: date_default_timezone_set(): Identyfikator strefy czasowej 'Europa/Kijów' jest nieważny w /myadmin/i.php na linii 4

Jestem pewien, że używam prawidłowy ciąg czasowej z here, a ja nie ustawiony:

date.timezone = Europa/Kijów

w pliku php.ini.

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

Naprawdę nie mogę zrozumieć, co sprawa. Dziękuję.

+0

Co 'date_default_timezone_set ('Europe/Kijów');' powrócić? Powinien (http://nl3.php.net/date_default_timezone_set) zwracać 'true' na sukces i' false' na niepowodzenie. – bouke

+0

zwraca bool (fałsz) – Denys

+0

Czy działają inne strefy czasowe? Czy możesz spróbować przykładu podanego na http://php.net/manual/en/datetimezone.listidentifiers.php, aby wydrukować wszystkie obsługiwane strefy czasowe? – Gordon

Odpowiedz

6

Dzięki komentarzom udało mi się rozwiązać mój problem. Co robiłem w konsoli:

#yum install php-pear 

#pecl install timezonedb 

Wymagało to kompilator C:

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

... tak zrobiłem:

#yum install gcc 

również jeśli pojawi się błąd o komendzie make, po prostu uruchom

#yum install make 

Wreszcie, spróbuj ponownie:

#pecl install timezonedb 

... wyświetla na końcu:

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

dodałem "extension = timezonedb.so" do /etc/php.ini i wznowiona PHP- FPM:

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

przed uruchomieniem pecl, potrzebujesz phpize, chcesz zainstalować php-devel #yum install php-devel –

0

Aby rozszerzyć rozwiązanie futureboxlab użytkownika, można napotkać inny błąd dotyczący polecenie „make”, jeśli nie masz zainstalowanego make. W takim przypadku będziesz wystarczy uruchomić

#yum install make 

następnie, po raz kolejny (trzeci raz jest urok)

#pecl install timezonedb 
Powiązane problemy