এক্সডেবাগ কীভাবে অক্ষম করবেন


124

আমি মনে করি যে XDebug ইনস্টল করার পরে আমার সার্ভারটি ধীর হয়ে গেছে। সুতরাং, আমার অনুমানটি পরীক্ষা করার জন্য আমি এক্সডিবুগকে পুরোপুরি অক্ষম করতে চাই। আমি কীভাবে এটি করব সে সম্পর্কে টিউটোরিয়ালগুলি সন্ধান করছি তবে আমি এই জাতীয় তথ্য খুঁজে পাই না।

উত্তর:


163

আপনার 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 ফাইলের জন্য রিমোট ডিবাগিং অক্ষম করবেন?


ধন্যবাদ! আমি দেখতে পেয়েছি যে আমার সমস্যাটি এপিসি, আমার স্মৃতি স্পষ্টতই কম ছিল। আপনি ঠিক বলেছেন, এক্সডিবাগ পিএইচপি-র অংশ, অ্যাপাচের মডিউল নয়। এখন সবকিছু ঠিকঠাক চলছে।
বেটো আভেগা

1
@ উদয় এবং আমার পিএইচপি.এন.ইতে আমি এর কোনও কিছুই যদি খুঁজে না পাই তবে কী হবে। আমি গ্রেপ অনুসন্ধান সহ / ইত্যাদি / পিএইচপি এর ভিতরে সর্বত্র চেক করেছি।
হারালান ডবরেভ

@ হারালানডোব্রেভ xdebug আসলে সক্ষম কিনা তা দেখতে phpinfo () পরীক্ষা করুন। যদি এটি হয়, আপনার php.ini ফাইলের সাথে কোনও অতিরিক্ত আইএনআই ফাইল সংযুক্ত রয়েছে কিনা তা পরীক্ষা করে দেখুন। অতিরিক্তভাবে নিশ্চিত করুন যে আপনি সঠিক ini ফাইল সম্পাদনা করছেন। একাধিক স্থানে এই ফাইলগুলি থাকা সম্ভব।
উদয় সাওয়ান্ত

18
@ উদয়সওয়ান্ট zend_extension=/usr/lib/php5/20090626+lfs/xdebug.soথেকে লাইনটি মন্তব্য করার পরে আমি এটি অক্ষম করতে সক্ষম হয়েছি /etc/php5/conf.d/xdebug.ini। তবে উত্তরে বর্ণিত রেখাগুলিতে /usr/lib/php5বা না /etcপাওয়া যায় না।
হারালান ডবরেভ

5
প্রকৃতপক্ষে, এক্সটেনশনটি মোটেও লোড না করা, এবং প্রয়োজন হলে কেবল এটি লোড করা ভাল। অক্ষম থাকলেও XDebug আসলে জিনিসগুলিকে অনেক ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে পড়ে যায়। কারও মনে হয় না যে পারফরম্যান্স এতটা হ্রাস পেয়েছে, যখন কোনও ওয়েব স্ক্রিপ্ট তৈরি করে এমন কিছু স্ক্রিপ্টগুলি ডিবাগিং / প্রোফাইল করার সময়, তবে ডেমন স্ক্রিপ্টগুলির সাহায্যে এটি অনেক কিছু দেখায়। : আমি শুধুমাত্র কেন এটা সব সময়ে লোড হচ্ছে না একটি ব্লগ পোষ্ট লিখেছেন, ভাল, এখানে bit.ly/14SaWpp
thesilentman

99

উবুন্টুর অনুরূপ লিনাক্স বিতরণে কাজ করা একটি সহজ সমাধান

sudo php5dismod xdebug
sudo service apache2 restart

10
আপনি যে উত্তরটি সরবরাহ করেন সে সম্পর্কে আরও কিছু বিবরণ যুক্ত করে আরও উত্তর দিতে পারেন?
অ্যাবারিসোন

3
উক্ত কমান্ডটি উবুন্টুর জন্য সেন্টোস নয়। সেই ব্যাখ্যাটি সরবরাহ করা উচিত কারণ আপনি একমাত্র ব্যক্তি নন একই লিনাক্স ডিস্ট্রো ব্যবহার করেন।
ম্যাকসি 32

1
এটি অ্যাপাচি 2 এর জন্য এবং সি এল এলির পক্ষে নয়। এগুলির পৃথক পৃথক php.ini ফাইল থাকতে পারে
আদিব অরওই

6
আপনার পিএইচপি সংস্করণের ভিত্তি করে, আপনি প্রবেশ করা উচিত$ sudo phpdismod xdebug
RousseauAlexandre

2
এই উত্তরটি কেবলমাত্র পিএইচপি-তে প্রয়োগ হয় যখন এটি অ্যাপাচি-র Mod-php এর সাথে ব্যবহৃত হচ্ছে।
জন হান্ট

35

ইন লিনাক্স উবুন্টু ( হয়তো অন্য - এটি পরীক্ষিত নয় ) সঙ্গে বন্টন পিএইচপি 5 বোর্ডে, আপনি ব্যবহার করতে পারেন:

sudo php5dismod xdebug

এবং পিএইচপি 7 সহ

sudo phpdismod xdebug

এবং তার পরে, দয়া করে সার্ভারটি পুনরায় চালু করুন:

sudo service apache2 restart

পিএইচপি 7 আইএনডি ফাইল থেকে এক্সডিবাগ অপসারণ করেছে, আমি বিশ্বাস করি। সুতরাং এই উত্তরটি আমাকে সাহায্য করেছিল।
কিথ হলিদিয়

1
পিএইচপি 7 এর জন্য কাজ করেছেন। Php.ini এ xdebug সেটিংস মন্তব্য করা কার্যকর হয়নি।
কালোব টালিয়েন

1
কাজ হয়নি। সতর্কতা: মডিউল xdebug ini ফাইলটি /etc/php/7.1/mods- উপলভ্য অধীন উপস্থিত নেই
dxvargas

25

এছাড়াও, আপনি xdebug_disable()আপনার কোড যুক্ত করতে পারেন । চেষ্টা করুন:

if(function_exists('xdebug_disable')) { xdebug_disable(); }


32
এটি কেবল স্ট্যাকট্রেসগুলি প্রদর্শন করা অক্ষম করে, এটি আসলে xdebug অক্ষম করে না (ভয়ঙ্কর নামকরণ করা ফাংশন, আমি জানি)
ব্লুরাজা - ড্যানি ফ্লুঘুফুট

এটি প্রচুর পরিস্থিতি মোকাবেলার একটি দুর্দান্ত উপায়। এটি ওপি-র প্রয়োজনে মাংস না দিলেও এর জন্য ধন্যবাদ।
জেক

3
@ জেক, আমি নিশ্চিত না যে ওপি কোনও কসাইয়ের সন্ধান করছে।
thephpdev

1
@ জেক হি যেভাবেই হোক মজা করছিল। 😛
থিপ্পেদেব

1
@ বিনার ওয়েব কারণ লোকেরা ভাবতে পারে যে এই ফাংশনটি পুরো এক্সডিবাগটিকে অক্ষম করে এবং কার্য সম্পাদনকে উন্নত করে, তবে তা নয়
ফগাস

12

আমি কনফিগার ফাইলটির নাম পরিবর্তন করে সার্ভার পুনরায় চালু করেছি:

$ 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

এটা আমার জন্য কাজ করে।


এই /etc/php/7.0/fpm/conf.d পরিবর্তে /etc/php/7.0/cli/conf.d আমার পক্ষে কাজ ছাড়া
উইল

এটি ম্যাক ওএসএক্সে বা সেন্টোস ভিজেন্টারে পিএইচপি 7.2,9 এও কাজ করবে। Xdebug.ini এর নাম পরিবর্তন করে xdebug.ini.old বা অন্য কিছু
vknyvz

এটি প্রধান
মিশেল সি ওয়ালাস

10

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');

এক্সডিবেগকে পুরোপুরি নিষ্ক্রিয় করতে, এই উত্তরটি সঠিক উত্তর, @ উদয়সওয়ান্টের উত্তরে আমার মন্তব্য দেখুন।
থিসাইলটম্যান

8

এক্সুবুন্টুতে আমি সম্পূর্ণরূপে সিডিআইএর জন্য xdebug অক্ষম করেছি ...

sudo rm /etc/php5/cli/conf.d/*xdebug*

দ্রষ্টব্য: এটি সত্যই আমাকে সুরকার আপডেটের জন্য সাহায্য করেছিল। পারফরম্যান্স ইস্যুগুলির জন্য xdebug অক্ষম করা প্রয়োজন।
আর্টিস্তান

3
এটি লারাভেল হোমস্টেডের জন্যও কাজ করে। হোমস্টে / লারাভেলে এক্সডিবাগটি অক্ষম করতে কেবল ফাইলটির বিভাগটি মন্তব্য করতে হবে/etc/php5/cli/conf.d/20-xdebug.ini
উলকাস

যদি আপনি টার্মিনাল থেকে পিএইচপি স্ক্রিপ্ট চালনা করেন passthruযা xdebug সক্ষম দ্বারা ফাংশনটির মাধ্যমে টার্মিনাল থেকে অন্য পিএইচপি স্ক্রিপ্ট চালায় , এক্সডিবাগ হ্যাং করতে পারে এবং কার্যকর করতে পারে না।
গেরম্যান

1
ডাউনভোটটি কী ছিল তা নিশ্চিত নন, এটি সিএলআইয়ের জন্য এক্সডিবাগ নিষ্ক্রিয় করার একমাত্র উপায় এবং অন্য পরিবেশ নয় appears যদিও আমি ব্যবহার করতে চাই unlinkউপর rmযদি এটা উপলব্ধ।
অ্যান্ডি

4
আমি ইনিকে আরএম লিঙ্ক / লিঙ্কমুক্ত করব না, পরিবর্তে উলকাসের পরামর্শ অনুসারে করব, sudo nano /etc/php/7.0/cli/conf.d/20-xdebug.iniএবং এটির মন্তব্য করব।
জাস্টিন

7

উইন্ডোজ (ডাব্লুএএমপি) সিএলআই ইনআই ফাইলটিতে:

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, এবং সুরকার তা করবে না।


4

দুটি বিকল্প:

1: আরম্ভের লিপিতে নিম্নলিখিত কোড যুক্ত করুন:

 if (function_exists('xdebug_disable')) {
           xdebug_disable();
         }

2: php.ini এ নিম্নলিখিত পতাকা যুক্ত করুন

 xdebug.remote_autostart=0
 xdebug.remote_enable=0

1 ম বিকল্প প্রস্তাবিত হয়।


4

আপনার PHP.ini সন্ধান করুন এবং এক্সডিবেগ সন্ধান করুন।

সাধারণত উবুন্টুতে এটির পথ হয়

/etc/php5/apache2/php.ini  

নিম্নলিখিত পরিবর্তনগুলি করুন (কেবল যুক্ত করে তাদের মন্তব্য করা আরও ভাল; শুরুতে)

xdebug.remote_autostart=0
xdebug.remote_enable=0
xdebug.profiler_enable=0

তারপরে উবুন্টুর জন্য আপনার সার্ভারটি পুনরায় চালু করুন

sudo service apache2 restart

4

এক্সডিবাগ অক্ষম করুন

পিএইচপি 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

দ্রষ্টব্য: আপনার পিএইচপি সংস্করণে পাথ আপডেট করুন।


এটি কোনও সমাধান নয়, কারণ /etc/php/7.0/cli/conf.d/20-xdebug.ini কেবল একটি সিমিলিংক এবং যদি আপনি এটি সম্পাদনা করেন তবে আপনি মূল ফাইলটি সম্পাদনা করেন যা ক্লাইম এবং নন-ক্লাইমের জন্য সাধারণ। আমি মনে করি সঠিক সমাধানটি সিমলিংকটি মুছুন।
আইগোমন

আপডেট উত্তর ^।
জাস্টিন

4

উবুন্টু 16.04 পিএইচপি থেকে xdebug সরান।

আপনার php.ini ফাইলটি সন্ধান করুন এবং নিশ্চিত করুন যে xdebug রয়েছে:

grep -r "xdebug" /etc/php/

যদি এটি চালানো হয় তবে এটি বিভিন্ন সংস্করণ নিয়ে আসতে পারে php -v আপনার সংস্করণটি সন্ধান করুন।

Php.ini ফাইলটি সম্পাদনা করুন, যেমন:

sudo vi /etc/php/5.6/mods-available/xdebug.ini

লাইনটি মন্তব্য করুন:

//zend_extension=xdebug.so

ফাইলটি সংরক্ষণ করুন


হ্যাঁ, আপনার করা সমস্ত (ভুল) xdebug কনফিগারেশনগুলি অনুসন্ধান করার জন্য অবশ্যই অবশ্যই প্রথম কমান্ডের দরকার। ধন্যবাদ!
অ্যারন লিউ

4

আপনি 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

3

আমি একটি অনুরূপ ইস্যু মধ্যে দৌড়ে। কখনও কখনও, আপনি php.ini তে xdebug.so খুঁজে পাবেন না। কোন ক্ষেত্রে, phpinfo()একটি পিএইচপি ফাইলে চালিত করুন এবং চেক করুন Additional .ini files parsed। এখানে আপনি আরও ইনআই ফাইল দেখতে পাবেন। এর মধ্যে একটি xdebug এর ini ফাইল হবে। এই ফাইলটি কেবল (বা নাম পরিবর্তন করুন) সরান, অ্যাপাচি পুনরায় চালু করুন এবং এই এক্সটেনশানটি সরানো হবে।


3

আমার সমস্যা ছিল: আমি সেট করে দিলেও

xdebug.remote_enable=0 

এক্সডিবাগ-ত্রুটি-বার্তা-সজ্জা প্রদর্শিত হয়েছিল।

আমার সমাধান:

xdebug.default_enable=0

আমি যদি এই পতাকাটি ব্যবহার করি তবেই এক্সডিবাগ অক্ষম ছিল।


3

(এটি সেন্টোসের জন্য)

কনফিগার ফাইলটির নতুন নাম দিন এবং অ্যাপাচি পুনরায় চালু করুন।

sudo mv /etc/php.d/xdebug.ini /etc/php.d/xdebug.ini.old
sudo service httpd restart

পুনরায় সক্ষম করতে বিপরীতটি করুন।


1

আপনি যদি ম্যাক ওএস এক্সে এমএএমপি প্রো ব্যবহার করছেন তবে এটি এমএএমপি ক্লায়েন্টের মাধ্যমে পিএইচপি ট্যাবের অধীনে অ্যাক্টিভেট এক্সডিবাগ চেক করে সম্পন্ন করা হবে :

এমএএমপি প্রোতে এক্সডেবাগ অক্ষম করা হচ্ছে


1

সুতরাং, হ্যাঁ, আপনার যা প্রয়োজন, কেবল আইএনআই ফাইলে লাইক zend_extension=xdebug.soবা অনুরূপ মন্তব্য করুন ।

সেমিকোলন যুক্ত করে মন্তব্য করা যেতে পারে।

তবে, ইতিমধ্যে এই জাতীয় উত্তর যুক্ত হয়েছে এবং আমি এক্সডিবাগের স্থিতি পরিবর্তন করতে প্রস্তুত সমাধান ভাগ করতে চাই।

আমি এক্সডিবাগের জন্য দ্রুত সুইচার তৈরি করেছি। এটি কারও পক্ষে কাজে লাগবে।

এক্সডিবাগ স্যুইচার


1

WAMP এর জন্য, টাস্কবার ট্রেতে মোড়ানো আইকনে বাম ক্লিক করুন। পিএইচপি-র উপরে ঘোরাফেরা করুন এবং তারপরে php.ini এ ক্লিক করুন এবং এটি আপনার পাঠশালায় খুলুন।

এখন, 'জেনড এক্সটেনশন' শব্দটি অনুসন্ধান করুন এবং যুক্ত করুন; এর সামনে (সেমিকোলন)

ডাব্লুএমএপ পুনরায় চালু করুন এবং আপনি যেতে ভাল are


1

অ্যাপাচি / 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

1

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


1

টগগলিং এক্সডিবাগের জন্য আমি এই বাশ স্ক্রিপ্টটি তৈরি করেছি। আমি মনে করি এটি কমপক্ষে উবুন্টু / ডেবিয়ান নিয়ে কাজ করা উচিত। এটি পিএইচপি 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

1

শুধুমাত্র নির্দিষ্ট পিএইচপি সংস্করণ বা স্যাপির জন্য xdebug অক্ষম করুন। এই ক্ষেত্রে পিএইচপি 7.2 এফএম

sudo phpdismod -v 7.2 -s fpm xdebug
sudo service php7.2-fpm nginx restart
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.