laravel PHPStorm से घर के साथ लारवेल कारीगर डीबग करना




vagrant xdebug (2)

मैं सेटअप लैरवेल होमस्टेड मैंने तब डीबगिंग कार्य को बनाने के लिए दोनों घर xdebug.ini और PHPStorm कॉन्फ़िगर किया था।

घर के अंदर मेरा xdebug.ini है I

zend_extension=xdebug.so
xdebug.remote_autostart = on
xdebug.remote_enable = on
xdebug.remote_connect_back = on
xdebug.remote_port = 9000
xdebug.idekey = "vagrant"

डीबगिंग सत्र शुरू करने के लिए मैं जिन चरणों का पालन करता हूं

  1. PHPStorm में -> कनेक्शन के लिए सुनना प्रारंभ करें
  2. PHPStorm में एक ब्रेकपॉइंट सेट है
  3. मेरे ब्राउज़र में -> XDebug क्रोम हेल्पर का उपयोग करें या मेरे यूआरएल में जोड़ें? XDEBUG_SESSION_START =
  4. पेज को लोड करें

यह पूरी तरह से काम करता है मेरी समस्या तब होती है जब मैं होमस्टीड कमांड लाइन के अंदर हूं और मैं एक php artisan कमांड चलाता हूं तो मैं इसे अपने ब्रेकपॉइंट को मारने के लिए नहीं मिल सकता।

मैंने क्या कोशिश की है

  1. XDEBUG_CONFIG="idekey=PHPSTORM" PHP_IDE_CONFIG="serverName=server_name" php -dxdebug.remote_host="127.0.0.1" artisan mycommand

  2. php -d xdebug.profiler_enable=On artisan mycommand

  3. मैंने भी xdebug.remote_autostart=On सेट करने का प्रयास किया xdebug.remote_autostart=On फिर sudo service php5-fpm restart लेकिन फिर भी मेरे ब्रेकपॉइंट को कभी भी पीएचपीएसटॉर्म में नहीं मारा


दो चीजें महत्वपूर्ण हैं:

  1. remote_connect_back CLI मामले में काम नहीं कर सकता क्योंकि Xdebug दूरस्थ कंसोल का पता नहीं लगा सकता जब आप कंसोल में हों
  2. एनएटी नेटवर्क कॉन्फिगरेशन में होमस्टेड / वर्चुअलबॉक्स का उपयोग करते समय, आपकी डेवलपमेंट मशीन (जो पीएचपीएसटॉम चल रहा है) में आईपी 127.0.0.1 आईएम के अंदर से नहीं देखा गया है। इसके बजाय, यह आमतौर पर आईपी जैसे 10.0.2.2 । सही आईपी पता लगाने के लिए, अपने अपाचे के access.log पर एक नज़र access.log ,

निम्नलिखित मेरे लिए काम किया:

php -dxdebug.remote_autostart=on -dxdebug.remote_connect_back=off 
  -dxdebug.remote_host=10.0.2.2 artisan
  1. संपादित करें यदि आपके ब्रेकपॉइंट हिट नहीं हैं, तो आपको फ़ोल्डर मैपिंग को सही तरीके से सेट करना होगा (जैसा कि आईडीई में आपका रास्ता वेब सर्वर से अलग है:

  1. अपने वीएम में export PHP_IDE_CONFIG="serverName=yourservername" करें, जहां yourservername आप "नाम" के तहत स्क्रीनशॉट में कॉन्फ़िगर किया गया है

  2. आईडीई कुंजी के साथ एक पीएचपी रिमोट डिबग कॉन्फ़िगरेशन और ऊपर कॉन्फ़िगर सर्वर जोड़ें

  3. और अपनी आईडीई कुंजी और दूरस्थ_होस्ट को वीएम के XDEBUG-CONFIG में जोड़ें

    export XDEBUG_CONFIG="idekey=artisan remote_host=10.0.2.2"

संदर्भ: http://randyfay.com/content/remote-command-line-debugging-phpstorm-phpdrupal-including-drush


या, अगर यह सब बहुत जटिल है या काम नहीं कर रहा है - तो आप अपने कारीगर कमांड को यूआरएल (रूट) के माध्यम से ट्रिगर कर सकते हैं।

Artisan::call('whatever:command');