Fatal error: Call to undefined function expect_popen()

Fatal error: Call to undefined function expect_popen()

自从我在 Ubuntu 14.04 LTS 服务器上从 PHP 5.5.9 升级到 5.6 后,我的 PHP 期望库出现问题。它一直在描述中显示致命错误。我相信我需要的包是 libexpect-php5。一些安装检查确认它已安装:

root@k1:/etc/php5/conf.d$ dpkg --get-selections | grep -v deinstall | grep expect
empty-expect                            install
expect                                  install
expect-dev                              install
expect-lite                             install
libexpect-ocaml                         install
libexpect-ocaml-dev                     install
libexpect-perl                          install
**libexpect-php5**                      install // installed right?
libexpect-simple-perl                   install
libghc-hspec-expectations-dev           install
libghc-hspec-expectations-doc           install
libghc-hspec-expectations-prof          install
libnet-scp-expect-perl                  install
libtest-expect-perl                     install
netexpect                               install
python-pexpect                          install
python-pexpect-doc                      install
python3-pexpect                         install

root@k1:/etc/php5/conf.d$ expect -v
expect version 5.45

和 expect.so 个文件:

root@k1:/usr/lib$ ls | grep expect
libexpect.so
libexpect.so.5
libexpect.so.5.45

最后是我的 /etc/php5/apache2/php.ini 文件:

extension=expect.so

我必须通过手动下载和安装 .deb 文件来安装 libexpect-ph5,因为它在一个可卸载的依赖项上出错 api... 现在当我这样做并且 apt- get update && apt-get upgrade 它一直告诉我这个:

The following packages have been kept back:
  libexpect-php5

只需安装该软件包即可,但系统仍会保留该软件包。这给我留下了一个不知道 expect_popen() 函数的 PHP 版本。

我该如何解决?

我发现 Apache2 加载了错误的 php.ini 文件。自升级到 PHP 5.6 以来,路径也发生了变化(当然)。

旧位置:

/etc/php/apache2/php.ini

新位置:

/etc/php/5.6/apache2/php.ini

除此之外,我还必须在 php.ini 中指定 expect.so 扩展的确切路径。