Eu tenho uma configuração de php que só pode ser alterada no arquivo ini. Não consigo alterar essa configuração no php.ini global devido a conflitos, então precisarei ter esse usuário específico. Isso pode ser feito se o php for executado como um módulo? Ou devo mudar o php executado como cgi?
Parece que a melhor resposta é "na verdade não", mas você pode alterar alguns parâmetros usando os truques abaixo.
Responder1
Não conheço nenhuma maneira de especificar um php.ini separado ao usar o PHP como um módulo Apache, apenas ao usar o PHP como CGI. Dito isto, qualquer uma das opções de configuração no php.ini pode ser alterada no .htaccess
arquivo conforme mostrado emhttp://php.net/configuration.changescontanto que você tenha AllowOverride definido na configuração do Apache como Options
ou All
.
Fiz isso em muitos dos meus sites para alterar configurações comuns do PHP. Eu diria que você não precisa alterar todas as configurações, portanto o número deve ser facilmente gerenciado adicionando as opções ao seu .htaccess
arquivo no diretório em que você precisa das alterações.
O seguinte é um que eu uso em alguns sites para alterar include_path
e definir as configurações auto_prepend_file
e auto_append_file
. Para itens de sinalização booleana, basta usar 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>
Responder2
Eu substituí o manipulador de php por um wrapper php cgi e consegui especificar um arquivo php.ini
Para fazer isso: crie um arquivo htaccess na pasta que deseja modificar com algo assim:
Action php5-cgi /cgi-bin/php5-cgi.cgi
AddHandler php5-cgi .php
Em seguida, crie um arquivo 'php5-cgi.cgi' com algo assim:
#!/bin/sh
exec /usr/bin/php-cgi "$@" -c "/home/user/php.ini"
Defina permissões neste arquivo para executar como "usuário". Em seguida, execute um arquivo de teste com phpinfo(1); para ver se você tem seu arquivo ini carregado.
Obrigado pela ajuda de todos!!
Responder3
Todos os detalhes estão aqui:http://php.net/configuration.changes
Responder4
Você pode usar o Apache "php_admin_value" por vhost/usuário.
IIRC, você pode redefinir cada valor do php.ini usando este comando