Работя с 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 порт инсталирайте libssh2
тъй като библиотеките libssh2 и openssl са предпоставка за използване на ssh2_connect в php (справка: http://www.php.net/manual/en/ssh2.requirements.php); openssl изглежда вече е инсталиран на Xampp според phpinfo().
- инсталиран Pear:
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 инсталирайте 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 от GUI, който идва с 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, рестартира сървъра и пак не работи.
Съжалявам, ако има твърде много подробности, надявам се, че информацията, която дадох, може да посочи какво правя грешно; Наистина бих оценил всяко решение/намек/нещо, което да се опита да разреши този проблем.