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

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

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

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

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



답변

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

답변

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 를 참조 하십시오 .


답변

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


답변

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