얼마전에 시스템을 다시 설치했다가 다시 PHP를 사용하기로 해서 apache+php+mysql 환경을 여러번 구축해봤기 때문에 매우 쉬웠습니다. 완료한 후 일반적으로 사용되는 테스트 환경에 대해 다음 코드를 작성했습니다.
<span>1</span> <?<span>php </span><span>2</span><span>3</span><span>phpinfo</span><span>(); </span><span>4</span><span>5</span> ?>
그런 다음 정상적으로 출력합니다. 환경에 문제가 없다고 생각되면 그대로 두십시오. 혼자...
최근에 사용해야 하는데 이전 프로젝트 코드를 실행하면(CI 프레임워크 사용) 항상 빈 페이지가 표시되고 올바른 출력이 나오지 않습니다.
부끄럽습니다...
간단한 PHP 문만 다시 작성하면 정상적으로 실행될 것 같습니다.
date() 함수를 사용하고 나서야 단서를 찾았습니다.
경고: date(): 시스템의 시간대 설정에 의존하는 것은 안전하지 않습니다. date.timezone 설정 또는 date_default_timezone_set() 함수를 사용해야 합니다. 어떤 방법을 사용해도 여전히 이 경고가 표시됩니다. 현재는 시간대 'UTC'를 선택했지만 시간대를 선택하려면 date.timezone을 설정하세요.
다만, php.ini 파일에 date.timezone = Asia/Shanghai
를 명확하게 설정했는데, php.ini 파일에 설정한 정보가 적용되지 않습니다
가장 먼저 생각나는 점은 서버가 이 php.ini 구성 파일을 읽지 않는다는 것입니다. 이전에 wamp를 발견했지만 삭제하지 않고 자체적으로 환경을 재구성했기 때문입니다. .ini 파일을 시스템에 저장하고 기록 구성 문서를 읽습니다.
시스템 파일을 찾아보니 php.ini 파일이 하나밖에 없고, 시스템을 재설치하니 예전에는 존재했더라도 지금은 없어져 있습니다.
phpinfo()를 다시 확인하세요.
읽은 내용은 실제로 제가 지금 구성한 php.ini입니다
그러면 문제는 다음과 같습니다. php.ini 파일에 문제가 있어 올바르게 구문 분석되지 않습니다.
PHP 코드를 이용하여 데이터베이스에 접속해 보았는데 해당 함수를 찾을 수 없었습니다...
정말 php.ini에 문제가 있는 것 같습니다.
변경된 구성을 잘 확인해보세요. 문제가 없습니다...
다시 확인해도 문제가 없습니다...
...
...
그러다가 매일 산책할 시간이 되면 더 이상 하지 않기로 했고, 다 삭제하고 환경을 다시 구축했어요. 컴퓨터를 끄고 아래층으로 산책을 갔다가 오늘의 '행복한' 생활에 대해 불평하기 위해 전화를 걸었습니다… 잠이 안오더라구요...
그래서 포기하지 않고 마지막으로 php.ini를 확인해 봤는데, 드디어 이 버그를 발견했습니다.
확장자가 위치한 디렉토리를 구성할 때 따옴표의 절반이 생략되어 이후의 파싱에 문제가 발생하여 타임존 구성 및 데이터베이스 접근이 제대로 진행되지 못했습니다.
따옴표의 위쪽 절반을 추가하고 아파치 서비스를 다시 시작하세요. 자, 모든 것이 다시 아름답게 실행되고 있습니다
요약: 부주의하면 안 됩니다...
위 내용은 내용의 측면을 포함해 PHP 공부 노트에 8반 따옴표로 인해 발생하는 문제를 소개하고 있어 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.