Я запускаю 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 stop
чтобы работал Xampp.
- выполнила команду:
sudo порт установить 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 не работают):
рубиновый -e $ (curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)
- побежал:
brew install autoconf
- теперь я наконец смог бежать:
$ sudo pecl установить ssh2-0.12
с префиксом / opt / local
- теперь у меня есть хороший файл ssh2.so, который я добавляю в соответствующий php.ini:
/ Приложения / XAMPP / xamppfiles / и т. Д.
добавив строку:
расширение = / opt / local / lib / php54 / extensions / no-debug-non-zts-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, перезапустил сервер, но он по-прежнему не работает.
Извините, если здесь слишком много деталей, надеюсь, предоставленная мной информация может указать на то, что я делаю неправильно; Я был бы очень признателен за любое решение / подсказку / вещь, чтобы попытаться решить эту проблему.