programing

PHP 구성:시스템의 시간대 설정에 의존하는 것은 안전하지 않습니다.

stoneblock 2023. 9. 6. 21:43

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가 없는 곳에 있을 것이라고 예상했다는 것을 알아차렸습니다.

두 가지 선택 사항:

  1. 아파치가 생각하는 곳에 두거나,
  2. 아파치를 당신의 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