আমি মনে করি যে XDebug ইনস্টল করার পরে আমার সার্ভারটি ধীর হয়ে গেছে। সুতরাং, আমার অনুমানটি পরীক্ষা করার জন্য আমি এক্সডিবুগকে পুরোপুরি অক্ষম করতে চাই। আমি কীভাবে এটি করব সে সম্পর্কে টিউটোরিয়ালগুলি সন্ধান করছি তবে আমি এই জাতীয় তথ্য খুঁজে পাই না।
আমি মনে করি যে XDebug ইনস্টল করার পরে আমার সার্ভারটি ধীর হয়ে গেছে। সুতরাং, আমার অনুমানটি পরীক্ষা করার জন্য আমি এক্সডিবুগকে পুরোপুরি অক্ষম করতে চাই। আমি কীভাবে এটি করব সে সম্পর্কে টিউটোরিয়ালগুলি সন্ধান করছি তবে আমি এই জাতীয় তথ্য খুঁজে পাই না।
উত্তর:
আপনার php.ini
অনুসন্ধান করুন এবং এক্সডিবেগের সন্ধান করুন।
Xdebug অটোস্টার্টকে মিথ্যা হিসাবে সেট করুন
xdebug.remote_autostart=0
xdebug.remote_enable=0
আপনার প্রোফাইলার অক্ষম করুন
xdebug.profiler_enable=0
নোট করুন যে এমনকি এক্সডিবাগ অক্ষম থাকলেও লোড হওয়াতে পারফরম্যান্স ক্ষতি হতে পারে । এক্সটেনশানটি স্বয়ংক্রিয়ভাবে লোডিং অক্ষম করতে, আপনাকে এটি আপনার php.ini এ মন্তব্য করতে হবে। এর মতো দেখতে একটি এন্ট্রি খুঁজুন:
zend_extension = "/path/to/php_xdebug.dll"
এবং ;
এটি মন্তব্য করার জন্য একটি রাখুন, উদা ;zend_extension = …
।
XDebug এই পোস্টটি দেখুন, কীভাবে একক। Php ফাইলের জন্য রিমোট ডিবাগিং অক্ষম করবেন?
zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so
থেকে লাইনটি মন্তব্য করার পরে আমি এটি অক্ষম করতে সক্ষম হয়েছি /etc/php5/conf.d/xdebug.ini
। তবে উত্তরে বর্ণিত রেখাগুলিতে /usr/lib/php5
বা না /etc
পাওয়া যায় না।
উবুন্টুর অনুরূপ লিনাক্স বিতরণে কাজ করা একটি সহজ সমাধান
sudo php5dismod xdebug
sudo service apache2 restart
$ sudo phpdismod xdebug
ইন লিনাক্স উবুন্টু ( হয়তো অন্য - এটি পরীক্ষিত নয় ) সঙ্গে বন্টন পিএইচপি 5 বোর্ডে, আপনি ব্যবহার করতে পারেন:
sudo php5dismod xdebug
এবং পিএইচপি 7 সহ
sudo phpdismod xdebug
এবং তার পরে, দয়া করে সার্ভারটি পুনরায় চালু করুন:
sudo service apache2 restart
এছাড়াও, আপনি xdebug_disable()
আপনার কোড যুক্ত করতে পারেন । চেষ্টা করুন:
if(function_exists('xdebug_disable')) { xdebug_disable(); }
আমি কনফিগার ফাইলটির নাম পরিবর্তন করে সার্ভার পুনরায় চালু করেছি:
$ mv /etc/php/7.0/fpm/conf.d/20-xdebug.ini /etc/php/7.0/fpm/conf.d/20-xdebug.ini.bak
$ sudo service php7.0-fpm restart && sudo service nginx restart
এটা আমার জন্য কাজ করে।
Php.ini এ মন্তব্য এক্সটেনশন এবং অ্যাপাচি পুনরায় চালু করুন। এখানে একটি সহজ স্ক্রিপ্ট (আপনি এটিতে শর্টকাট বরাদ্দ করতে পারেন)
xdebug-toggle.php
define('PATH_TO_PHP_INI', 'c:/xampp/php/php.ini');
define('PATH_TO_HTTPD', 'c:/xampp/apache/bin/httpd.exe');
define('REXP_EXTENSION', '(zend_extension\s*=.*?php_xdebug)');
$s = file_get_contents(PATH_TO_PHP_INI);
$replaced = preg_replace('/;' . REXP_EXTENSION . '/', '$1', $s);
$isOn = $replaced != $s;
if (!$isOn) {
$replaced = preg_replace('/' . REXP_EXTENSION . '/', ';$1', $s);
}
echo 'xdebug is ' . ($isOn ? 'ON' : 'OFF') . " now. Restarting apache...\n\n";
file_put_contents(PATH_TO_PHP_INI, $replaced);
passthru(PATH_TO_HTTPD . ' -k restart');
এক্সুবুন্টুতে আমি সম্পূর্ণরূপে সিডিআইএর জন্য xdebug অক্ষম করেছি ...
sudo rm /etc/php5/cli/conf.d/*xdebug*
/etc/php5/cli/conf.d/20-xdebug.ini
passthru
যা xdebug সক্ষম দ্বারা ফাংশনটির মাধ্যমে টার্মিনাল থেকে অন্য পিএইচপি স্ক্রিপ্ট চালায় , এক্সডিবাগ হ্যাং করতে পারে এবং কার্যকর করতে পারে না।
unlink
উপর rm
যদি এটা উপলব্ধ।
sudo nano /etc/php/7.0/cli/conf.d/20-xdebug.ini
এবং এটির মন্তব্য করব।
উইন্ডোজ (ডাব্লুএএমপি) সিএলআই ইনআই ফাইলটিতে:
X:\wamp\bin\php\php5.x.xx\php.ini
মন্তব্য লাইন
; XDEBUG Extension
;zend_extension = "X:/wamp/bin/php/php5.x.xx/zend_ext/php_xdebug-xxxxxx.dll"
অ্যাপাচি প্রক্রিয়া করবে xdebug
, এবং সুরকার তা করবে না।
আপনার PHP.ini সন্ধান করুন এবং এক্সডিবেগ সন্ধান করুন।
সাধারণত উবুন্টুতে এটির পথ হয়
/etc/php5/apache2/php.ini
নিম্নলিখিত পরিবর্তনগুলি করুন (কেবল যুক্ত করে তাদের মন্তব্য করা আরও ভাল; শুরুতে)
xdebug.remote_autostart=0
xdebug.remote_enable=0
xdebug.profiler_enable=0
তারপরে উবুন্টুর জন্য আপনার সার্ভারটি পুনরায় চালু করুন
sudo service apache2 restart
এক্সডিবাগ অক্ষম করুন
পিএইচপি 7 এর জন্য: sudo nano /etc/php/7.0/cli/conf.d/20-xdebug.ini
পিএইচপি 5 এর জন্য: sudo nano /etc/php5/cli/conf.d/20-xdebug.ini
তারপরে সব কিছু মন্তব্য করে সংরক্ষণ করুন।
আপডেট - কেবল সিএলআইয়ের জন্য অক্ষম
@ আইগোমন এর মন্তব্য অনুসারে, এটি একটি আরও ভাল পদ্ধতি:
পিএইচপি 7.0 (এনজিআইএনএক্স)
sudo mv /etc/php/7.0/cli/conf.d/20-xdebug.ini /etc/php/7.0/cli/conf.d/20-xdebug.ini.old
sudo service nginx restart
দ্রষ্টব্য: আপনার পিএইচপি সংস্করণে পাথ আপডেট করুন।
grep -r "xdebug" /etc/php/
যদি এটি চালানো হয় তবে এটি বিভিন্ন সংস্করণ নিয়ে আসতে পারে php -v
আপনার সংস্করণটি সন্ধান করুন।
sudo vi /etc/php/5.6/mods-available/xdebug.ini
//zend_extension=xdebug.so
আপনি php-fpm
নিম্নলিখিত ব্যবহার করা হয় পর্যাপ্ত হতে হবে:
sudo phpdismod xdebug
sudo service php-fpm restart
লক্ষ্য করুন, আপনার পিএইচপি সংস্করণের উপর নির্ভর করে আপনার এটি টুইট করতে হবে। উদাহরণস্বরূপ পিএইচপি 7.0 চালানোর জন্য আপনি যা করবেন:
sudo phpdismod xdebug
sudo service php7.0-fpm restart
যেহেতু, আপনি পিএইচপি-এফপিএম চালিয়ে যাচ্ছেন সেখানে প্রকৃত ওয়েব সার্ভারটি পুনরায় আরম্ভ করার দরকার নেই। যে কোনও ক্ষেত্রে যদি আপনি এফএমপি ব্যবহার না করেন তবে নীচের কমান্ডগুলির সাহায্যে আপনি কেবল নিজের ওয়েবসারভারটি পুনরায় চালু করতে পারেন:
sudo service apache2 restart
sudo apache2ctl restart
আমি একটি অনুরূপ ইস্যু মধ্যে দৌড়ে। কখনও কখনও, আপনি php.ini তে xdebug.so খুঁজে পাবেন না। কোন ক্ষেত্রে, phpinfo()
একটি পিএইচপি ফাইলে চালিত করুন এবং চেক করুন Additional .ini files parsed
। এখানে আপনি আরও ইনআই ফাইল দেখতে পাবেন। এর মধ্যে একটি xdebug এর ini ফাইল হবে। এই ফাইলটি কেবল (বা নাম পরিবর্তন করুন) সরান, অ্যাপাচি পুনরায় চালু করুন এবং এই এক্সটেনশানটি সরানো হবে।
আপনি যদি ম্যাক ওএস এক্সে এমএএমপি প্রো ব্যবহার করছেন তবে এটি এমএএমপি ক্লায়েন্টের মাধ্যমে পিএইচপি ট্যাবের অধীনে অ্যাক্টিভেট এক্সডিবাগ চেক করে সম্পন্ন করা হবে :
সুতরাং, হ্যাঁ, আপনার যা প্রয়োজন, কেবল আইএনআই ফাইলে লাইক zend_extension=xdebug.so
বা অনুরূপ মন্তব্য করুন ।
সেমিকোলন যুক্ত করে মন্তব্য করা যেতে পারে।
তবে, ইতিমধ্যে এই জাতীয় উত্তর যুক্ত হয়েছে এবং আমি এক্সডিবাগের স্থিতি পরিবর্তন করতে প্রস্তুত সমাধান ভাগ করতে চাই।
আমি এক্সডিবাগের জন্য দ্রুত সুইচার তৈরি করেছি। এটি কারও পক্ষে কাজে লাগবে।
অ্যাপাচি / 2.4.33 (Win64) পিএইচপি / 7.2.4 মাই হোমব্রু স্ট্যাক H
Php.ini এর শেষে আমি পিএইচপিস্টোরম ব্যবহারের জন্য এক্সডিবাগ পরিচালনা করতে নিম্নলিখিতটি ব্যবহার করি
; jch ~ Sweet analizer at https://xdebug.org/wizard.php for matching xdebug to php version.
; jch ~ When upgrading php versions check if newer xdebug.dll is needed in ext directory.
; jch Renamed... zend_extension = E:\x64Stack\PHP\php7.2.4\ext\php_xdebug-2.6.0-7.2-vc15-x86_64.dll
zend_extension = E:\x64Stack\PHP\php7.2.4\ext\php_xdebug.dll
; jch !!!! Added the following for Xdebug with PhpStorm
[Xdebug]
; zend_extension=<full_path_to_xdebug_extension>
; xdebug.remote_host=<the host where PhpStorm is running (e.g. localhost)>
; xdebug.remote_port=<the port to which Xdebug tries to connect on the host where PhpStorm is running (default 9000)>
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.profiler_enable=1
xdebug.profiler_output_dir="E:\x64Stack\Xdebug_profiler_output"
xdebug.idekey=PHPSTORM
xdebug.remote_autostart=1
; jch ~~~~~~~~~To turn Xdebug off(disable) uncomment the following 3 lines restart Apache~~~~~~~~~
;xdebug.remote_autostart=0
;xdebug.remote_enable=0
;xdebug.profiler_enable=0
; !!! Might get a little more speed by also commenting out this line above...
;;; zend_extension = E:\x64Stack\PHP\php7.2.4\ext\php_xdebug.dll
; so that Xdebug is both disabled AND not loaded
PHPStorm দ্বারা অনুপ্রাণিত হয়ে একটি ফাইল -> ডিবাগ -> ... এ ডান ক্লিক করুন
www-data@3bd1617787db:~/symfony$
php
-dxdebug.remote_enable=0
-dxdebug.remote_autostart=0
-dxdebug.default_enable=0
-dxdebug.profiler_enable=0
test.php
গুরুত্বপূর্ণ জিনিস হয় -dxdebug.remote_enable=0 -dxdebug.default_enable=0
টগগলিং এক্সডিবাগের জন্য আমি এই বাশ স্ক্রিপ্টটি তৈরি করেছি। আমি মনে করি এটি কমপক্ষে উবুন্টু / ডেবিয়ান নিয়ে কাজ করা উচিত। এটি পিএইচপি 7 + এর জন্য। পিএইচপি 5 এর জন্য php5dismod / php5enmod ব্যবহার করুন।
#!/bin/bash
#
# Toggles xdebug
#
if [ ! -z $(php -m | grep "xdebug") ] ; then
phpdismod xdebug
echo "xdebug is now disabled"
else
phpenmod xdebug
echo "xdebug is now enabled"
fi
# exit success
exit 0
শুধুমাত্র নির্দিষ্ট পিএইচপি সংস্করণ বা স্যাপির জন্য xdebug অক্ষম করুন। এই ক্ষেত্রে পিএইচপি 7.2 এফএম
sudo phpdismod -v 7.2 -s fpm xdebug
sudo service php7.2-fpm nginx restart