TL; ড
অ্যাপল হেডার ফাইল /usr/include
এবং macOS_SDK_headers_for_macOS_10.14.pkg
প্যাকেজটি মুছে ফেলার সিদ্ধান্ত নিয়েছে । Xdebug ইনস্টল করার জন্য, আপনি নিজে উভয় সঠিক রেফারেন্স সঙ্গে Xdebug কম্পাইল করতে হবে phpize
এবং make
।
আরও তথ্যের জন্য, আমি সমস্যা এবং সমাধান সম্পর্কে একটি ব্লগ নিবন্ধ লিখেছিলাম
দীর্ঘ গল্প সংক্ষিপ্ত, অ্যাপল /usr/include
ম্যাকওএস ক্যাটালিনাকে অনুগ্রহ করার সিদ্ধান্ত নিয়েছে , যা ইউনিক্স সিস্টেমে চিরকালের জন্য সি হেডার ফাইলের জন্য ডিফল্ট অবস্থান default PEAR / PECL এর মাধ্যমে ইনস্টল করার চেষ্টা করলে একটি ত্রুটি ফিরে আসবে কারণ সংকলকটিতে প্রয়োজনীয় শিরোনাম ফাইলটি সন্ধান করবে /usr/include
। সুতরাং সমাধানটি হ'ল Xdebug কে ম্যানুয়ালি সংকলন করা হয়েছে, ম্যানুয়ালি হ্যাডার ফাইলগুলির আসল অবস্থানটি ম্যানুয়ালি নির্দিষ্ট করে, যা এখনও অন্য কোনও স্থানে এক্সকোড দ্বারা সরবরাহিত।
প্রথমে নিশ্চিত হয়ে নিন যে কমান্ড লাইনের সরঞ্জামগুলি সহ Xcode ইনস্টল করা আছে। নিম্নলিখিত কমান্ডটি ডিফল্ট SDK এর অবস্থান প্রদর্শন করবে:
$ xcrun --show-sdk-path
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
আপনি যে শিরোনামটি চান তা ( php.h
) এর পরে আসবে /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/php/main
।
উত্স পাচ্ছে
গিট থেকে উত্স কোড পেয়ে, 2.7.2 সংকলন করা যাক । বিকল্পভাবে, আপনি উত্সটি ডাউনলোড করতে পারেন Xdebug সাইট উত্সটি ।
git clone https://github.com/xdebug/xdebug.git
cd xdebug
git checkout tags/2.7.2
phpize
এর পরে আমাদের একটি অনুলিপি তৈরি করতে হবে phpize
যাতে আমরা অন্তর্ভুক্ত পথটি সম্পাদনা করতে পারি:
cp /usr/bin/phpize .
nano ./phpize
এই লাইনটি সন্ধান করুন:
includedir="`eval echo ${prefix}/include`/php"
... এবং এই লাইনের সাথে এটি প্রতিস্থাপন করুন:
includedir="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/php"
চালান phpize
:
./phpize
আপনার এখন এই জাতীয় কিছু দেখা উচিত:
Configuring for:
PHP Api Version: 20180731
Zend Module Api No: 20180731
Zend Extension Api No: 320180731
কনফিগার করুন এবং বিল্ড করুন
আমরা এখন কনফিগার করতে পারি:
./configure --enable-xdebug
... এবং সংকলক পতাকা হিসাবে সংজ্ঞায়িত আমাদের কাস্টম এসডিকে অবস্থান ব্যবহার করে রান করুন:
make CPPFLAGS='-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/php -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/php/main -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/php/TSRM -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/php/Zend -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/php/ext -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/php/ext/date/lib'
কিছু সতর্কতা দেখতে পারে, আপাতত এটি উপেক্ষা করুন। শেষ পর্যন্ত, আমাদের চালানো দরকার:
make install
আবার, এই আদেশটি ব্যর্থ হবে কারণ এটি এক্সটেনশনটিকে সঠিক জায়গায় সরাতে পারে না। এসআইপি এটি প্রতিরোধ করবে। তবে কোনও উদ্বেগের দরকার নেই, আমরা পরবর্তী পদক্ষেপে সেই ম্যানুয়ালি যত্ন নেব। মেক ইনস্টল এখনও প্রয়োজনীয় কারণ এটি * .so ফাইলটিতে স্বাক্ষর করবে।
পিএইচপি-তে সমর্থিত সক্ষম
এরপরে, আমরা নির্বাহযোগ্যকে অন্য কোথাও নিরাপদে স্থানান্তরিত করি। আমি ব্যবহার /usr/local/php/extensions
।
sudo mkdir -p /usr/local/php/extensions
sudo cp /usr/lib/php/extensions/no-debug-non-zts-20180731/xdebug.so /usr/local/php/extensions
তারপরে আমরা এক্সডিবাগ সক্ষম করতে পিএইচপি কনফিগারেশন সম্পাদনা করি। সহজভাবে সম্পাদনা করুন php.ini
:
sudo nano /etc/php.ini
এবং আমরা নীচে নীচে যুক্ত করুন:
[xdebug]
zend_extension=/usr/local/php/extensions/xdebug.so
xdebug.remote_enable=on
xdebug.remote_log="/var/log/xdebug.log"
xdebug.remote_host=localhost
xdebug.remote_handler=dbgp
xdebug.remote_port=9000
নিশ্চিত হতে সার্ভারে বিল্ট পুনরায় চালু করুন:
sudo apachectl restart
এবং সবশেষে পরীক্ষা ভাল হয়েছে:
php -i | grep "xdebug support"
উপরের কমান্ডটি যদি কিছু না ফেরায় তবে এক্সডেব্যাগ আপনার ইনস্টলে উপলব্ধ নয়। কী অনুপস্থিত তা খুঁজে পেতে পদক্ষেপগুলি ফিরে যান।
সম্পাদনা
আরও একটি স্থির ফলাফল হ'ল ফলাফলটি সম্পাদন করা php-config --include-dir
, যা প্রত্যাবর্তন করে /usr/include/php
। এটি কোনও ইনস্টলেশন ম্যানুয়ালি ফাইল বা সংকলক পতাকা সম্পাদনা না করে প্রয়োজনীয় হেডার ফাইলগুলি সন্ধান করবে।