>  Q&A  >  본문

각 사이트에 대해 php.ini 지시어 설정

<p>Ubuntu Server의 Apache2와 PHP에서 실행되는 여러 사이트가 있습니다. PHP에는 <code>upload_max_filesize</code>, <code>max_file_uploads</code> , <code>upload_tmp_dir</code> 그러나 이는 모든 사이트에 하나의 값을 적용합니다. </p> <p>각 사이트에 대한 지침을 어떻게 설정합니까? 예: <code>sitea.com</code>의 <code>upload_max_filesize</code>를 50M로 설정하고 <code>siteb.com<의 <code>upload_max_filesize</를 설정하고 싶습니다. ;/코드> 코드>는 5M으로 설정됩니다. </p> <p>마찬가지로 각 사이트에 대해 고유한 <code>session.name</code>을 설정하고 싶습니다. 이것이 어떻게 달성될 수 있습니까? <code>PHP_INI_USER</code>, <code>PHP_INI_PERDIR</code>, <code>PHP_INI_SYSTEM</code>, <code>PHP_INI_ALL</code>이라는 것이 있다는 것을 읽었습니다. 내가한다? </p>
P粉283559033P粉283559033391일 전493

모든 응답(2)나는 대답할 것이다

  • P粉320361201

    P粉3203612012023-08-28 22:34:33

    이 작업을 수행하는 방법에 대한 Mike 'Pomax' Kamermans의 명시적인 의견입니다. 그러나 PHP 매뉴얼 문서는 다소 불쾌할 수 있습니다.

    다른 답변에 대한 몇 가지 설명:

    • PHP 파서 파일(Lajos Arpad에 설명된 대로)을 사용하면 일부 보안 위험과 많은 인코딩, 구문 및 실제로 불필요한 처리 오버헤드가 추가됩니다.

    • .htaccess 确实可以为某些 PHP 安装设置自定义 ini 指令,但如果您使用的是“FastCGI”或“CGI”(可能还有 suPHP) ) PHP 安装实际上会导致您的网站崩溃并出现 500 错误,因此请使用本地 .user.ini 파일은 여기에 설명된 대로입니다. 내 SAPI를 어떻게 찾나요?

    • PHP를 Apache 모듈(예: mod_php)로 실행하는 경우에만 .htaccess를 사용하세요. 내 SAPI를 어떻게 찾나요?

    PHP suPHP/FastCGI/CGI SAPI

    그렇다면 당신의 소원은 어떻게 이루어져야 할까요?

    1) 핵심 PHP.ini 세부 정보를 찾아보세요.

    현재 PHP 버전의 PHP.ini 파일을 읽어보세요.

    라인 180(PHP 8.1의 경우)에서는 다음과 같아야 합니다:

    값을 기록해 두세요. 맞춤 설정을 권장합니다 (이 예 참조). 이 값은 전역 PHP.ini 파일에 대한 계정별 "로컬" 설정을 보유하는 서버의 각 고유 계정에 위치할 파일의 파일 이름입니다.

    파일은 일반적으로 public_html 文件夹中,因此应以 .로 시작하므로 기본적으로 숨겨집니다(나중에 자세히 설명). 이 파일이 없으면 계정의 핵심 PHP 설정이 변경되지 않습니다.

    2) 파일 이름을 기억/설정하고 새 규칙을 만듭니다

    이제 사용자 정의 PHP 파일의 이름을 알고/설정했습니다. 이제 계정에서 파일을 생성한 다음 이 계정에 대해 개별적으로 사용자 정의하려는 PHP.ini 설정을 지정할 수 있습니다.

    예를 들어

    다음 샘플 정보가 포함됩니다:

    으아악

    이 정보는 PHP에 의해 구문 분석되며 핵심 PHP.ini의 해당 값을 재정의하지만 해당 계정에만 적용됩니다.

    3) 필요에 따라 각 계정에 맞게 맞춤설정하세요

    예를 들어, siteb.com PHP 사용자 ini 파일의 경우 다음과 같습니다.

    다음 샘플 정보가 포함됩니다:

    으아악

    그런 다음 각 계정에서 phpinfo()를 탐색하고 표시된 로컬 및 핵심 차이점을 확인하여 이러한 계정 설정이 올바르게 설정되었는지 확인할 수 있습니다.

    4) 테스트하고 확인

    /public_html/ 경로의 핵심 user.ini 파일은 해당 계정의 모든 하위 파일/폴더가 처리되는 데 필요한 모든 파일이어야 합니다(이는 때로는 정확한 LAMP 서버 설정 및 PHP 처리기에 따라 다름).

    말씀드린 대로 테스트 ini 파일이 설정되면 phpinfo()를 실행하여 해당 값이 구현되었는지 확인해야 합니다.

    사용하고 싶지 않다면 phpinfo() 那么您可以轻松使用 [ini_get](https://www.php.net/manual/en/function .ini-get) 쉽게 [ini_get](https://www.php.net/manual/en/function .ini-get)을 사용하여 민감한 데이터를 덤프할 수 있습니다. 브라우저가 아닌 오류 로그에.

    으아악

    5) 보안

    user.ini 파일은 일반적으로 이 파일에 대한 액세스를 거부하기 위해 . 字符开头,以将其隐藏在目录中,但这并不意味着浏览器代理无法访问它,因此最好添加几行添加到您的 .htaccess로 끝납니다.

    으아악

    최종 생각:

    핵심 PHP.ini 값은 새 버전의 PHP에서 변경되므로 가장 좋은 방법은 다양한 PHP 버전에 대해 서로 다른 로컬 .ini 파일을 사용하는 것입니다. (.account-php80.ini, <代码>.account-php81.ini等)。请注意,每个 php.ini 핵심은 설명된 대로 각각의 로컬 user.ini 파일을 명시적으로 호출해야 합니다. 위의 1단계에서

    .

    위의 원칙 은 PHP 매뉴얼 에 설명되어 있으며 다음 사항에 유의해야 합니다.

    회신하다
    0
  • P粉144705065

    P粉1447050652023-08-28 14:10:59

    ="https://www.php.net/manual/en/configuration.changes.php" rel="nofollow noreferrer"> "방법을 사용하여 각 사이트(또는 각 폴더)의 .htaccess 文件来设置 PHP 配置值 - 至少对于大多数设置:如果您查看 在配置指令文档中,对于标记为 PHP_INI_PERDIR 或 < code>PHP_INI_ALL 您可以使用 PHP php_value 或 php_flag 命令在 .htaccess 파일에서 이를 설정할 수 있습니다. 구성 설정 변경" 문서.

    예를 들어, 웹사이트에 upload_max_filesize,请在该网站的文档根目录中创建一个 .htaccess 파일을 설정하고 그 안에 텍스트를 넣으려면:

    으아악

    안타깝지만 max_file_uploadsupload_tmp_dir 是标记为 PHP_INI_SYSTEM 的设置,您无法在 .htaccess 파일에서 변경하는 중...

    회신하다
    0
  • 취소회신하다