NameVirtualHosts를 사용하여 LAMP 서버에서 사이트 별 php.ini 파일을 어떻게 설정합니까?


10

NameVirtualHosts를 사용하여 다양한 웹 사이트를 제공 하는 LAMP 서버가 있습니다.

최근에 전역 php.ini 파일을 갖는 것이 좋았지 만 최근에 개발자 중 한 명이 php.ini에서 전역으로 설정하지 않는 일부 설정을 요청했습니다.

사이트 별로 php.ini 파일을 설정할 수 있다고 들었지만 ,이 작업을 수행하는 방법을 모르겠습니다.

누군가 이것을 달성하는 방법에 대해 올바른 방향으로 나를 가리킬 수 있습니까?

답변:


14

php.ini에 배치 할 대부분의 설정은 .htaccess 또는 해당 사이트 의 아파치 구성 에 배치 할 수도 있습니다 . 예를 들어 내 가상 호스트 중 하나가 .htaccess에 있습니다.

    php_value display_errors 1
    php_value register_globals 0
    php_value short_open_tag 0
    php_value magic_quotes_runtime 0
    php_value magic_quotes_gpc 0
    php_value session.name "PHPSESSID_SITEBLAH"
    php_value session.gc_maxlifetime 57600
    php_value session.gc_probability 1
    php_value session.gc_divisor 500

이것은 나를 위해 작동하지 않는 것 같습니다. 이것을 허용하기 위해 마스터 php.ini에 설정 해야하는 지시어가 있습니까?
Brent

1
APache 구성에서 "AllowOverride Options"또는 "AllowOverride All"을 설정해야 작동합니다.
StackKrish

예를 들어 파일 의 값을 apache.conf덮어 쓰거나 php.ini다른 방법으로 덮어 쓰겠습니까?
puk

7

Apache 구성 파일 (httpd.conf / apache.conf)에서 구성 설정을 지정할 수도 있습니다. 귀하의 경우 컨텍스트 내에서 구성 값을 지정할 수 있습니다.

다음 예제는 가상 호스트 example.com에 대해 upload_max_filesize를 10M으로 설정해야합니다.

<VirtualHost *>
    ServerName example.com
    DocumentRoot /path_to_docroot
    php_value upload_max_filesize 10M
    php_admin_flag allow_url_fopen on
</VirtualHost>

전체 사이트에 대해이 값을 설정하지 않고 응용 프로그램이있는 하나의 특정 디렉토리에이 값을 설정하려는 경우에 값을 지정할 수 있습니다.

<VirtualHost *>
   ServerName example.com
   DocumentRoot /path_to_docroot
  <Location /testApp/>
     php_value upload_max_filesize 10M
     php_admin_flag allow_url_fopen on
  </Location>
</VirtualHost>

자세한 설명 은 http://php.net/manual/en/configuration.changes.php 를 참조 하십시오 .


+1 이상하게도 아무것도 효과가 없었습니다. 로컬 htaccess, php ini 파일 중 아무것도 작동하지 않았습니다.
boot13

감사! mod-security 매개 변수를 덮어 써야하는 문제가 발생했을 수 있습니다. 이것은 DIRECTORY 또는 LOCATION 레벨이 아닌 vhost 레벨에서만 작동합니다. 그 이유는 디렉토리 또는 위치 블록을 읽기 전에 mod-sec을 구성하고 있기 때문입니다.
ora-600

1

또 다른 제안은 별도의 독립형 데몬으로 PHP를 실행하는 mod-fastcgi 또는 mod-fcgi를 사용하는 것입니다. 그런 다음 각 웹 사이트에 대해 별도의 사용자 및 php.ini 구성 파일을 정의 할 수 있습니다.


1

또 다른 옵션은 suPHP 이며 각 VirtualHost에 대해 php.ini를 정의 할 수 있습니다. 또한 각 VirtualHost에 대해 PHP 버전을 지정할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.