Desenvolvimento e bases de dados
Personalizar a configuração de PHP com o ficheiro .htaccess
A maioria dos valores de PHP pode ser alterada a partir do ficheiro .htaccess que está em public_html ou na pasta onde tiver a sua aplicação. Se não existir, crie um ficheiro vazio com esse nome.
Os valores mais habituais (memory_limit, upload_max_filesize, post_max_size, max_execution_time, max_input_vars) também podem ser alterados sem mexer em ficheiros, a partir do PHP na área de cliente ou no cPanel. O .htaccess é útil quando quer um valor diferente apenas para um site ou pasta, ou quando a opção não aparece aí.
Como se faz
Acrescente no início do .htaccess uma linha por cada valor que quiser alterar, com esta sintaxe:
php_value directiva nuevo_valor
Em que directiva é o parâmetro de PHP e nuevo_valor o valor que quer aplicar. Por exemplo, para aumentar max_input_vars para 10000 (o que costumam pedir o PrestaShop ou o WooCommerce com muitas variações de produto):
php_value max_input_vars 10000
Pode acrescentar tantas linhas quantas precisar:
php_value memory_limit 512M php_value upload_max_filesize 128M php_value post_max_size 128M php_value max_execution_time 300
Para as opções que se ativam ou desativam (On/Off), use php_flag:
php_flag display_errors Off
A alteração aplica-se no momento, sem reiniciar nada. Aplica-se a essa pasta e a todas as suas subpastas.
Confirmar que foi aplicada
Crie na mesma pasta um ficheiro info.php com:
<?php phpinfo();
Abra-o no navegador (https://tudominio.com/info.php), procure a diretiva e veja a coluna Local Value. Apague o ficheiro assim que confirmar: mostra dados internos do servidor.
Se der erro 500
Se, depois de acrescentar a linha, o site mostrar um erro 500, retire a linha: há um erro de escrita ou esse site usa uma versão de PHP que não aceita php_value no .htaccess. Nesse caso, crie na mesma pasta um ficheiro chamado .user.ini com os valores em formato php.ini:
max_input_vars = 10000 memory_limit = 512M
As alterações no .user.ini podem demorar até 5 minutos a ser aplicadas.
Algumas diretivas não podem ser alteradas a partir de uma pasta (por exemplo, disable_functions), e nenhum valor de PHP amplia os recursos do seu plano: se definir memory_limit acima da memória do plano, prevalece o limite do plano.
Também lhe pode ser útil
- Versão de PHP num site publicado com o Deploy+ Porque é que a área de cliente não fixa a versão de PHP numa pasta publicada pelo Deploy+ e como a f...
- Caminhos dos binários de PHP de cada versão Utilize o caminho absoluto do binário de cada versão de PHP ao executar cronjobs, comandos ou script...
- Mudar a versão de PHP de um site com verificação e reversão Mude a versão de PHP de um site ou a versão predefinida do seu alojamento a partir da área de client...
- Ver todos os parâmetros e valores de configuração da versão de PHP em uso Verifique a configuração de PHP a partir do cPanel ou com php -i e, se precisar de phpinfo() no site...
Algo não bate certo ou mudou? Diga-nos e revemos.