각 사이트에 대해 php.ini 지시어 설정
P粉283559033
2023-08-28 00:20:14
<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>
이 작업을 수행하는 방법에 대한 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 매뉴얼 에 설명되어 있으며 다음 사항에 유의해야 합니다.
="https://www.php.net/manual/en/configuration.changes.php" rel="nofollow noreferrer"> "방법을 사용하여 각 사이트(또는 각 폴더)의
.htaccess
文件来设置 PHP 配置值 - 至少对于大多数设置:如果您查看 在配置指令文档中,对于标记为PHP_INI_PERDIR
或 PHP_INI_ALL 您可以使用 PHP php_value 或php_flag
命令在.htaccess
파일에서 이를 설정할 수 있습니다. 구성 설정 변경" 문서.예를 들어, 웹사이트에
으아악upload_max_filesize
,请在该网站的文档根目录中创建一个.htaccess
파일을 설정하고 그 안에 텍스트를 넣으려면:안타깝지만
max_file_uploads
和upload_tmp_dir
是标记为PHP_INI_SYSTEM
的设置,您无法在.htaccess
파일에서 변경하는 중...