При запуске сценария установки php для Blue.box (front end для FreeSwitch PBX), я получаю эту ошибку о сбое в часовом поясе.
Затем я начинаю копать. Я не уверен, что происходит на данный момент. Но вот что я имею:
Я создал файл info.php в каталоге public_html, который содержит одну строку:
И я получаю эту ошибку и вывод
Предупреждение: phpinfo (): Нельзя полагаться на настройки часового пояса системы. Вы должны использовать параметр date.timezone или функцию date_default_timezone_set (). Если вы использовали какой-либо из этих методов, и вы все еще получаете это предупреждение, скорее всего, вы ошиблись с идентификатором часового пояса. Мы выбрали 'America / New_York' для 'EDT / -4.0 / DST' вместо этого в /home/0default/public_html/info.php в строке 1
date/time support enabled "Olson" Timezone Database Version 0.system Timezone Database internal Default timezone America/New_York Directive Local Value Master Value date.default_latitude 31.7667 31.7667 date.default_longitude 35.2333 35.2333 date.sunrise_zenith 90.583333 90.583333 date.sunset_zenith 90.583333 90.583333 date.timezone America/New_York America/New_York
Я создал файл /etc/php.d/timezone.ini со следующим:
[root@mercury php.d]# cat timezone.ini ; default time zone date.timezone='America/New_York' [root@mercury php.d]#
Я могу изменить часовой пояс для America / Los_Angeles (например), и после перезагрузки apache поле «date.timezone» изменяется правильно.
Но я все еще получаю ошибку.
Есть идеи?
— Дополнительная заметка —
Если я изменил файл /etc/php.d/timezone.ini:
[root@mercury php.d]# cat timezone.ini ; default time zone date.timezone='America/Los_Angeles'
Я могу вызвать изменение вывода info.php:
Дата
Предупреждение: phpinfo (): Нельзя полагаться на настройки часового пояса системы. Вы должны использовать параметр date.timezone или функцию date_default_timezone_set (). Если вы использовали какой-либо из этих методов, и вы все еще получаете это предупреждение, скорее всего, вы ошиблись с идентификатором часового пояса. Мы выбрали 'America / New_York' для 'EDT / -4.0 / DST' вместо этого в /home/0default/public_html/info.php в строке 1
date/time support enabled "Olson" Timezone Database Version 0.system Timezone Database internal Default timezone America/New_York Directive Local Value Master Value date.default_latitude 31.7667 31.7667 date.default_longitude 35.2333 35.2333 date.sunrise_zenith 90.583333 90.583333 date.sunset_zenith 90.583333 90.583333 date.timezone America/Los_Angeles America/Los_Angeles
— Дополнительная заметка —
Для тех, кто учится (как и я), загружается несколько файлов .ini. На выходе info.php:
Configuration File (php.ini) Path /etc Loaded Configuration File /home/0default/etc/php5/php.ini Scan this dir for additional .ini files /etc/php.d Additional .ini files parsed /etc/php.d/curl.ini, /etc/php.d/dom.ini, /etc/php.d/fileinfo.ini, /etc/php.d/gd.ini, /etc/php.d/imap.ini, /etc/php.d/json.ini, /etc/php.d/mbstring.ini, /etc/php.d/mysql.ini, /etc/php.d/mysqli.ini, /etc/php.d/odbc.ini, /etc/php.d/pdo.ini, /etc/php.d/pdo_mysql.ini, /etc/php.d/pdo_odbc.ini, /etc/php.d/pdo_pgsql.ini, /etc/php.d/pdo_sqlite.ini, /etc/php.d/pgsql.ini, /etc/php.d/phar.ini, /etc/php.d/snmp.ini, /etc/php.d/sqlite3.ini, /etc/php.d/timezone.ini, /etc/php.d/wddx.ini, /etc/php.d/xmlreader.ini, /etc/php.d/xmlrpc.ini, /etc/php.d/xmlwriter.ini, /etc/php.d/xsl.ini, /etc/php.d/zip.ini
Первым загружается файл /etc/php.ini, затем «загруженный файл конфигурации», а затем файлы «scan this dir».
Так, например, нужно иметь возможность создавать несколько веб-сайтов php в разных часовых поясах по умолчанию. Установите мастер по умолчанию в /etc/php.ini, затем разрешите каждому веб-сайту иметь другой часовой пояс, указанный в разделе «Загруженный …». Затем, если речь идет о каких-либо переопределениях, мастер может снова переопределить файлы /etc/php.d.
Я попытался изменить «date.timezone» в каждом из трех местоположений и успешно изменить дату. Timezone, как показано в файле info.php … но он не изменяет значение «Часовой пояс», которое является значение, вызывающее ошибку.
Другое примечание. Скрипт .php, который я запускаю, на самом деле является Blue.box, интерфейсом FreeSwitch. Итак … Я не решаюсь изменить этот скрипт .php.
У вас есть 2 варианта:
Вызовите эту функцию date_default_timezone_set () перед использованием любых функций даты. Например, date_default_timezone_set("America/New_York");
,
Отредактируйте файл php.ini, обычно расположенный в /usr/local/php/php.ini
и изменив запись date.timezone . Вот список поддерживаемых часовых поясов .
В моем случае я обновил php.ini в двух местах. Одним из них был /etc/php5/apache2/php.ini
и /etc/php5/cli/php.ini
. Вы должны перезапустить апач, а затем он должен работать. Надеюсь это поможет!!!
Я решил эту проблему, найдя, какой php.ini использует ваш сервер. Во-первых, вы должны сделать страницу show phpinfo (), и вы заходите на страницу, вы можете увидеть обычную информацию; Во-вторых, найдите «Загруженный файл конфигурации» на странице, вы должны увидеть, какой файл php.ini используется вашим сервером. как: "/ и т.д. / php.ini"; В-третьих, вы редактируете определенный файл на своем сервере, например: date.timezone = «Азия / Шанхай», затем перезапустите сервер. Готово. Удачи.