사용자별 Php.ini PHP가 모듈로 실행될 때?

사용자별 Php.ini PHP가 모듈로 실행될 때?

ini 파일에서만 변경할 수 있는 PHP 설정이 있습니다. 충돌로 인해 전역 php.ini에서 이 설정을 변경할 수 없으므로 이 사용자를 특정하게 지정해야 합니다. PHP를 모듈로 실행하면 이 작업을 수행할 수 있나요? 아니면 PHP 실행을 CGI로 변경해야 합니까?

가장 좋은 대답은 "별로 그렇지 않다"인 것 같지만 아래 트릭을 사용하여 일부 매개변수를 몰래 변경할 수 있습니다.

답변1

PHP를 Apache 모듈로 사용할 때 별도의 php.ini를 지정하는 방법은 없으며 PHP를 CGI로 사용할 때만 가능합니다. 즉, php.ini의 모든 구성 옵션은 .htaccess다음과 같이 파일 에서 변경될 수 있습니다.http://php.net/configuration.changesOptionsApache 구성에서 AllowOverride를 또는 으로 설정한 경우에 한합니다 All.

나는 일반적인 PHP 구성을 변경하기 위해 많은 사이트에서 이 작업을 수행했습니다. 모든 설정을 변경할 필요는 없으므로 .htaccess변경이 필요한 디렉토리 내의 파일에 옵션을 추가하여 번호를 쉽게 관리할 수 있다고 가정합니다.

다음은 몇 가지 사이트에서 및 설정을 변경 include_path하고 설정하는 데 사용하는 것입니다 . 부울 플래그 항목의 경우 대신에 를 사용하십시오 .auto_prepend_fileauto_append_filephp_flagphp_value

<IfModule mod_php5.c>
    php_value auto_prepend_file 'header.inc.php'
    php_value auto_append_file 'footer.inc.php'
    php_value include_path '/path/to/private/includes:/usr/share/pear'
</IfModule>

답변2

php cgi 래퍼에 대한 php 핸들러를 무시하고 php.ini 파일을 지정할 수 있었습니다.

이렇게 하려면 다음과 같이 수정하려는 폴더에 htaccess 파일을 만듭니다.

Action php5-cgi /cgi-bin/php5-cgi.cgi
AddHandler php5-cgi .php

그런 다음 다음과 같이 'php5-cgi.cgi' 파일을 만듭니다.

#!/bin/sh
exec /usr/bin/php-cgi "$@" -c "/home/user/php.ini"

"사용자"로 실행하려면 이 파일에 대한 권한을 설정하십시오. 그런 다음 phpinfo(1)로 테스트 파일을 실행하십시오. ini 파일이 로드되었는지 확인하세요.

모두의 도움에 감사드립니다!!

답변3

모든 세부 사항은 여기에 있습니다:http://php.net/configuration.changes

답변4

가상 호스트/사용자별로 Apache "php_admin_value"를 사용할 수 있습니다.

IIRC, 이 명령을 사용하여 모든 php.ini 값을 재정의할 수 있습니다.

관련 정보