ฉันต้องติดตั้งบนเซิร์ฟเวอร์หลอดไฟตรงกับนามสกุล php ที่ติดตั้งบนเซิร์ฟเวอร์เก่าจะรู้ได้อย่างไรว่ามีการติดตั้งส่วนขยายใดเพื่อติดตั้งบนเซิร์ฟเวอร์ใหม่
ฉันต้องติดตั้งบนเซิร์ฟเวอร์หลอดไฟตรงกับนามสกุล php ที่ติดตั้งบนเซิร์ฟเวอร์เก่าจะรู้ได้อย่างไรว่ามีการติดตั้งส่วนขยายใดเพื่อติดตั้งบนเซิร์ฟเวอร์ใหม่
คำตอบ:
คุณสามารถใช้สวิตช์บรรทัดคำสั่ง-m
ที่จะphp
เห็นสิ่งที่มีการติดตั้งโมดูล
$ php -m | head
[PHP Modules]
bz2
calendar
ctype
curl
date
dbase
dom
exif
fileinfo
...
คุณสามารถใช้php -i
เพื่อรับphpinfo();
เอาต์พุตผ่านบรรทัดคำสั่งซึ่งจะรวมข้อมูลนี้ด้วย
หากมีการใช้งานส่วนขยายจริงจะต้องมีการอ้างอิงในที่php.ini
อื่น โหลดส่วนขยายในลักษณะที่ใช้งานง่าย:
extension=msql.so
extension=/path/to/extension/msql.so
ฯลฯ
สิ่งหนึ่งที่ต้องระวังคือส่วนขยายที่มีini
ไฟล์เพิ่มเติมรวมอยู่ด้วย ฉันไม่แน่ใจเกี่ยวกับ Debian แต่ใน RHEL มี/etc/php.d/
ไดเรกทอรีที่.ini
ไฟล์ทั้งหมดได้รับการปฏิบัติเหมือนราวกับว่าพวกเขาอยู่ในหลัก/etc/php.ini
หากไม่ได้อยู่ในหนึ่งในสองแห่งนั้น (ไฟล์หลักphp.ini
หรือไฟล์ใดไฟล์หนึ่งที่รวมอยู่) ส่วนขยายจะมากหรือน้อยเพียงนั่งอยู่บนระบบไฟล์ที่ไม่ได้ใช้งาน
แก้ไข:
ที่จริงฉันคิดว่าฉันโกหก คุณอาจจะต้องมองไปที่ php ไฟล์ของคุณสำหรับการโทรไปดล () แต่ฉันไม่รู้ว่ามีหลายคนที่โหลดส่วนขยายเช่นนั้น ไม่แน่ใจว่ากรณีการใช้จะเป็นอย่างไร แต่เป็นอีกพื้นที่ที่คุณควรตรวจสอบ
ใน Debian ส่วนขยาย PHP จะถูกโหลดผ่านไฟล์ใน/etc/php5/conf.d
แพ็คเกจ PHP Debian มีสองประเภทที่อาจติดตั้งได้ที่นี่:
ในการแสดงทั้งสองระบบคุณสามารถใช้คำสั่งนี้: 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