PHP 응용 프로그램을 개발하고 배포 할 때 환경 문제는 종종 디버그하기 어려운 문제가됩니다. 다양한 운영 체제, 웹 서버 구성 및 PHP 버전 차이로 인해 일부 기능이 제대로 작동하지 않을 수 있습니다. 이러한 문제를 신속하게 진단하기 위해 PHP는 매우 실용적인 도구 인 phpinfo () 함수를 제공합니다. 이를 통해 PHP 버전, 활성화 확장, 구성 파일 위치 등을 포함한 현재 PHP 환경의 자세한 구성 정보를 볼 수 있습니다. 따라서 문제를 찾는 데 도움이됩니다. 다음으로 PHPINFO ()를 사용하여 PHP 환경에서 일반적인 문제를 디버그하고 문제를 해결하는 방법을 다룰 것입니다.
phpinfo () 함수는 PHP에 내장 된 매우 간단하고 강력한 도구입니다. PHP 스크립트에서 호출하면 브라우저에 현재 PHP 구성의 전체 정보가 표시됩니다. phpinfo.php 와 같은 간단한 PHP 파일 만 만들고 다음 코드를 추가하면됩니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-title function_ invoke__">phpinfo</span></span><span>();
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
파일을 저장 한 후 웹 서버에 파일을 업로드하십시오. 브라우저를 통해 파일에 액세스 할 때 PHP는 현재 PHP 환경의 세부 사항이 포함 된 웹 페이지를 생성합니다. 페이지의 내용에는 다음과 같은 측면이 포함되지만 이에 국한되지는 않습니다.
PHP 버전 : 현재 실행중인 PHP 버전.
운영 체제 정보 : 서버의 운영 체제 및 아키텍처.
PHP 구성 : php.ini 파일의 위치,로드 된 구성 옵션, 환경 변수 등
확장 정보 : 모든 활성화 된 PHP 확장 및 해당 버전을 나열합니다.
서버 정보 : 웹 서버 구성 (예 : Apache 또는 Nginx), 활성화 모듈 등과 같은 서버 정보.
PHP의 다른 버전으로 인해 일부 코드가 호환되지 않거나 일부 기능을 사용할 수 없게 만들 수 있습니다. 예를 들어, PHP 5와 PHP 7 사이에는 몇 가지 차이가 있으며 PHP 8은 많은 새로운 기능을 도입했습니다. phpinfo ()를 사용하여 현재 PHP의 현재 버전 번호를 쉽게 확인하고 코드가 버전과 호환되는지 확인하십시오.
phpinfo () 페이지에서 현재 실행중인 PHP 버전을 표시하는 PHP 버전 이라는 필드를 찾을 수 있습니다.
많은 PHP 응용 프로그램은 MySQL, GD, Curl 등과 같은 특정 확장에 의존합니다. 확장자가 올바르게로드되지 않으면 응용 프로그램이 오류가 발생하거나 제대로 작동하지 않을 수 있습니다. 현재 활성화 된 확장 및 해당 버전은 phpinfo () 출력의 로드 된 확장 섹션을 통해 볼 수 있습니다.
확장자가 누락 된 경우 php.ini 구성 파일을 수정하여 확장을 활성화하거나 누락 된 확장 패키지를 설치할 수 있습니다. 예를 들어 Linux 시스템에서 다음 명령을 사용하여 확장자를 설치할 수 있습니다.
<span><span>sudo apt-get install php-curl
sudo apt-get install php-mbstring
</span></span>
때로는 PHP 환경 문제가 잘못된 php.ini 구성 파일을 사용했기 때문일 수 있습니다. phpinfo ()를 사용하면 현재 사용되는 php.ini 파일의 경로를 쉽게 찾을 수 있습니다. 출력 페이지에서 로드 된 구성 파일 필드를 찾아 가리키는 파일 경로를 확인하십시오.
이 경로가 올바르지 않은 경우 서버에서 올바른 php.ini 파일을 수동으로 지정하거나 웹 서버 구성을 확인하여 올바른 PHP 구성 파일을로드 할 수 있습니다.
경우에 따라 PHP 응용 프로그램은 파일 업로드 또는 파일을 읽지 못할 수 있습니다. upload_max_filesize , post_max_size , max_file_uploads 및 기타 필드와 같은 phpinfo () 를 통해 파일 업로드와 관련된 구성 옵션을 볼 수 있습니다. 이러한 구성 항목은 PHP가 처리 할 수있는 최대 파일 크기, 허용되는 최대 요청 볼륨 등을 결정합니다.
파일 업로드 함수에 문제가있는 경우 이러한 값이 예상대로 있는지 확인할 수 있습니다. 필요한 경우 php.ini 에서 조정할 수 있습니다.
<span><span><span class="hljs-attr">upload_max_filesize</span></span><span> = </span><span><span class="hljs-number">10</span></span><span>M
</span><span><span class="hljs-attr">post_max_size</span></span><span> = </span><span><span class="hljs-number">20</span></span><span>M
</span></span>
동시에 파일의 권한 설정을 확인하여 PHP가 지정된 파일 디렉토리를 읽거나 쓸 수있는 권한이 있는지 확인하십시오.
PHP 스크립트가 제대로 실행되지 않으면 웹 서버 구성과 관련이있을 수 있습니다. phpinfo ()를 사용하면 PHP가 서버 API 필드와 같은 웹 서버와 통합하는 방법을 볼 수 있으며 PHP가 Apache 모듈, FASTCGI 또는 기타 방법으로 실행되는지 여부를 보여줍니다. 다른 통합 방법에는 다른 구성 또는 튜닝이 필요할 수 있습니다.
phpinfo () 는 매우 유용하지만 민감한 정보를 누출 할 수도 있습니다. phpinfo () 페이지를 공개적으로 노출 시키면 공격자가 서버의 자세한 정보를 얻은 다음 공격을 수행 할 수 있습니다. 따라서 디버깅이 완료된 후 PHPINFO () 페이지를 삭제하거나 보안 위험을 피하기 위해 액세스 권한을 제한하십시오.
phpinfo.php 파일에 대한 액세스를 다음과 같이 제한 할 수 있습니다.
대중에게 공개되지 않은 디렉토리에 넣으십시오.
특정 IP 주소 만 액세스 할 수있는 웹 서버 에서이 파일의 액세스 컨트롤을 설정하십시오.
PHPINFO ()는 개발자가 PHP 환경의 문제를 신속하게 이해하고 문제를 해결하는 데 도움이되는 매우 강력한 도구입니다. 이를 통해 PHP 버전,로드 된 확장자, 구성 파일 경로 및 기타 정보를보고 응용 프로그램 작동 중 다양한 문제를 진단 할 수 있습니다. 그러나 사용 중 보안에주의를 기울이고 phpinfo () 출력이 외부에 노출되지 않도록해야합니다. 이 기술을 마스터하면 PHP 환경 문제를 디버깅하고 문제 해결하는 것이 더욱 효율적이고 정확해질 것입니다.