我需要在灯泡服务器上安装与旧服务器上完全相同的php扩展,如何确切知道要安装哪些扩展才能在新服务器上安装相同的php?
我需要在灯泡服务器上安装与旧服务器上完全相同的php扩展,如何确切知道要安装哪些扩展才能在新服务器上安装相同的php?
Answers:
您可以使用命令行开关-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文件中对dl()的调用。不过,我不知道有很多人会加载类似的扩展程序。甚至不确定用例是什么,但这是您可能应该检查的另一个领域。
在Debian中,PHP扩展是通过/etc/php5/conf.d中的文件加载的
这里可能安装了两种类型的PHP Debian软件包:
要在系统上同时列出这两个列表,可以使用以下命令: dpkg -l | grep'ii php5 \?-' 列出了已安装的以php-或php5-开头的软件包。
您可能还具有使用PECL从源代码构建的扩展。列出那些人: pecl list
最后,可以用老式的方式编译自己的扩展。在这种情况下,它们可能在/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