
我需要在 lamp 伺服器上安裝與舊伺服器上安裝的完全相同的 php 擴展,如何準確知道安裝了哪些擴展以便在新伺服器上安裝相同的擴展?
答案1
您可以使用命令列開關-m
來php
查看安裝了哪些模組。
$ php -m | head
[PHP Modules]
bz2
calendar
ctype
curl
date
dbase
dom
exif
fileinfo
...
您也可以透過命令列php -i
取得輸出,其中也包含此資訊。phpinfo();
參考
答案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 檔案中是否有對 dl() 的調用。不過,我不知道有多少人會載入這樣的擴充功能。甚至不確定用例是什麼,但這是您可能應該檢查的另一個領域。
答案3
在 Debian 中,PHP 擴充功能透過以下檔案加載/etc/php5/conf.d
這裡可能安裝兩種類型的 PHP Debian 軟體包:
- Debian PHP 軟體套件(名稱以 php5- 開頭)
- PECL PHP 套件(名稱以 php- 開頭)
要在您的系統上列出兩者,您可以使用以下命令: dpkg -l | dpkg -l | grep 'ii php5\?-' 其中列出了以 php- 或 php5- 開頭的已安裝軟體包。
您還可能擁有使用 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