विस्तार स्थापित करें

ध्यान दें

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 कमांड जोड़ना आवश्यक है)

  1. apt-cache search का उपयोग करके विस्तार पैकेज खोजें
    ~# apt-cache search memcached php
    php-apc - PHP 5 के लिए APC (Alternative PHP Cache) मॉड्यूल
    php5-memcached - php5 के लिए memcached मॉड्यूल
  2. apt-get install का उपयोग करके विस्तार पैकेज स्थापित करें
    ~# apt-get install -y php5-memcached
    Reading package lists... Done
    Reading state information... Done
    ...

centos जैसे सिस्टम में yum से PHP विस्तार स्थापित करने का तरीका

  1. yum search का उपयोग करके विस्तार पैकेज खोजें
    ~# yum search memcached php
    php-pecl-memcached - php5 के लिए memcached मॉड्यूल
  2. 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 कमांड का उपयोग करके विस्तार स्थापित करें।

  1. pecl install स्थापित करें
    ~# pecl install memcached
    downloading memcached-2.2.0.tgz ...
    Starting to download memcached-2.2.0.tgz (70,449 bytes)
    ....
  2. php.ini कॉन्फ़िगर करें

php --ini चलाकर php.ini फ़ाइल की स्थिति का पता करें, फिर फ़ाइल में extension=memcached.so जोड़ें।

विधि 3, स्रोत संकलन स्थापना (आमतौर पर PHP के साथ दिए गए विस्तार को स्थापित करने के लिए, pcntl विस्तार स्थापित करने का उदाहरण)

  1. 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
  2. संस्करण के अनुसार PHP सोर्स कोड डाउनलोड करें

PHP ऐतिहासिक संस्करण डाउनलोड पृष्ठ: https://php.net/releases/

  1. सोर्स संकुचन फ़ाइल को अनज़िप करें

उदाहरण के लिए, डाउनलोड की गई संकुचन फ़ाइल का नाम 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/
...
  1. स्रोत के ext/pcntl निर्देशिका में जाएं
    ~# cd php-5.3.29/ext/pcntl/
  2. phpize कमांड चलाएं
    ~# phpize
    Configuring for:
    PHP Api Version:         20090626
    Zend Module Api No:      20090626
    Zend Extension Api No:   220090626
  3. configure कमांड चलाएं
    ~# ./configure
    checking for grep that handles long lines and -e... /bin/grep
    checking for egrep... /bin/grep -E
    ...
  4. 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...
    ...
  5. make install कमांड चलाएं
    ~# make install
    Installing shared extensions:     /usr/lib/php5/20090626/
  6. 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 लाइब्रेरी स्थापित है)

  1. 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
....
  1. सोर्स निर्देशिका में जाएं

    ~# cd libevent-0.1.0/
  2. phpize कमांड चलाएं

    ~# phpize
    Configuring for:
    PHP Api Version:         20090626
    Zend Module Api No:      20090626
    Zend Extension Api No:   220090626
  3. 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
    ...
  4. 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
    ...
  5. make install कमांड चलाएं

    ~# make install
    Installing shared extensions:     /usr/lib/php5/20090626/
  6. ini फ़ाइल कॉन्फ़िगर करें

php --ini चलाकर php.ini फ़ाइल की स्थिति का पता करें, फिर फ़ाइल में extension=libevent.so जोड़ें।