Phpinfo 파일을 생성하고 PHP 정보를 확인하는 방법. PHP를 사용하여 효율적으로 파일 전달 Attentive info php

(PHP 3, PHP 4, PHP 5)

phpinfo - PHP에 관한 많은 정보를 표시합니다.

설명

정수 phpinfo()

현재 PHP 상태에 대한 많은 양의 정보를 표시합니다. 여기에는 PHP 컴파일 옵션 및 확장, PHP 버전, 서버 및 환경 정보(모듈로 컴파일된 경우), PHP 환경, OS 버전, 경로, 마스터 및 로컬 구성 옵션 변수, HTTP 및 PHP 라이센스 헤더에 대한 정보가 포함됩니다. 각 시스템은 서로 다르게 구성되므로 phpinfo()는 일반적으로 특정 시스템에서 구성 설정 및 사전 정의된 변수의 가용성을 확인하는 데 사용됩니다. Phpinfo()에는 모든 EGPCS 데이터(환경, GET, POST, 쿠키, 서버). 다음 중 하나 이상을 전달하여 출력을 특수화할 수 있습니다. 끊임없는선택적 what 매개변수에 합산된 비트 값입니다. 연산을 사용하여 해당 상수 또는 비트 값을 결합할 수도 있습니다.

표 1. phpinfo() 옵션
이름(상수) 값 설명 INFO_GENERAL1 구성 문자열, php.ini 위치, 빌드 날짜, 웹 서버, 시스템 등INFO_CREDITS2PHP 크레딧 4.참조. 또한 phpcredits() .INFO_CONFIGURATION4php 지시문의 현재 로컬 및 마스터 값입니다.참조. ini_get() .INFO_MODULES8 로드된 모듈 및 해당 설정.INFO_ENVIRONMENT16환경 변수 정보, $_ENV에서도 사용 가능.INFO_VARIABLES32EGPCS(환경, GET, POST, 쿠키, 서버)에서 사전 정의된 모든 변수를 표시합니다.INFO_LICENSE64PHP 라이센스 정보.참조. 또한 위의 라이센스 FAQ .INFO_ALL-1모두가 기본값입니다.

참고: 노출_php 구성 설정이 off 로 설정된 경우 표시되는 정보의 일부가 비활성화됩니다. 여기에는 PHP 및 Zend 로고와 크레딧이 포함됩니다. 또한

어느 소프트웨어웹 서버에서 실행하려는 에는 충족해야 하는 특정 요구 사항이 있습니다. 예를 들어 WordPress에는 PHP 버전 5.2.4 이상이 필요합니다. 서버에 따라 일부 PHP 설정을 변경할 수 있고, 반대로 다른 설정은 변경이 금지되어 있지만 모든 설정에 대한 정보는 phpinfo 파일에서 찾을 수 있습니다. 이 튜토리얼에서는 phpinfo 파일을 생성하고 PHP 모듈의 값과 상태를 찾는 방법을 배웁니다. 이는 max_execution_time, memory_limit, post_max_size 등과 같은 호스팅 계정에 대한 정보를 얻는 데에도 유용할 수 있습니다.

이 가이드를 시작하기 전에 다음이 필요합니다.

  • 호스팅 제어판 또는 FTP 계정에 액세스

옵션 1 - 호스팅 제어판을 통해 PHP 정보 확인

Hostinger에서 귀하 계정의 PHP 정보는 다음에서 확인할 수 있습니다. 고급 → PHP 정보. 호스팅에서 추가 파일을 만들 필요가 없기 때문에 이는 매우 편리한 기능입니다.

그런 다음 PHP 버전, 모듈 및 값에 대한 모든 필수 정보가 포함된 페이지로 이동하게 됩니다. 특정 모듈이나 기능을 검색하려면 키보드 단축키를 눌러 검색하세요. Ctrl+F.

축하해요! Hostinger 제어판을 통해 PHP 정보에 액세스하는 방법을 배웠습니다.

옵션 2 - phpinfo.php 파일을 생성하여 PHP 정보 확인

귀하의 호스팅 플랫폼이 다음에 표시된 기능을 지원하지 않더라도 걱정하지 마십시오. 옵션 1. 호스팅 계정 내에 특수 파일을 생성해도 동일한 결과를 얻을 수 있습니다. 파일에는 PHP에 대한 모든 정보도 표시되며 브라우저를 통해 액세스할 수 있습니다.

2.1단계 - phpinfo 파일 생성

phpinfo 파일을 생성하는 방법에는 여러 가지가 있습니다. 이 튜토리얼에서는 . 그러나 컴퓨터에 파일을 생성해도 동일한 결과를 얻을 수 있습니다. 로컬 컴퓨터을 통해 파일을 서버에 추가로 업로드합니다.

호스팅 제어판에 로그인하여 엽니다. 파일 관리자 . 버튼을 클릭하세요 새로운 파일새 파일을 생성합니다.

첫 번째 필드에는 생성될 경로를 지정합니다. 새로운 파일. 다음으로는 현장에서 새 파일 이름입력하다 phpinfo.php. 대부분의 경우 경로를 변경하지 않고 그대로 둘 수 있습니다. /public_html. 이 경우 파일은 사이트의 루트 디렉터리에 생성됩니다.

2.2단계 - 파일 편집

이 단계에서는 이미 빈 파일이 있습니다. phpinfo.php카탈로그에 public_html. 다음 코드를 파일에 복사하고 아이콘을 클릭하세요. 구하다화면 왼쪽 모서리에 있습니다.

그게 다입니다. 성공적으로 생성되었습니다. PHP 파일그러면 모든 PHP 옵션이 표시됩니다. 앞서 언급했듯이 다음을 사용하여 동일한 결과를 얻을 수 있습니다.

  1. 아무거나 사용하세요 텍스트 에디터그리고 파일을 생성하세요 phpinfo.php당신의 컴퓨터에서.
  2. 파일에 다음 코드를 추가합니다.
  1. FTP를 사용하여 파일을 디렉터리에 업로드합니다. public_html.

2.3단계 - 브라우저를 통해 PHP 정보 확인

모든 작업이 올바르게 완료되면 이제 도메인 이름 끝에 추가하여 생성된 파일에 액세스할 수 있습니다. /피hpinfo.php. 예: http://yourdomain.ru/phpinfo.php

브라우저를 통해 이 페이지를 열면 비슷한 결과가 표시됩니다.

이 페이지에서 모든 PHP 설정을 볼 수 있습니다.

결론

이 튜토리얼을 마치면서 phpinfo 파일을 생성하고 정보를 확인하는 방법을 배웠습니다. PHP 설정. 이 정보호스팅 설정을 알고 싶거나 특정 PHP 모듈이 필요한 소프트웨어를 실행하려는 경우에 유용합니다.

웹 서버에서 직접 파일을 보내지 않고 다른 곳에서 파일을 보내야 하는 경우 PHP를 사용하여(예를 들어 다운로드 통계를 수집하려면) cat 아래에 입력하세요.

1. readfile()을 사용하세요

이 방법의 좋은 점은 즉시 사용할 수 있다는 것입니다. 자신만의 파일 전송 기능을 작성하면 됩니다(공식 문서에서 약간 수정된 예).

함수 file_force_download($file) ( if (file_exists($file)) ( // 버퍼 재설정 PHP 출력스크립트에 할당된 메모리 오버플로를 방지하기 위해 // 이 작업을 수행하지 않으면 파일이 메모리로 완전히 읽혀집니다! if (ob_get_level()) ( ob_end_clean(); ) // 브라우저가 파일을 저장하기 위한 창을 표시하도록 강제합니다. header("Content-Description: 파일 전송"); header("Content-Type: application/octet-stream"); ​​​​header("Content-Disposition: attachment; filename=" . basename($file)); header("Content-Transfer-Encoding: 바이너리 ") ; header("만료일: 0"); header("Cache-Control: 필수-재검증"); header("Pragma: 공개"); header("콘텐츠 길이: " . filesize($file)); // 파일을 읽고 사용자에게 보냅니다. readfile($file); 종료; ) )
PHP가 파일을 읽고 즉시 사용자에게 부분적으로 제공하므로 대용량 파일도 이 방법으로 보낼 수 있습니다. 문서에는 readfile() 해서는 안 된다기억력 문제를 일으킵니다.

특징:

  • 파일은 readfile() 함수의 내부 버퍼로 읽혀지며 크기는 8kB입니다(2fast4rabbit 덕분에).

2. 파일을 수동으로 읽고 보내기

이 방법은 개인으로부터 파일을 보낼 때 동일한 Drupal을 사용합니다. 파일 시스템(파일은 링크를 통해 직접 사용할 수 없습니다):

함수 file_force_download($file) ( if (file_exists($file)) ( // 스크립트에 할당된 메모리 오버플로를 방지하기 위해 PHP 출력 버퍼를 재설정합니다. // 이 작업을 수행하지 않으면 파일이 메모리로 완전히 읽혀집니다! if (ob_get_level()) ( ob_end_clean(); ) // 브라우저가 파일 저장을 위한 창을 표시하도록 강제 header("Content-Description: File Transfer"); header("Content-Type: application/octet-stream") ; ​​header("Content-Disposition: attachment; filename =" . basename($file)); header("Content-Transfer-Encoding: 바이너리"); header("만료일: 0"); header("캐시- Control: must-revalidate"); header("Pragma: public"); header("Content-Length: " . filesize($file)); // 파일을 읽고 사용자에게 보냅니다. if ($fd = fopen ($file, "rb")) ( while (!feof($ fd)) ( print fread($fd, 1024); ) fclose($fd); ) 종료; ) )
특징:

  • 스크립트는 전체 파일을 읽고 사용자에게 제공할 때까지 기다립니다.
  • 서버 메모리를 절약할 수 있습니다.

3. 웹서버 모듈을 활용하세요

3a. 아파치
XSendFile 모듈을 사용하면 특수 헤더를 사용하여 Apache 자체에 파일을 보낼 수 있습니다. Unix 및 Windows용 버전 2.0.*, 2.2.* 및 2.4.*가 있습니다.

호스트 설정에서 다음 지시문을 사용하여 헤더 가로채기를 활성화해야 합니다.
XSendFile 켜기
파일을 처리할 수 있는 디렉터리의 화이트리스트를 지정할 수도 있습니다. 중요: 서버 기반이 있는 경우 Windows 경로대문자 드라이브 문자를 포함해야 합니다.

개발자 웹사이트에서 가능한 옵션에 대한 설명: https://tn123.org/mod_xsendfile/

파일 전송 예:

함수 file_force_download($file) ( if (file_exists($file)) ( header("X-SendFile: " . realpath($file)); header("Content-Type: application/octet-stream"); ​​​​header (" 내용 처리: 첨부; 파일 이름=" . basename($file)); 종료; ) )

3b. 엔진스
Nginx는 특수 헤더를 통해 즉시 파일을 보낼 수 있습니다.

올바른 작동을 위해서는 구성 파일을 통해 직접 폴더에 대한 액세스를 거부해야 합니다.
위치 /보호됨/(내부; 루트 /some/path; )
파일 전송 예(파일은 /some/path/protected 디렉터리에 있어야 함):

함수 file_force_download($file) ( if (file_exists($file)) ( header("X-Accel-Redirect: " . $file); header("Content-Type: application/octet-stream"); ​​​​header( "콘텐츠 -처리: 첨부 파일; 파일 이름=" . basename($file)); 종료; ) )
공식 문서 페이지에 대한 자세한 내용

특징:

  • 모든 지침이 완료되면 스크립트가 즉시 종료됩니다.
  • 물리적으로 파일은 PHP가 아닌 웹 서버 모듈 자체에서 전송됩니다.
  • 메모리 및 서버 리소스 소비 최소화
  • 최대 성능

업데이트: Habrowser ilyaplot은 application/octet-stream이 아닌 파일의 실제 MIME 유형을 보내는 것이 더 낫다는 좋은 조언을 제공합니다. 예를 들어, 이렇게 하면 브라우저가 다음을 대체할 수 있습니다. 필요한 프로그램파일 저장 대화 상자로 들어갑니다.




맨 위