2013-12-23 68 views
3

我在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):

./configure

make

make install

phpize

./configure --with-ssh2

make

make install

  • 再次獲得ssh2.so文件,將其添加到相關的php.ini,重新啓動服務器,它仍然無法正常工作。

對不起,如果這有太多的細節,希望我給的信息可以指出我做錯了什麼;我真的很感激任何解決方案/提示/事情來嘗試解決這個問題。

回答

3

你考慮過phpseclib, a pure PHP SSH2 implementation嗎?它有一個advantages over 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'); 
?> 
+0

我聽說過這個其他的選擇,我會試試之前做任何更激進的事情。我正在考慮的其他事情是將Xampp換成別的東西,或者乾脆在Windows或Ubuntu上做項目,雖然無法安裝我在一個流行操作系統項目中使用的庫是一件壞事。就目前而言,我會一直試圖讓ssh2在側面工作,因爲不會讓問題沒有答案。 –

相關問題