Existe algum comando para ativar / desativar uma extensão php da linha de comando?

43

Existe algum comando para ativar / desativar uma extensão php facilmente a partir da linha de comando? (php.ini)

    
por PHPst 26.02.2013 / 05:30

8 respostas

26

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.

    
por 15.09.2014 / 04:26
12

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 .)

    
por 25.02.2015 / 14:53
8

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
    
por 07.07.2016 / 13:10
4

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();"
    
por 24.03.2016 / 11:55
3

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
    
por 20.04.2016 / 15:09
2

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 $*
    
por 26.02.2013 / 08:06
2

uso: phpenmod [-v ALL | php_version] [-s ALL | sapi_name] module_name [module_name_2]

Então use o phpenmod -s cli yourextension

    
por 02.02.2018 / 19:48
-2

Por favor, verifique isso

Todos os arquivos de configuração dos módulos PHP instalados estão disponíveis no diretório / etc / php / PHP_VERSION / mods-available

    
por 03.01.2019 / 07:08

Tags