PHP
PHP एक्सटेंशन को संकलित करें
खोज…
लिनक्स पर संकलन
विशिष्ट लिनक्स वातावरण में PHP विस्तार को संकलित करने के लिए, कुछ पूर्व आवश्यकताएं हैं:
- बेसिक यूनिक्स कौशल ("मेक" और सी कंपाइलर को संचालित करने में सक्षम)
- एक एएनएसआई सी संकलक
- PHP एक्सटेंशन के लिए स्रोत कोड जिसे आप संकलित करना चाहते हैं
आमतौर पर एक PHP एक्सटेंशन को संकलित करने के दो तरीके हैं। आप स्थिर पीएचपी बाइनरी में विस्तार संकलन है, या यह संकलन एक साझा मॉड्यूल के रूप में स्टार्टअप पर अपने PHP द्विआधारी द्वारा लोड कर सकते हैं। साझा मॉड्यूल अधिक संभावना है क्योंकि वे आपको संपूर्ण PHP बाइनरी के पुनर्निर्माण के बिना एक्सटेंशन जोड़ने या हटाने की अनुमति देते हैं। यह उदाहरण साझा विकल्प पर केंद्रित है।
यदि आपने अपने पैकेज मैनेजर के माध्यम से PHP स्थापित किया है ( apt-get install
, yum install
, आदि ..) तो आपको PHP के लिए -dev
पैकेज स्थापित करने की आवश्यकता होगी, जिसमें काम करने के लिए आवश्यक PHP हेडर फाइलें और phpize स्क्रिप्ट शामिल होंगी। । पैकेज का नाम php5-dev
या php7-dev
जैसा कुछ हो सकता है, लेकिन अपने distro के रिपॉजिटरी का उपयोग करके उपयुक्त नाम खोजने के लिए अपने पैकेज मैनेजर का उपयोग करना सुनिश्चित करें। वे अलग-अलग हो सकते हैं।
यदि आपने स्रोत से PHP का निर्माण किया है, तो हेडर फाइलें आपके सिस्टम पर ( आमतौर पर /usr/include
या /usr/local/include
) में सबसे पहले से मौजूद /usr/local/include
।
संकलन करने के लिए कदम
यह सुनिश्चित करने के लिए कि आपके पास सभी आवश्यक शर्तें हैं, संकलन करने के लिए जांचने के बाद , आप pecl.php.net पर जा सकते हैं, एक एक्सटेंशन का चयन करें जिसे आप संकलन करना चाहते हैं, और टार बॉल डाउनलोड करें।
- टार बॉल को अनपैक करें (जैसे
tar xfvz yaml-2.0.0RC8.tgz
) - उस निर्देशिका को दर्ज करें जहां संग्रह अनपैक किया गया था और
phpize
- अब आपको एक नई बनाई गई
.configure
स्क्रिप्ट.configure
चाहिए अगर सब ठीक हो गया है, उसे चलाएं./configure
- अब आपको
make
को रनmake
होगा, जो एक्सटेंशन को संकलित करेगा - अंत में,
make install
करें संकलित एक्सटेंशन बाइनरी आपके एक्सटेंशन निर्देशिका की प्रतिलिपिmake install
देगा
make install
स्टेप आमतौर पर आपके लिए इंस्टॉलेशन पथ प्रदान करेगा जहां एक्सटेंशन की प्रतिलिपि बनाई गई थी। यह आमतौर पर /usr/lib/
, उदाहरण के लिए यह /usr/lib/php5/20131226/yaml.so
कुछ हो सकता है। लेकिन यह आपके PHP के विन्यास (अर्थात --with-prefix
) और विशिष्ट API संस्करण पर निर्भर करता है। एपीआई नंबर को अलग-अलग स्थानों में अलग-अलग एपीआई संस्करणों के लिए निर्मित एक्सटेंशन रखने के लिए पथ में शामिल किया गया है।
PHP में एक्सटेंशन लोड हो रहा है
PHP में एक्सटेंशन को लोड करने के लिए, उचित SAPI के लिए अपनी भरी हुई php.ini फ़ाइल को ढूंढें, और फिर लाइन extension=yaml.so
जोड़ें और फिर PHP को पुनरारंभ करें। yaml.so
से आपके द्वारा स्थापित वास्तविक एक्सटेंशन के नाम पर yaml.so
बदलें।
Zend एक्सटेंशन के लिए आपको साझा ऑब्जेक्ट फ़ाइल को पूर्ण पथ प्रदान करने की आवश्यकता है। हालांकि, सामान्य PHP एक्सटेंशन के लिए, यह पथ आपके लोड किए गए कॉन्फ़िगरेशन, या प्रारंभिक सेटअप में $PATH
वातावरण से extension_dir
dir निर्देश से प्राप्त होता है।