После моего обновления с PHP 5.5.9 до 5.6 на моем сервере Ubuntu 14.04 LTS у меня возникли проблемы с ожидаемой библиотекой для 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
и ожидаемые файлы .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
Мне пришлось установить libexpect-ph5, загрузив и установив файл .deb вручную, потому что он ошибался из-за неустановимого API зависимостей … Теперь, когда я делаю и apt-get update && подходящее обновление это продолжает говорить мне это:
The following packages have been kept back:
libexpect-php5
Просто установка этого пакета делает что-то, но система все равно будет держать пакет обратно. Это оставляет меня с версией PHP, которая не знает о функции wait_popen ().
Как мне это решить?
Я обнаружил, что Apache2 загружает неправильный файл php.ini. После обновления до PHP 5.6 путь также изменился (конечно).
Старое место:
/etc/php/apache2/php.ini
Новое место:
/etc/php/5.6/apache2/php.ini
Наряду с этим мне пришлось указать точный путь к моему расширению wait.so в php.ini.
Других решений пока нет …