Y at-il une commande pour activer / désactiver une extension php facilement en ligne de commande? (php.ini)
extension=x.sopour désactiver x.
Y at-il une commande pour activer / désactiver une extension php facilement en ligne de commande? (php.ini)
extension=x.sopour désactiver x.
Réponses:
Si vous utilisez PHP 5.4 + sur une distribution basée sur Debian, vous pouvez utiliser php5enmod pour activer et php5dismod pour désactiver les extensions PHP.
Vous pouvez activer une extension à partir de la ligne de commande en utilisant:
php -d extension=/path/to/extension.so
-dest utilisé pour transmettre les valeurs ini via la ligne de commande. Malheureusement, il n’ya aucun moyen de désactiver une extension sur la ligne de commande si elle a été configurée dans le php.inifichier. (Vous pouvez bien sûr suivre les autres réponses, mais vous ne pouvez rien utiliser à l’aide de l’ -doption ou de n’importe quelle option de la phpcommande.)
Sur Lubuntu j'avais besoin pdo_sqlite.
Activer manuellement:
$ sudo php5enmod pdo_sqlite
Si ne fonctionne pas, vérifiez:
$ ls /etc/php5/mods-available
La liste de résultats était manquante pdo_sqlite.ini. Nous devons l'installer.
$ sudo apt-get install php5-sqlite
Ou pour php7:
$ sudo apt-get install php7-sqlite3
L'extension sqlite3est activée automatiquement dans la CLI et dans Apache lors du processus d'installation. Nous avons maintenant mods-available: pdo_sqlite.ini, sqlite3.ini.
Désactiver l'extension avec:
$ sudo php5dismod pdo_sqlite
Vous pouvez spécifier -npour éviter le chargement des extensions php.ini. Cela peut améliorer certaines performances lorsque vous en utilisez (par exemple, XDebug). Par exemple
php -n -r "phpinfo();"
Vous devez utiliser -npuis ajouter chaque extension nécessaire en utilisant-dextension
Exemple:
php -n -dextension=json.so -dextension=phar.so composer.phar update
Vous pouvez simplement utiliser
sed -i.bkp 's/^extension=x.so/# extension=x.so/' /path/of/php.ini && /etc/init.d/httpd reload
-i.bkp prend la sauvegarde en tant que php.php.bkp et écrit dans le fichier original
&& Si la première commande aboutit, rechargez le service httpd.
mais je viens de noter que sed donnant le statut de sortie 0 lorsque la recherche ne correspond pas, vous pouvez donc utiliser
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 vous pouvez utiliser le script ci-dessous pour activer et désactiver:
#!/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 $*
conf.d/*.inifichiers. Peut-être que quelques modifications doivent être faites?
utilisation: phpenmod [-v ALL | version_php] [-s ALL | nom_ sapi] nom_module [nom_module_2]
Alors utilisez phpenmod -s cli yourextension
Tous les fichiers de configuration des modules PHP installés sont disponibles dans le répertoire / etc / php / PHP_VERSION / mods-available
awk).