2012-08-24 30 views
8

benim php.ini dosyasında bu girişi vardır:php date.timezone komut satırı komut dosyası için doğru çalışmıyor sadece

date.timezone = 'Europe/London'; 

Ama bir komut satırı komut DateTime() kullanmak her zaman ben hala olsun aşağıdaki hata:

Exception: DateTime::__construct(): 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 'Europe/London' for 'BST/1.0/DST' instead 

Bu nedenle herhangi komut aşağıdaki yapmak zorunda bu işe almak için:

date_default_timezone_set('Europe/London'); 

W şapka bu hataya neden olabilir? i almak

<?php 

var_dump(ini_get('date.timezone')); 
exit; 

komut satırında: Web tarayıcısında

string(0) "" 

i olsun:

GÜNCELLEME

ben hem komut satırı ve web tarayıcısında aşağıdaki kullanılan

string(13) "Europe/London" 
+2

php.ini dosyasını değiştirdikten sonra sunucunuzu yeniden başlattınız mı? –

+0

Evet, yeniden başlatıldı, ancak değer bir süre için ayarlandı ve sunucu aralarında birçok kez yeniden başlatıldı. Sadece bir özel durum satırı komut dosyası yazdığım zaman Özel Durum – user1572427

+0

gerçekleşiyor Echo ini_get ('date.timezone') deneyebilirsiniz; ve aslında neyin ayarlandığını görüyor musunuz? –

cevap

17

CLI ve web sunucusu (ve cgi ve fpm) farklı php.ini -files kullanır. Çünkü tarayıcıda doğru değeri gördüğünüzü sanırım yanlış olanı düzenlediniz. Üzerinde, düzenlemek zorunda olduğunuz hangisi olduğunu bulmak için

. Bu örneğin, ikinci satırda biri

Loaded Configuration File:   /etc/php5/cli/php.ini 
1

(medya tapınağın gibi) Bazı sunucular yapmak özellikle domains.So için yapılandırmaları/etc altında ortak php.ini dosyasını erişecek sunucu/php.ini ancak tarayıcı etki alanın php.ini dosyasına erişebilir. Sorun oluşabiliyor

+1

Bu CLI ile ilgili, alanın ne olduğu bağımsız. – KingCrunch