安装了新版 PHP,但不起作用

安装了新版 PHP,但不起作用

我根据本教程向我的服务器添加了一些新的 PHP 版本:https://www.23systems.net/2016/01/installing-php-5-6-x-7-0-x-ubuntu-14-04-virtualmin-5-0gpl-using-ppa/,通过添加sudo add-apt-repository ppa:ondrej/php

然而之后sudo aptitude install pkg-php-tools php5.6 php5.6-cgi php5.6-cli php5.6-dbg php5.6-common php5.6-curl php5.6-gd php5.6-imap php5.6-intl php5.6-mysql php5.6-pspell php5.6-sqlite3 php5.6-tidy php5.6-opcache php5.6-json php5.6-bz2 php5.6-mcrypt php5.6-readline php5.6-xmlrpc php5.6-enchant php5.6-xsl php-all-dev php7.0 php7.0-cgi php7.0-cli php7.0-common php7.0-dbg php7.0-curl php7.0-enchant php7.0-gd php7.0-imap php7.0-intl php7.0-ldap php7.0-mcrypt php7.0-readline php7.0-pspell php7.0-tidy php7.0-xmlrpc php7.0-xsl php7.0-json php7.0-sqlite3 php7.0-mysql php7.0-opcache php7.0-bz2 libapache2-mod-php7.0

PHP 版本会抛出以下错误:

root@xxx /projects/xxx/xxx-site # php5.6
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20131226/php_curl.dll' - /usr/lib/php/20131226/php_curl.dll: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20131226/php_gd2.dll' - /usr/lib/php/20131226/php_gd2.dll: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20131226/php_mbstring.dll' - /usr/lib/php/20131226/php_mbstring.dll: cannot open shared object file: No such file or directory in Unknown on line 0

dll对于所有已启用的扩展。我检查了文件夹,那里根本没有文件。只有so文件。我该如何解决这个问题?我的旧 PHP 版本 (5.5) 仍然有效,但 5.6、7.0、7.1 不起作用。

答案1

php.ini是否随时修改过? DLL 扩展适用于 Windows;出现这样的错误真的很奇怪。

首先,如果你的目的是使用各种 PHP 版本进行工作/测试,我认为phpbrew可能更合适。

对于您的问题,请在php.ini“动态扩展”部分中搜索。

要查看php.ini正在使用的内容,您可以执行以下操作:

$ php5.6 -i | grep -i 'configuration file'
Loaded Configuration File => /etc/php/php.ini

然后,在该文件中,您的动态扩展应该是.so文件,而不是.dll。您还可以尝试使用不同的php.ini选项(我猜不同版本可能不止一个)-c

$ php5.6 -c /etc/php/other/php.ini

如果可行,也许您只需替换文件即可:)

相关内容