Во-первых, я запускаю PHP 5.3.3, CentOS 5.7 (2.6.18-274.3.1.el5xen)
Во-вторых, я вообще понятия не имею, что я делаю … извините!
Прежде всего, я установил libssh2 из http://www.libssh2.org/ . Ran настроить, сделать, сделать установку. Не совсем понимаю все это, но, похоже, работали онлайн-инструкции.
Затем побежал
pecl install ssh2
Все идет нормально.
Добавлена соответствующая линия расширения для php.ini, как указано. Перезапущенный апач:
service httpd restart
Все хорошо.
Но тогда не могу найти ссылку на ssh в phpInfo ().
Пытался
php -m | grep ssh2
и получил следующую ошибку:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/ssh2.so' - /usr/lib64/php/modules/ssh2.so: undefined symbol: libssh2_sftp_readdir_ex in Unknown on line 0
Что я сделал неправильно или пропустил, и как я могу это исправить?
У меня была аналогичная проблема с CentOs 6.3, и я последовал этому руководству по-другому.
1) Установите необходимые пакеты:
yum install automake make php-devel libtool openssl-devel gcc++ gcc
2) Сменить каталог ( /usr/lib/php
если у вас 32-разрядная ОС):
cd /usr/lib64/php
3) Загрузите источник (последний по состоянию на 2013/02/28, проверьте последние здесь ):
wget http://pecl.php.net/get/ssh2-0.12.tgz
4) Создайте каталог сборки (мне не нравится беспорядок в моей системе) и распакуйте пакет:
mkdir build-dir mv ssh2-0.12.tgz build-dir cd build-dir tar xzvf ssh2-0.12.tgz
5) Подготовьте этап компиляции и скомпилируйте:
phpize ./configure –with-ssh2 make
6) Скопируйте модуль в систему ( /usr/lib/php/modules/ssh2.so
если у вас 32-разрядная ОС):
cp modules/ssh2.so /usr/lib64/php/modules/ssh2.so
7) Измените конфигурацию и добавьте эту строку в /etc/php.d/ssh2.ini
(хотя мне не нужно было это делать при настройке, возможно, потому, что я уже делал это в прошлом):
extension=ssh2.so
8) Если вы хотите, вы можете удалить каталог сборки:
cd ../../ rm -f build-dir