2012-01-06 63 views
6

tôi geting khi tôi chỉ làm phpinfo()Setting múi giờ mặc định không hoạt động mặc dù múi giờ là hợp lệ

Cảnh báo: phpinfo(): Nó không phải là an toàn dựa trên các thiết lập múi giờ của hệ thống. Bạn đang yêu cầu để sử dụng cài đặt date.timezone hoặc hàm date_default_timezone_set(). Trong trường hợp bạn sử dụng bất kỳ phương pháp nào trong số những phương pháp đó và bạn vẫn nhận được cảnh báo này, rất có thể bạn đã viết sai chính tả định danh múi giờ. Chúng tôi chọn 'Châu Âu/Helsinki' cho 'EET/2.0/no DST' thay vì trong /myadmin/i.php trên dòng 8

đây là i.php:

<?php 
//echo date_default_timezone_get(); 

date_default_timezone_set("Europe/Kiev"); 

//echo date("l"); 

phpinfo(); 
?> 

Và như bạn có thể thấy, khi tôi làm date_default_timezone_set ("Châu Âu/Kiev") tôi nhận được:

Chú ý: date_default_timezone_set(): 'Châu Âu/Kiev' ID múi giờ là không hợp lệ trong /myadmin/i.php trên dòng 4

Tôi chắc rằng tôi đang sử dụng chuỗi múi giờ hợp lệ từ here, và tôi đã thiết lập:

date.timezone = Châu Âu/Kiev

trong tập tin php.ini.

Môi trường: CentOS 6, nginx/1.1.11, PHP 5.3.8 (fpm-fcgi)

Tôi thực sự không thể hiểu một vấn đề gì. Cảm ơn bạn.

+0

gì 'date_default_timezone_set ('Châu Âu/Kiev'); 'trở lại? Nó [nên] (http://nl3.php.net/date_default_timezone_set) trả về 'true' thành công và' false' trên thất bại. – bouke

+0

nó trả về bool (false) – Denys

+0

Có bất kỳ múi giờ nào khác hoạt động không? Bạn có thể thử ví dụ được đưa ra tại http://php.net/manual/en/datetimezone.listidentifiers.php để in tất cả các múi giờ được hỗ trợ không? – Gordon

Trả lời

6

Nhờ nhận xét, tôi đã có thể giải quyết được vấn đề của mình. Những gì tôi đã làm, trong giao diện điều khiển:

#yum install php-pear 

#pecl install timezonedb 

Nó đòi hỏi biên dịch c:

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

... vì vậy tôi đã làm:

#yum install gcc 

Ngoài ra, nếu bạn nhận được một lỗi về lệnh make, chỉ cần chạy

#yum install make 

Cuối cùng, hãy thử lại:

#pecl install timezonedb 

... nó sẽ hiển thị ở cuối:

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

tôi thêm "extension = timezonedb.so" để /etc/php.ini, và khởi động lại PHP- fpm:

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

trước khi chạy pecl, bạn cần phpize, nó muốn php-devel được cài đặt #yum install php-devel –

0

Để mở rộng giải pháp của futureboxlab, bạn có thể gặp lỗi khác liên quan đến lệnh 'make' nếu bạn chưa cài đặt. Trong trường hợp đó bạn sẽ chỉ cần phải chạy

#yum install make 

sau đó, một lần nữa (lần thứ ba là sự quyến rũ)

#pecl install timezonedb 
Các vấn đề liên quan