কমান্ড লাইন থেকে সহজেই কোনও পিএইচপি এক্সটেনশন সক্ষম / অক্ষম করার জন্য কোনও আদেশ রয়েছে? (Php.ini)
extension=x.so
এক্স অক্ষম করার জন্য মন্তব্য করেছি ।
কমান্ড লাইন থেকে সহজেই কোনও পিএইচপি এক্সটেনশন সক্ষম / অক্ষম করার জন্য কোনও আদেশ রয়েছে? (Php.ini)
extension=x.so
এক্স অক্ষম করার জন্য মন্তব্য করেছি ।
উত্তর:
আপনি যদি ডেবিয়ান ভিত্তিক ডিস্ট্রোতে পিএইচপি 5.4 + ব্যবহার করেন তবে আপনি পিএইচপি এক্সটেনশনগুলি অক্ষম করতে সক্ষম করতে php5enmod এবং php5dismod ব্যবহার করতে পারেন।
আপনি কমান্ড লাইন থেকে এটি ব্যবহার করে একটি এক্সটেনশন সক্ষম করতে পারেন:
php -d extension=/path/to/extension.so
-d
কমান্ড লাইনের মাধ্যমে ini মানগুলি পাস করতে ব্যবহৃত হয়। দুর্ভাগ্যক্রমে কমান্ড লাইনে কোনও এক্সটেনশন অক্ষম করার কোনও উপায় নেই যদি এটি php.ini
ফাইলটিতে কনফিগার করা থাকে। (আপনি অবশ্যই অন্যান্য উত্তরগুলি অনুসরণ করতে পারেন -d
তবে php
কমান্ডের যে কোনও বিকল্প ব্যবহার করে বা করতে পারেন এমন কিছুই নেই ))
লুবুন্টুতে আমার দরকার ছিল pdo_sqlite
।
ম্যানুয়ালি সক্ষম করুন:
$ sudo php5enmod pdo_sqlite
যদি কাজ করে না পরীক্ষা করুন:
$ ls /etc/php5/mods-available
ফলাফল তালিকা অনুপস্থিত ছিল pdo_sqlite.ini
। আমাদের এটি ইনস্টল করতে হবে।
$ sudo apt-get install php5-sqlite
অথবা পিএইচপি 7 এর জন্য:
$ sudo apt-get install php7-sqlite3
sqlite3
ইনস্টলেশন প্রক্রিয়া চলাকালীন এক্সটেনশনটি সিএলআই এবং অ্যাপাচে স্বয়ংক্রিয়ভাবে সক্ষম হয়েছে এবং এখন আমাদের রয়েছে mods-available
: pdo_sqlite.ini
, sqlite3.ini
।
এর সাথে এক্সটেনশনটি অক্ষম করুন:
$ sudo php5dismod pdo_sqlite
-n
যে কোনও এক্সটেনশন লোড হওয়া এড়াতে আপনি নির্দিষ্ট করতে পারেন php.ini
। আপনি কিছু ব্যবহার করার সময় এটি (যেমন এক্সডিবুগ) কিছু পারফরম্যান্স উন্নত করতে পারে। যেমন
php -n -r "phpinfo();"
আপনাকে ব্যবহার করতে হবে -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 পরিষেবাটি পুনরায় লোড করুন।
তবে আমি কেবল লক্ষ্য করেছি যে স্যাড প্যাটারের সাথে মেলে না এমন প্রস্থান স্থিতি 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] [-স সমস্ত | সাপি_নাম] মডিউল_নাম [মডিউল_নাম_2]
সুতরাং phpenmod -s ক্লাইপ আপনার এক্সটেনশন ব্যবহার করুন
ইনস্টল করা সমস্ত পিএইচপি মডিউল কনফিগারেশন ফাইলগুলি / ইত্যাদি / পিএইচপি / পিএইচপি_ভিশন / মোডগুলি-উপলব্ধ ডিরেক্টরিতে উপলব্ধ
awk
) পার্স এবং সংশোধন করতে আপনি এমন সরঞ্জামগুলি ব্যবহার করতে পারেন ।