วิธีการทราบว่าติดตั้งส่วนขยาย php ใด


13

ฉันต้องติดตั้งบนเซิร์ฟเวอร์หลอดไฟตรงกับนามสกุล php ที่ติดตั้งบนเซิร์ฟเวอร์เก่าจะรู้ได้อย่างไรว่ามีการติดตั้งส่วนขยายใดเพื่อติดตั้งบนเซิร์ฟเวอร์ใหม่

คำตอบ:


18

คุณสามารถใช้สวิตช์บรรทัดคำสั่ง-mที่จะphpเห็นสิ่งที่มีการติดตั้งโมดูล

$ php -m | head
[PHP Modules]
bz2
calendar
ctype
curl
date
dbase
dom
exif
fileinfo
...

คุณสามารถใช้php -iเพื่อรับphpinfo();เอาต์พุตผ่านบรรทัดคำสั่งซึ่งจะรวมข้อมูลนี้ด้วย

อ้างอิง


5
ควรสังเกตว่านี่อาจจะไม่ใช่ชุดของโมดูลที่รวมอยู่ใน PHP ที่ทำงานใน Apache
Rich Remer

2

หากมีการใช้งานส่วนขยายจริงจะต้องมีการอ้างอิงในที่php.iniอื่น โหลดส่วนขยายในลักษณะที่ใช้งานง่าย:

extension=msql.so
extension=/path/to/extension/msql.so

ฯลฯ

สิ่งหนึ่งที่ต้องระวังคือส่วนขยายที่มีiniไฟล์เพิ่มเติมรวมอยู่ด้วย ฉันไม่แน่ใจเกี่ยวกับ Debian แต่ใน RHEL มี/etc/php.d/ไดเรกทอรีที่.iniไฟล์ทั้งหมดได้รับการปฏิบัติเหมือนราวกับว่าพวกเขาอยู่ในหลัก/etc/php.ini

หากไม่ได้อยู่ในหนึ่งในสองแห่งนั้น (ไฟล์หลักphp.iniหรือไฟล์ใดไฟล์หนึ่งที่รวมอยู่) ส่วนขยายจะมากหรือน้อยเพียงนั่งอยู่บนระบบไฟล์ที่ไม่ได้ใช้งาน

แก้ไข:

ที่จริงฉันคิดว่าฉันโกหก คุณอาจจะต้องมองไปที่ php ไฟล์ของคุณสำหรับการโทรไปดล () แต่ฉันไม่รู้ว่ามีหลายคนที่โหลดส่วนขยายเช่นนั้น ไม่แน่ใจว่ากรณีการใช้จะเป็นอย่างไร แต่เป็นอีกพื้นที่ที่คุณควรตรวจสอบ


เป็นเวลานานแล้วที่ฉันสร้าง PHP ขึ้นมา แต่ฉันคิดว่าคุณสามารถเลือกให้มีการรวบรวมส่วนขยายในแบบคงที่ซึ่งตัวเลือกเหล่านี้จะไม่มีประโยชน์
จูลส์

2

ใน Debian ส่วนขยาย PHP จะถูกโหลดผ่านไฟล์ใน/etc/php5/conf.d

แพ็คเกจ PHP Debian มีสองประเภทที่อาจติดตั้งได้ที่นี่:

  • แพ็คเกจ Debian PHP (ซึ่งมีชื่อขึ้นต้นด้วย php5-)
  • แพ็คเกจ PECL PHP (ซึ่งมีชื่อขึ้นต้นด้วย php-)

ในการแสดงทั้งสองระบบคุณสามารถใช้คำสั่งนี้: dpkg -l | grep 'ii php5 \? -' ซึ่งแสดงรายการแพ็คเกจที่ติดตั้งเริ่มต้นด้วย php- หรือ php5-

คุณอาจมีส่วนขยายที่สร้างด้วย PECL จากซอร์สโค้ด แสดงรายการผู้ที่มี: รายการ pecl

ในที่สุดก็เป็นไปได้ที่จะรวบรวมส่วนขยายของคุณในแบบเก่า ในกรณีนั้นพวกเขาอาจไม่มีไฟล์ใน/etc/php5/conf.dแต่อาจถูกเพิ่มลงใน php.ini

ส่วนขยายทั้งหมดมักจะมีส่วนของการส่งออกจากphpinfo (); . php -mจะแสดงรายการส่วนขยายที่ PHP โหลดไว้ (แต่ละอันควรมีจุดในเอาต์พุต phpinfo) จะมีส่วนขยายอื่น ๆ อีกมากมายที่ระบุไว้ในเอาต์พุตphp -mมากกว่าที่ติดตั้งเป็นแพ็กเกจเสริมใน Debian เนื่องจากมีส่วนขยายเริ่มต้นจำนวนมากที่สร้างไว้ใน PHP รวมถึงส่วนขยายที่คุณสามารถติดตั้งได้ในภายหลัง

นี่คือตัวอย่างผลลัพธ์จากเครื่องพัฒนาที่แสดงรายการส่วนขยาย PHP ที่ติดตั้งเพิ่มเติม:

root@zaphod:~# dpkg -l | grep 'ii  php5\?-'
ii  php-auth-sasl                         1.0.4-1                            all          Abstraction of various SASL mechanism responses
ii  php-db                                1.7.14-2                           all          PHP PEAR Database Abstraction Layer
ii  php-mail                              1.2.0-4                            all          PHP PEAR module for sending email
ii  php-mail-mime                         1.8.4-1                            all          PHP PEAR module for creating MIME messages
ii  php-mail-mimedecode                   1.5.5-1                            all          PHP PEAR module to decode MIME messages
ii  php-net-smtp                          1.6.1-1                            all          PHP PEAR module implementing SMTP protocol
ii  php-net-socket                        1.0.9-2                            all          PHP PEAR Network Socket Interface module
ii  php-pear                              5.4.39-0+deb7u2                    all          PEAR - PHP Extension and Application Repository
ii  php-xml-parser                        1.3.4-6                            all          PHP PEAR module for parsing XML
ii  php5-cgi                              5.4.39-0+deb7u2                    amd64        server-side, HTML-embedded scripting language (CGI binary)
ii  php5-cli                              5.4.39-0+deb7u2                    amd64        command-line interpreter for the php5 scripting language
ii  php5-common                           5.4.39-0+deb7u2                    amd64        Common files for packages built from the php5 source
ii  php5-curl                             5.4.39-0+deb7u2                    amd64        CURL module for php5
ii  php5-dev                              5.4.39-0+deb7u2                    amd64        Files for PHP5 module development
ii  php5-gd                               5.4.39-0+deb7u2                    amd64        GD module for php5
ii  php5-imagick                          3.1.0~rc1-1+b2                     amd64        ImageMagick module for php5
ii  php5-imap                             5.4.39-0+deb7u2                    amd64        IMAP module for php5
ii  php5-intl                             5.4.39-0+deb7u2                    amd64        internationalisation module for php5
ii  php5-mcrypt                           5.4.39-0+deb7u2                    amd64        MCrypt module for php5
ii  php5-mysql                            5.4.39-0+deb7u2                    amd64        MySQL module for php5
ii  php5-pgsql                            5.4.39-0+deb7u2                    amd64        PostgreSQL module for php5
ii  php5-sqlite                           5.4.39-0+deb7u2                    amd64        SQLite module for php5
ii  php5-suhosin-extension                0.9.37-2                           amd64        advanced protection system for PHP5
ii  php5-sybase                           5.4.39-0+deb7u2                    amd64        Sybase / MS SQL Server module for php5
ii  php5-xdebug                           2.2.1-2                            amd64        Xdebug Module for PHP 5
root@zaphod:~# pecl list
Installed packages, channel pecl.php.net:
=========================================
Package  Version State
APC      3.1.13  beta
memcache 3.0.8   beta
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.