Se você estiver usando PHP5.4 + na distro baseada no Debian, você pode usar o php5enmod para ativar e o php5dismod para desativar as extensões do PHP.
Existe algum comando para ativar / desativar uma extensão php facilmente a partir da linha de comando? (php.ini)
Se você estiver usando PHP5.4 + na distro baseada no Debian, você pode usar o php5enmod para ativar e o php5dismod para desativar as extensões do PHP.
Você pode ativar uma extensão na linha de comando usando:
php -d extension=/path/to/extension.so
-d
é usado para passar valores ini via linha de comando. Infelizmente, não há como desabilitar uma extensão na linha de comando se ela foi configurada no arquivo php.ini
. (Você pode seguir as outras respostas, é claro, mas não há nada que você possa fazer usando -d
ou qualquer outra opção do comando php
.)
Em Lubuntu, precisei de pdo_sqlite
.
Ativar manualmente:
$ sudo php5enmod pdo_sqlite
Se não funcionar, verifique:
$ ls /etc/php5/mods-available
A lista de resultados estava com falta de pdo_sqlite.ini
. Temos que instalá-lo.
$ sudo apt-get install php5-sqlite
Ou para o php7:
$ sudo apt-get install php7-sqlite3
A extensão sqlite3
é habilitada automaticamente na CLI e no Apache durante o processo de instalação e agora temos mods-available
: pdo_sqlite.ini
, sqlite3.ini
.
Desativar extensão com:
$ sudo php5dismod pdo_sqlite
Você pode especificar -n
para evitar o carregamento de extensões de php.ini
. Isso pode melhorar o desempenho quando você está usando alguns (por exemplo, o XDebug). Por exemplo,
php -n -r "phpinfo();"
Você precisa usar -n
e, em seguida, anexar cada extensão necessária usando -dextension
Exemplo:
php -n -dextension=json.so -dextension=phar.so composer.phar update
Você pode simplesmente usar
sed -i.bkp 's/^extension=x.so/# extension=x.so/' /path/of/php.ini && /etc/init.d/httpd reload
-i.bkp faça backup como php.php.bkp e escreva no arquivo original
& & Se o primeiro comando for bem sucedido, recarregue o serviço httpd.
mas eu só percebo que o sed dá status de saída 0 quando o padrão de pesquisa não coincide então você pode usar
php_ini=/path/of/php.ini
__module=x.so
grep -q "^extension=$__module" $php_ini && {
sed -i.bkp "s/^extension=$__module/# extension=$__module/" $php_ini &&
echo /etc/init.d/httpd reload; } || echo "cannot make requested change"
Ou você pode usar o script abaixo para ativar e desativar:
#!/bin/bash
php_ini=/path/of/php.ini
__module="$2"
[[ ! -f $php_ini ]] && { echo "Error: Can not found $php_ini" >&2;
echo "Please define php.ini path in $php_ini";
exit 1; }
[[ -z $__module ]] && { echo "Error: Please Type Module Name:" >&2;
exit 1; }
show_help(){
cat <<_EOF
Usage: To enable :
$0 -ie <modulename>
To disable :
$0 -id <modulename>
example:
$0 -i xyz.so
_EOF
}
do_enable() {
grep -Eq "# extension=$__module$" $php_ini && {
sed -i.bkp "s/^# extension\=$__module$/extension=$__module/" $php_ini &&
echo /etc/init.d/httpd reload; echo "Changes Successfully Done"; } || echo "cannot make requested change"
}
do_disable() {
grep -q "^extension=$__module" $php_ini && {
sed -i.bkp "s/^extension=$__module/# extension=$__module/" $php_ini &&
echo /etc/init.d/httpd reload; echo "Changes Successfully Done"; } || echo "cannot make requested change"
}
Main() {
case $1 in
-ie) do_enable ;;
-id) do_disable ;;
*) show_help ;;
esac
}
Main $*
uso: phpenmod [-v ALL | php_version] [-s ALL | sapi_name] module_name [module_name_2]
Então use o phpenmod -s cli yourextension
Todos os arquivos de configuração dos módulos PHP instalados estão disponíveis no diretório / etc / php / PHP_VERSION / mods-available
Tags php