Установка SSH2 для PHP для запуска на сервере Xampp Apache на OSX 10.9.1

Я запускаю Xampp на Mac с OS X 10.9.1, и я пытаюсь разработать веб-страницу, которая вызывает скрипт PHP через вызов Ajax. Xampp используется здесь для целей разработки и не предназначен для создания бэкэнда онлайн-страницы.

PHP-скрипт должен подключаться через ssh к удаленной машине, причина, по которой я
планируете использовать библиотеку ssh2. Когда я пытаюсь запустить команды:

$ connection = ssh2_connect ('my.remote.machine.address', 5432);

Я получаю следующую ошибку:

Неустранимая ошибка: вызов неопределенной функции ssh2_connect () в /Applications/XAMPP/xamppfiles/htdocs/Project/getdata.php в строке 8

и, вызывая 'phpinfo ()', ssh2, похоже, не установлен. Мне удалось успешно использовать ssh2_connect в Windows, Ubuntu и Scientific Linux, и через неделю я не могу понять, что я не делаю правильно на OSX. Я подозреваю, что может быть проблема со сломанными путями или взаимодействием с Apache сервер OSX. Вот что я пробовал:

I. Метод MacPorts и PECL (ссылка: http://lassebunk.dk/2011/05/26/installing-ssh2-for-php-on-mac-os-x/ ):

  • на моем компьютере: xcode (из iStore), MacPorts (установщик со своего сайта), PHP 5.4.17 и, по-видимому, сервер Apache, который поставляется с OSX, с которым мне пришлось остановиться:

остановка sudo apachectl

так что Xampp работал.

  • выполнил команду:

sudo port установить libssh2

поскольку библиотеки libssh2 и openssl являются предпосылками для использования ssh2_connect в php (ссылка: http://www.php.net/manual/en/ssh2.requirements.php ); openssl, похоже, уже установлен на Xampp в соответствии с phpinfo ().

  • установленная груша:

sudo php /usr/lib/php/install-pear-nozlib.phar

  • установленный Homebrew (иначе команды «pecl install» не работают):

ruby -e "$ (curl -fsSL https://raw.github.com/mxcl/homebrew/go/install )"

  • гласил:

варить установку autoconf

  • теперь я наконец смог запустить:

$ sudo pecl install ssh2-0.12

с "/ opt / local" в качестве префикса

  • теперь у меня есть хороший файл ssh2.so, который я добавляю к соответствующему php.ini:

/ Применение / XAMPP / xamppfiles / и т.д.

добавив строку:

расширение = / Opt / местные / Библиотека / php54 / расширения / нет-отлаживать-не-ЗТС-20100525 / ssh2.so

  • перезапустил веб-сервер Xampp Apache из графического интерфейса, который поставляется с Xampp, но ssh2 не был найден.

II. Скомпилируйте ssh2.so из терминального метода (ссылка: комментарий zizifu http://www.php.net/manual/en/ssh2.installation.php ):

  • получил архив libssh2 с http://libssh2.org/ и:

./configure

делать

сделать установку

  • получил последний архив ssh2 от http://pecl.php.net/package/ssh2

phpize

./configure –with-ssh2

делать

сделать установку

  • снова получил файл ssh2.so, добавил его на соответствующий сервер php.ini, перезапустил сервер, и он все еще не работает.

Извините, если у этого слишком много деталей, надеюсь, информация, которую я дал, может указывать на то, что я делаю неправильно; Я был бы очень признателен за любое решение / подсказку / вещь, чтобы попытаться решить эту проблему.

Вы рассматривали phpseclib, чистую реализацию PHP SSH2 ? Он имеет ряд преимуществ перед libssh2 , включая улучшенную мобильность и скорость. Пример:

<?php include('Net/SSH2.php'); $ssh = new Net_SSH2('www.domain.tld'); if (!$ssh->login('username', 'password')) { exit('Login Failed'); } echo $ssh->exec('pwd'); echo $ssh->exec('ls -la'); ?>