Php.ini específico do usuário Quando o php é executado como um módulo?

1

Eu tenho uma configuração php que só pode ser alterada no arquivo ini. Eu não posso alterar essa configuração no php.ini global devido a conflitos, então eu preciso ter esse usuário específico. Isso pode ser feito se o php for executado como um módulo? Ou devo mudar o php como um cgi?

Parece que a melhor resposta é "não realmente", mas você pode mudar alguns parâmetros usando truques abaixo.

    
por SeanDowney 10.07.2009 / 00:28

5 respostas

2

Não tenho conhecimento de nenhuma maneira de especificar um php.ini separado ao usar o PHP como um módulo do Apache, apenas quando usar o PHP como um CGI. Dito isso, qualquer uma das opções de configuração no php.ini pode ser alterada no arquivo .htaccess , conforme mostrado no link , desde que você tem AllowOverride definido no conjunto de configurações do Apache para Options ou All .

Eu fiz isso em muitos dos meus sites para alterar as configurações comuns do PHP. Eu diria que você não precisa alterar todas as configurações para que o número seja facilmente gerenciado adicionando as opções ao seu arquivo .htaccess no diretório em que você precisa das alterações.

O seguinte é um que uso em alguns sites para alterar o include_path e definir as configurações de auto_prepend_file e auto_append_file . Para itens de sinalizador booleano, use apenas php_flag em vez de php_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>
    
por 10.07.2009 / 01:12
1

Eu anulei o manipulador para php de um wrapper php cgi e consegui especificar um arquivo php.ini

Para fazer isso: crie um arquivo htaccess na pasta que você deseja modificar com algo parecido com isto:

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

Em seguida, crie um arquivo 'php5-cgi.cgi' com algo parecido com isto:

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

Defina Permissões neste arquivo para executar como o "usuário". Em seguida, execute um arquivo de teste com phpinfo (1); para ver se você tem o seu arquivo ini carregado.

Obrigado pela ajuda de todos !!

    
por 16.07.2009 / 23:01
0

Todos os detalhes estão aqui: link

    
por 10.07.2009 / 00:33
0

Basicamente, não.

Do manual do PHP :

The configuration file (php.ini) is read when PHP starts up. For the server module versions of PHP, this happens only once when the web server is started. For the CGI and CLI version, it happens on every invocation.

    
por 10.07.2009 / 13:23
0

Você pode usar o Apache "php_admin_value" por vhost / usuário.

IIRC, você pode redefinir cada valor php.ini usando este comando

    
por 28.09.2009 / 14:07