2016-06-29 7 views
0

Seit meinem Upgrade von PHP 5.5.9 auf 5.6 auf meinem Ubuntu 14.04 LTS Server habe ich Probleme mit der expect Bibliothek für PHP bekommen. Es zeigt weiterhin den Fatal-Fehler in der Beschreibung an. Ich glaube, das Paket, das ich dafür brauche, ist libexpect-php5. Einige Installationsprüfungen bestätigen, dass es installiert ist:Schwerwiegender Fehler: Aufruf zu undefinierter Funktion expect_popen()

[email protected]:/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 

und

[email protected]:/etc/php5/conf.d$ expect -v 
expect version 5.45 

und die expect.so Dateien:

[email protected]:/usr/lib$ ls | grep expect 
libexpect.so 
libexpect.so.5 
libexpect.so.5.45 

und schließlich meine/etc/php5/apache2/php. Ini-Datei:

extension=expect.so 

musste ich installiere libexpect-ph5, indem du die .deb-Datei manuell herunterlädst und installierst, da es sich um eine nicht installierbare Abhängigkeits-API ... Jetzt, wenn ich es tue und apt-get update & apt-get upgrade hält es mir dies sagen:

The following packages have been kept back: 
    libexpect-php5 

Nur die Installation dieses Pakets tut etwas, aber das System wird das Paket immer noch zurückhalten. Das lässt mich mit einer PHP-Version, die nicht über die Funktion expect_popen() bekannt ist.

Wie löse ich das?

+0

Hallo, Haben Sie versucht, den Apache oder Server neu zu starten, um zu sehen, ob es die Änderungen bei der Aktualisierung übernimmt? –

+0

@JuanGarcia Ja, mehrfach, aber nichts hat sich geändert ;-( – Beeelze

Antwort

2

Ich habe festgestellt, dass Apache2 die falsche php.ini-Datei geladen hat. Seit dem Upgrade auf PHP 5.6 hat sich der Pfad natürlich auch geändert.

Old Lage:

/etc/php/apache2/php.ini 

Neuer Standort:

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

Zusammen mit, dass ich den genauen Pfad zu meiner expect.so Erweiterung in der php.ini angeben musste.