विस्तार स्थापित करें
ध्यान दें
Apache+PHP या Nginx+PHP के संचालन मोड से भिन्न, Workerman PHP कमांड लाइन PHP CLI पर आधारित है, जो एक अलग PHP निष्पादन कार्यक्रम का उपयोग करता है, और उपयोग किया जाने वाला php.ini फ़ाइल भी अलग हो सकता है। इसलिए, यदि आप वेबपेज में phpinfo() प्रिंट करते हैं और किसी विस्तार के स्थापित होने को देखते हैं, तो यह नहीं दर्शाता कि कमांड लाइन के PHP CLI में भी संबंधित विस्तार स्थापित है।
कैसे सुनिश्चित करें कि PHP CLI में कौन से विस्तार स्थापित हैं
चलाकर php -m कमांड, कमांड लाइन PHP CLI में पहले से स्थापित विस्तारों की सूची मिलेगी, परिणाम कुछ इस प्रकार होगा:
~# php -m
[PHP Modules]
event
posix
pcntl
...
कैसे सुनिश्चित करें कि PHP CLI का php.ini फ़ाइल की स्थिति
जब हम विस्तार स्थापित करते हैं, तो संभव है कि हमें php.ini फ़ाइल को मैन्युअल रूप से सेटअप करने की आवश्यकता हो, इसलिए PHP CLI के php.ini फ़ाइल की स्थिति की पुष्टि करना आवश्यक है। आप php --ini चलाकर PHP CLI की ini फ़ाइल की स्थिति देख सकते हैं, परिणाम कुछ इस प्रकार होगा (प्रत्येक प्रणाली में परिणाम भिन्न हो सकते हैं):
~# php --ini
Configuration File (php.ini) Path: /etc/php8/cli
Loaded Configuration File: /etc/php8/cli/php.ini
Scan for additional .ini files in: /etc/php8/cli/conf.d
Additional .ini files parsed: /etc/php8/cli/conf.d/apc.ini,
/etc/php8/cli/conf.d/pdo.ini,
/etc/php8/cli/conf.d/pdo_mysql.ini
...
PHP CLI में विस्तार स्थापित करें (memcached विस्तार स्थापित करने का उदाहरण)
विधि 1, apt या yum कमांड का उपयोग करके स्थापित करें
यदि PHP को apt या yum कमांड के माध्यम से स्थापित किया गया है, तो विस्तार apt या yum के माध्यम से भी स्थापित किया जा सकता है।
debian/ubuntu जैसे सिस्टम में apt से PHP विस्तार स्थापित करने का तरीका (गैर-रूट उपयोगकर्ता को sudo कमांड जोड़ना आवश्यक है)
apt-cache searchका उपयोग करके विस्तार पैकेज खोजें~# apt-cache search memcached php php-apc - PHP 5 के लिए APC (Alternative PHP Cache) मॉड्यूल php5-memcached - php5 के लिए memcached मॉड्यूलapt-get installका उपयोग करके विस्तार पैकेज स्थापित करें~# apt-get install -y php5-memcached Reading package lists... Done Reading state information... Done ...
centos जैसे सिस्टम में yum से PHP विस्तार स्थापित करने का तरीका
yum searchका उपयोग करके विस्तार पैकेज खोजें~# yum search memcached php php-pecl-memcached - php5 के लिए memcached मॉड्यूलyum installका उपयोग करके विस्तार पैकेज स्थापित करें~# yum install -y php-pecl-memcached Reading package lists... Done Reading state information... Done ...व्याख्या:
apt या yum के माध्यम से PHP एक्सटेंशन स्थापित करने से php.ini फ़ाइल को स्वतः कॉन्फ़िगर किया जाएगा, स्थापना के तुरंत बाद उपयोग करने के लिए सुलभ है, जो बहुत सुविधाजनक है। कमी यह है कि कुछ एक्सटेंशन apt या yum में मौजूद नहीं हैं।
विधि 2, pecl का उपयोग करके स्थापित करें
pecl install कमांड का उपयोग करके विस्तार स्थापित करें।
pecl installस्थापित करें~# pecl install memcached downloading memcached-2.2.0.tgz ... Starting to download memcached-2.2.0.tgz (70,449 bytes) ....- php.ini कॉन्फ़िगर करें
php --ini चलाकर php.ini फ़ाइल की स्थिति का पता करें, फिर फ़ाइल में extension=memcached.so जोड़ें।
विधि 3, स्रोत संकलन स्थापना (आमतौर पर PHP के साथ दिए गए विस्तार को स्थापित करने के लिए, pcntl विस्तार स्थापित करने का उदाहरण)
php -vकमांड का उपयोग करके वर्तमान PHP CLI का संस्करण देखें~# php -v PHP 5.3.29-1~dotdeb.0 with Suhosin-Patch (cli) (built: Aug 14 2014 19:55:20) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2014 Zend Technologies- संस्करण के अनुसार PHP सोर्स कोड डाउनलोड करें
PHP ऐतिहासिक संस्करण डाउनलोड पृष्ठ: https://php.net/releases/
- सोर्स संकुचन फ़ाइल को अनज़िप करें
उदाहरण के लिए, डाउनलोड की गई संकुचन फ़ाइल का नाम php-5.3.29.tar.gz है।
~# tar -zxvf php-5.3.29.tar.gz
php-5.3.29/
php-5.3.29/README.WIN32-BUILD-SYSTEM
php-5.3.29/netware/
...
- स्रोत के ext/pcntl निर्देशिका में जाएं
~# cd php-5.3.29/ext/pcntl/ phpizeकमांड चलाएं~# phpize Configuring for: PHP Api Version: 20090626 Zend Module Api No: 20090626 Zend Extension Api No: 220090626configureकमांड चलाएं~# ./configure checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E ...makeकमांड चलाएं~# make /bin/bash /tmp/php-5.3.29/ext/pcntl/libtool --mode=compile cc ... -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend... ...make installकमांड चलाएं~# make install Installing shared extensions: /usr/lib/php5/20090626/- ini फ़ाइल कॉन्फ़िगर करें
php --ini चलाकर php.ini फ़ाइल की स्थिति का पता करें, फिर फ़ाइल में extension=pcntl.so जोड़ें।
व्याख्या:
यह विधि आमतौर पर PHP के साथ दिए गए विस्तार (जैसे posix विस्तार और pcntl विस्तार) को स्थापित करने के लिए उपयोग की जाती है। किसी विस्तार को phpize से संकलित करने के अलावा, सम्पूर्ण PHP को भी पुनः संकलित किया जा सकता है, संकलन के समय विस्तार जोड़ने के लिए विकल्प का उपयोग करें, जैसे कि सोर्स रूट निर्देशिका में चलाएं
~# ./configure --enable-pcntl --enable-posix ...
~# make && make install
विधि 4, phpize स्थापित करें
यदि स्थापित करने के लिए आवश्यक विस्तार php सोर्स के ext निर्देशिका में नहीं है, तो इस विस्तार को https://pecl.php.net पर खोजकर डाउनलोड करना होगा।
libevent विस्तार स्थापित करने का उदाहरण (मान लेना कि प्रणाली में libevent-dev लाइब्रेरी स्थापित है)
- libevent विस्तार फ़ाइल संकुचन पैकेज डाउनलोड करें (आप किसी भी स्थान पर डाउनलोड कर सकते हैं)
~# wget https://pecl.php.net/get/libevent-0.1.0.tgz --2015-05-26 21:43:40-- https://pecl.php.net/get/libevent-0.1.0.tgz Resolving pecl.php.net... 104.236.228.160 Connecting to pecl.php.net|104.236.228.160|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 9806 (9.6K) [application/octet-stream] Saving to: “libevent-0.1.0.tgz”
100%[=======================================================>] 9,806 41.4K/s in 0.2s
2. विस्तार फ़ाइल संकुचन को अनज़िप करें
```shell
~# tar -zxvf libevent-0.1.0.tgz
package.xml
libevent-0.1.0/config.m4
libevent-0.1.0/CREDITS
libevent-0.1.0/libevent.c
....
-
सोर्स निर्देशिका में जाएं
~# cd libevent-0.1.0/ -
phpizeकमांड चलाएं~# phpize Configuring for: PHP Api Version: 20090626 Zend Module Api No: 20090626 Zend Extension Api No: 220090626 -
configureकमांड चलाएं~# ./configure checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for a sed that does not truncate output... /bin/sed checking for cc... cc checking whether the C compiler works... yes ... -
makeकमांड चलाएं~# /bin/bash /data/test/libevent-0.1.0/libtool --mode=compile cc -I. -I/data/test/libevent-0.1.0 -DPHP_ATOM_INC -I/data/test/libevent-0.1.0/include ... -
make installकमांड चलाएं~# make install Installing shared extensions: /usr/lib/php5/20090626/ -
ini फ़ाइल कॉन्फ़िगर करें
php --ini चलाकर php.ini फ़ाइल की स्थिति का पता करें, फिर फ़ाइल में extension=libevent.so जोड़ें।