커맨드 라인에서 PHP 확장을 쉽게 활성화 / 비활성화하는 명령이 있습니까? (php.ini)
extension=x.so
x를 비활성화하는 의견 입니다.
커맨드 라인에서 PHP 확장을 쉽게 활성화 / 비활성화하는 명령이 있습니까? (php.ini)
extension=x.so
x를 비활성화하는 의견 입니다.
답변:
데비안 기반 배포판에서 PHP5.4 +를 사용하는 경우 php5enmod를 사용하여 php5dismod를 사용하여 PHP 확장을 비활성화 할 수 있습니다.
루 분투에서 나는 필요했다 pdo_sqlite
.
수동으로 활성화하십시오.
$ sudo php5enmod pdo_sqlite
작동하지 않는 경우 확인 :
$ ls /etc/php5/mods-available
결과 목록이 없습니다 pdo_sqlite.ini
. 설치해야합니다.
$ sudo apt-get install php5-sqlite
또는 php7의 경우 :
$ sudo apt-get install php7-sqlite3
확장 sqlite3
은 설치 과정에서 CLI와 Apache에서 자동으로 활성화되며 이제 mods-available
다음 pdo_sqlite.ini
과 같은 기능이 sqlite3.ini
있습니다.
다음을 사용하여 확장을 비활성화하십시오.
$ sudo php5dismod pdo_sqlite
당신은 사용해야 -n
하고 사용하여 각 필요한 확장을 추가 할-dextension
예:
php -n -dextension=json.so -dextension=phar.so composer.phar update
간단하게 사용할 수 있습니다
sed -i.bkp 's/^extension=x.so/# extension=x.so/' /path/of/php.ini && /etc/init.d/httpd reload
-i.bkp 백업을 php.php.bkp로 가져 와서 원본 파일에 기록
&& 첫 번째 명령이 성공하면 httpd 서비스를 다시로드하십시오.
하지만 검색 패턴이 일치하지 않을 때 sed가 종료 상태 0을 제공한다는 것을 알았습니다.
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"
또는 아래 스크립트를 사용 및 사용 안함으로 설정할 수 있습니다.
#!/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/*.ini
파일에 확장자를 추가 할 수도 있습니다 . 어쩌면 약간의 수정이 필요합니까?
사용법 : phpenmod [-v ALL | php_version] [-s ALL | sapi_name] module_name [module_name_2]
따라서 phpenmod -s cli yourextension을 사용하십시오.
설치된 모든 PHP 모듈 구성 파일은 / etc / php / PHP_VERSION / mods-available 디렉토리에 있습니다.
awk
.