PHP 구성:시스템의 시간대 설정에 의존하는 것은 안전하지 않습니다.
여기 이상한 거.방금 php 5.3.0으로 업그레이드했는데 업그레이드 이후로 다음과 같은 경고가 표시됩니다.
경고: getdate() [function.getdate]:시스템의 시간대 설정에 의존하는 것은 안전하지 않습니다.date.timezone 설정 또는 date_default_timezone_set() 기능을 사용해야 합니다.이러한 방법을 사용했는데도 이 경고가 표시되는 경우, 시간대 식별자의 철자를 잘못 입력했을 가능성이 높습니다.'CST/-6.0/DST 없음'으로 '미국/시카고'를 선택하였습니다.
여러 포럼들을 살펴본 결과, 모두들 문제를 해결하기 위해서는 php.ini에서 날짜 영역을 편집하고 아파치를 다시 시작하기만 하면 된다고 합니다.
저한테는 통하지 않았어요.
나는 노력했다.
date.timezone="America/New_York"
date.timezone=America/New_York
date.timezone="US/Central"
변경 후 아파치를 다시 시작했습니다.
아직 이전 버전의 php 설치가 남아있기 때문에 현재 버전의 php가 로드할 때 사용하는 php.ini를 편집하고 있는지 확인했습니다.
/usr/local/php5/lib/php.ini
아직도 경고를 받고 있습니다.
좋은 의견이라도 있나?
시간 내주셔서 감사합니다.
원래 질문에 대해 언급했던 찰박은 나를 위해 정곡을 찔렀습니다.편집 중입니다. (데비안 사용)
/etc/php5/apache2/php.ini
...나에게 정확한 시간대를 가지고 있었고 .ini 파일 중 유일하게 date.timezone이 로드되었지만 Bash를 통해 스크립트를 실행했을 때 위 오류가 발생했습니다.편집을 해야 할 줄은 전혀 몰랐습니다.
/etc/php5/cli/php.ini
(저에게는 '역시'였습니다. 물론 다를 수도 있지만, 지금은 Apache 버전과 CLI 버전의 php.ini를 동기화한 상태로 유지하겠습니다.)
func: http://pl.php.net/manual/en/function.date-default-timezone-set.php 시간대를 설정하려고 했습니까?
저는 최근에 노트북 2대에 Apache & PHP를 설치해야 했습니다.많은 눈물을 흘리고 이를 갈은 후에, 나는 ppinfo의 출력에서 (어떤 이유로든: PHP 설치 중에 주의를 기울이지 않음, 잘못된 설치자) Apache가 php.ini가 없는 곳에 있을 것이라고 예상했다는 것을 알아차렸습니다.
두 가지 선택 사항:
- 아파치가 생각하는 곳에 두거나,
- 아파치를 당신의 php.ini의 실제 위치로 가리킵니다.
... 아파치를 다시 시작합니다.해당 시점에서 시간대 설정을 인식해야 합니다.
.htaccess 파일을 열고 이 행을 파일에 추가하고 저장한 다음 다시 시도합니다.
php_value date.timezone "America/Sao_Paulo"
저는 이 정도면 돼요.
이거 해봐요, 저한테 효과가 있어요.
date_default_timezone_set('America/New_York');
불평하던 실제 파일에서 말입니다.
php.ini 파일의 구문 오류, 특히 Date 매개 변수 이전에 파일을 올바르게 구문 분석하지 못하도록 합니다.
다음과 같이 index.php를 수정해주시기 바랍니다.
require_once($yii);
$app = Yii::createWebApplication($config);
Yii::app()->setTimeZone('UTC');
$app->run();
분명히 저는 이 질문에 대해 조금 시기를 벗어났지만, 다음 번 환자를 위해:나는 방금 이 문제가 있었고 내 경우 (성공하지 않고 동일하게 시도한 OP와 대조적으로) 수정은 php.ini를 수정하는 것이었습니다.
date.timezone = America/New York
로.
date.timezone = America/New_York
그것은 밑줄을 추가하는 것입니다.
/etc/php.ini를 수정했습니다.
[Date] ; date 함수에서 사용되는 기본 시간대를 정의합니다; http://php.net/date.timezone date.timezone = dateAsia/kolkata')
지금은 잘 작동하고 있습니다.
비빈팔
해당 행의 주석을 제거하기 위해 세미콜론을 제거하는 것을 잊어버렸을 수도 있습니다.를 위해date.timezone = "US/Central"
라인, 저 라인 앞에 세미콜론이 없는지 확인하세요.
저는 이상하게도 시간대 선언을 제 php.ini 파일의 맨 위에 놓음으로써 오류를 수정할 수 있다는 것을 발견했습니다.
그것은 이미 내 php.ini에 있었습니다.사실 두 번.그리고 머리를 뽑고 있었어요. 왜냐면 다들 내게 또 다른 인니가 실려있을거라고 해서...없었어요.
이것이 다른 사람의 시간/탈모를 줄일 수 있기를 바랍니다.
또한 이것을 시도해 볼 수 있습니다.
date.timezone = <?php date('Y'); ?>
언급URL : https://stackoverflow.com/questions/2213608/php-configuration-it-is-not-safe-to-rely-on-the-systems-timezone-settings
'programing' 카테고리의 다른 글
C에서 음영처리된 전역 변수에 액세스하려면 어떻게 해야 합니까? (0) | 2023.09.06 |
---|---|
위치 절대 + 스크롤 (0) | 2023.09.06 |
라우터의 공급자가 없습니까? (0) | 2023.09.06 |
Windows에서 도커를 시작할 수 없음 (0) | 2023.09.01 |
SQL에서 테이블을 긴 형식에서 넓은 형식으로 변환 (0) | 2023.09.01 |