我在OS X 10.9.1的Mac上運行Xampp,並試圖開發一個通過Ajax調用PHP腳本的網頁呼叫。 Xampp在這裏用於開發目的,它不打算形成在線頁面的後端。安裝SSH2 for PHP以在OSX上的Xampp Apache服務器上運行10.9.1
一個PHP腳本需要通過ssh連接到一個遠程機器,其原因是我打算使用ssh2庫的
。當我嘗試運行命令:
$connection = ssh2_connect('my.remote.machine.address', 5432);
我得到以下錯誤:
Fatal error: Call to undefined function ssh2_connect() in /Applications/XAMPP/xamppfiles/htdocs/Project/getdata.php on line 8
,並通過調用 '的phpinfo()',SSH2似乎並沒有安裝。我成功設法在Windows,Ubuntu和Scientific Linux上使用ssh2_connect,經過一個星期,我似乎無法弄清楚我在OSX上沒有做什麼,我懷疑可能存在路徑損壞或與Apache交互的問題服務器OSX附帶。這是我曾嘗試:
淨申購的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 port install libssh2
作爲libssh2和OpenSSL庫是先決條件使用ssh2_connect在PHP(參考:http://www.php.net/manual/en/ssh2.requirements.php);根據phpinfo(),openssl似乎已經安裝在Xampp上。
- 安裝梨:
sudo php /usr/lib/php/install-pear-nozlib.phar
- 安裝自制(否則 'PECL安裝' 命令失敗):
ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"
- 跑:
brew install autoconf
- 現在我終於能夠運行:
$ sudo pecl install ssh2-0.12
與 「/選擇/本地」 前綴
- 現在我有一個很好的ssh2.so文件,我將其添加到相關的PHP。INI:通過增加線
/Applications/XAMPP/xamppfiles/etc
:
extension=/opt/local/lib/php54/extensions/no-debug-non-zts-20100525/ssh2.so
- 重新從附帶XAMPP和SSH2仍然沒有找到GUI XAMPP的Apache Web服務器。
二,編譯從終端方法ssh2.so(參考:zizifu的評論http://www.php.net/manual/en/ssh2.installation.php):
- 從http://libssh2.org/得到了libssh2歸檔和:
./configure
make
make install
- 從http://pecl.php.net/package/ssh2得到了最新SSH2檔案
phpize
./configure --with-ssh2
make
make install
- 再次獲得ssh2.so文件,將其添加到相關的php.ini,重新啓動服務器,它仍然無法正常工作。
對不起,如果這有太多的細節,希望我給的信息可以指出我做錯了什麼;我真的很感激任何解決方案/提示/事情來嘗試解決這個問題。
我聽說過這個其他的選擇,我會試試之前做任何更激進的事情。我正在考慮的其他事情是將Xampp換成別的東西,或者乾脆在Windows或Ubuntu上做項目,雖然無法安裝我在一個流行操作系統項目中使用的庫是一件壞事。就目前而言,我會一直試圖讓ssh2在側面工作,因爲不會讓問題沒有答案。 –