php.ini, wp-config 및 .htaccess와 관련하여 Wordpress의 우선 순위는 무엇입니까?


10

Wordpress 웹 사이트의 최대 업로드 제한을 변경하고 다음 값을 지정한다고 가정 해 보겠습니다.

wp-config.php : 128MB php.ini : 256MB .htaccess : 64MB

그렇다면 필요에 따라 처리하는 동안 Wordpress가 우선 순위를 정하는 것은 무엇입니까?

답변:


13

귀하의 질문 에서이 파일 각각에서 무엇을 변경하고 있는지 분명하지 않지만 각 경우 upload_max_filesizePHP 설정 이라고 가정 합니다 .

일반적으로 설정은이 순서대로 적용되며 각각은 이전 값보다 우선합니다.

  1. php.ini
  2. .htaccess의 Apache 지시문
  3. 에 전화 ini_set()

그러나,이 설정이 정의 PHP_INI_PERDIR된, 이 페이지의 설명에 그것을 사용하여 설정 될 수없는 수단 ini_set(가)하므로 wp-config.php이를 변경할 수 없다. 따라서 질문에서 제시 한 예에서는 64MB의 .htaccess에서 값을 가져옵니다.

echo ini_get('upload_max_filesize');코드 어딘가에서 실행 하여 이를 확인할 수 있습니다 .

사용자별로 php.ini 파일 및 기타 Apache 구성 컨텍스트 와 같이 위에 나열되지 않은 다른 위치 값을 설정할 수 있습니다 . 또한 이들 중 일부는 사용 하지 않도록 설정할 수 있으므로 서버가 .htaccess에서 재정의를 허용하도록 설정되어 있지 않으면 값을 설정할 수 없습니다.

또한 Wordpress에는 PHP 구성과 다른 방식으로 상호 작용하는 자체 구성 변수가 포함되어 있습니다. 예를 들어, 시작할 때 PHP 설정 WP_MEMORY_LIMIT높이 려고 시도 memory_limit하지만 확인하고 절대 낮추지 않는 코드가 있습니다 . 이에 대한 일반적인 규칙은 없으며 설정에 따라 다릅니다.


php.ini가 항상 가장 먼저 선택됩니다.
WpMania.Net

5

기본적으로 세 파일 모두가 고려됩니다.

워드 프레스 / 서버는 다음 순서로 확인합니다 :

wp-config.php > .htaccess > php.ini

"높은 수준"(나중에 체인)에있는 값이 값을 제한하는 경우 이전 값은 무시되거나 덮어 씁니다. 체인 조각이 누락 된 경우, .htaccess예를 들어 다음으로 높은 값이 대신 사용됩니다.

귀하의 예에서는 .htaccess최대 max_upload_size64MB로 서버가 양호하고 WordPress에서도 파일 크기가 최대 128MB까지 허용되지만 64MB로 제한됩니다.

파일을 통해 다른 제한을 설정할.htaccess 수도 있으며이 작업을 수행하여 php.ini더 이상 지배적 인 값이되지 않도록 from의 값을 덮어 씁니다 . 이것은 많은 호스팅 환경에서 작동 하므로이 방법으로 높이 거나 낮출 수있는 가능성이 높습니다 max_upload_size.

보다 엄격하게 구성된 호스팅 / 서버가있는 경우 설정을 재정의하는 옵션 php.ini이 비활성화 될 수 있습니다. 이 경우 재정의 max_upload_size.htaccess작동하지 않으므로 제한 요소가 될 수 있습니다.


8
질문이 요구하는 것처럼 우선 순위 목록을 제공 할 때 이것이 어떻게 "작동하지 않습니까"? 그리고 .htaccess목록의 중간에 있다면 왜 이것이 제한 요소가 될까요?
IMSoP

내 표현이 불분명했다고 생각합니다. 나는 그의 질문을 "wp-config에서 더 높은 값을 설정하면 다른 것들을 지배 할 것"이라고 이해했다. 그리고 그것은 어떻게 작동되지 않습니다. ;-) @bns가 그것에 대해 더 잘 설명했습니다.
flomei

네, 지금 무슨 말인지 알 겠어요 그러나 bns의 답변에 댓글을 달았을 때 더 높은 값으로 재정의 할 수 없다는 주장을 뒷받침하는 문서를 찾을 수 없습니다. 내 대답에서 설명한 것처럼 wp-config.php 값은 항상 무시되지만 .htaccess의 높은 값은 php.ini의 낮은 값을 무시할 것입니다.
IMSoP

당신은 부분적으로 옳지 만 .htaccess에서 php.ini 값을 무시하면 비활성화 될 수 있습니다. 업데이트 된 답변을 참조하십시오.
flomei

업데이트는 여전히 .htaccess를 통해서만 더 낮은 값을 설정할 수 있음을 의미합니다 . 더 높은 가치를 설정할 수 없었던 이유는 없습니다 . 메커니즘을 사용할 수 있다는 사실은 내가 내 대답에 이상 호도하지만, 가정 좋은 점, 그리고 하나의 어떤 PHP 설정하는 것은 htaccess로 허용됩니다, php.ini 파일에서 다음의 .htaccess에 값 것이다 절대적으로 "지배"의 값 동일한 설정에 대해.
IMSoP

3

flomei가 답을 편집해야한다고 생각합니다. 정답이지만 잘못된 설명이기 때문입니다. Php.ini -> .htaccess -> wp-config.php실제로 각 파일을 읽는 순서이며 이전에 정의 된 설정이없는 것을 고려하여 값을 설정합니다. 그러나 이전에 정의 된 설정이있는 경우 새 설정이 낮은 경우에만 "오버라이드"됩니다.

즉, 64Mb의 wp-config.php와 32MB의 .htaccess가있는 경우 wp-config.php는 이미 하한이 있으므로 32Mb로 끝나기 때문에 해당 설정을 무시하지 않습니다.

그러나 wp-config.php가 32Mb이고 .htaccess가 64MB이면 wp-config.php는 이전 설정을 32Mb로 낮 춥니 다.

편집 : IMSoP가 지적했듯이 wp-config.php를 사용하면 'WP_MEMORY_LIMIT'를 변경하는 경우 PHP 설정이 허용하는 것보다 더 제한적인 크기를 설정할 수 있습니다. 따라서 실제로 설정 재정의가 아닙니다. 실제로 런타임에 다른 지점에서 수행되는 별도의 검사가 있습니다. upload_max_filesize그가 가정 한대로 PHP 설정 을 변경하는 경우 (질문에 어떤 설정을 변경하고 있는지 표시하지 않음), 효과가 없습니다.

또한 PHP 설정 post_max_size보다 더 커야 한다는 것을 고려해야합니다.upload_max_filesize


2
필자가 본 다른 PHP 설정과 맞지 않기 때문에이 "새로운 값이 낮은 경우에만 재정의"문서에 연결할 수 있습니다. 이 매뉴얼 페이지 에는 언급 되어 있지 않습니다 . 무엇 됩니다 언급 한 내 대답에 지적으로, 즉 upload_max_filesize너무 (그것이 어떤 효과를 갖는 것이 너무 늦기 아마도 때문에) 런타임에 변경할 수 없습니다 wp-config.php그것을 방법은 하나 또는 다른 영향을 미칠 수 없습니다. 2메가바이트의 내장 된 기본도 언급, 당신은 할 수 확실히 높은 것보다 설정합니다.
IMSoP

기본적으로 같은 문제가 발생했을 때 호스팅 제공 업체 지원 팀에서 설명한 내용이므로 전자 메일을 검색하고 찾으면 업데이트합니다. 서버 내부에서 실제로 값을 재정의하는지 확실하지 않거나 다른 장소에서 실행 시간에 확인을 수행하는 것만 큼 동작이 이와 같습니다.
bns

1
다만 투자 의견에, 당신이 추가 할 선이있는 경우 wp-config.php이다 ini_set('upload_max_filesize', '32M');는 없을 것이다 이제까지 아무런 영향을 그 설정이 있기 때문에, 실행시에 설정할 수 없습니다가로 정의됩니다PHP_INI_PERDIR . (해당 문서 페이지가 잘못된 것이 아니라면 그럴 것 같지 않습니다.)
IMSoP

아니, 네 말이 맞아 실제로 설정 재정의가 아닙니다. 그것은 또 다른 분리 된 제한이며 혼란을 피하기 위해 적절하게 업데이트됩니다.
bns

1
@IMSoP / bns-특정 wp-config.php값과 임의의 PHP 값 설정 사이에 약간의 혼동이 있었을 것 같습니다 ini_set(). 내가 이해하는 것처럼, wp-config.php주로 WordPress 특정 구성 값을 설정하는 것과 관련이 있으며 대부분은 기본 PHP 구성 설정에 의해 실제로 제한됩니다 (예 : 상한 WP_MEMORY_LIMIT). 이것은 워드 프레스입니다. 그러나 PHP ini_set()에서를 사용하여 임의의 PHP 구성 값을 설정할 때 그러한 제한은 없습니다.
MrWhite
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.