[PHP & SSH2] Verbindungs-Fehler (?)

Patrickus

PHP-Freak
ID: 116260
L
20 Mai 2006
96
2
Hallo zusammen.

Hab vorhin mal versuchen wollen über PHP auf einen SSH2-Server zuzu greifen.
Jedoch ohne Erfolg =/

PHP:
<?php 

$con=ssh2_connect('127.0.0.1', 22); 
ssh2_auth_password($con, "user", "pass"); 
$shell=ssh2_shell($con, 'xterm'); 
fwrite( $shell, "mkdir test\n"); 
fwrite( $shell, "exit\n"); 

?>

Wollte mich mit diesesn simplen Skript mich connecten und den ordner "test" erstellen. Jedoch kam da schon diese Fehler meldung:

Code:
Fatal error: Call to undefined function: ssh2_connect() in /var/www/scorp-works.de/test.php on line 3

Stimmt etwas an dem PHP-Skript nicht oder an dem SSH2-Server?
Wenn ich viá Putty mich connecte, klappt alles einwandfrei. =/

Danke schon im vorraus


Grüße Patrick
 
Du musst dir erst das entsprechende Modul runterladen und in deine PHP-Installation einbinden, dann müsste es funktionieren.
 
Ich habe das manual nur kurz überflogen aber kann es sein das ein Linux server die ssh2.so und ein Windows server die php_ssh2.dll braucht und die bei deinem Server nicht geladen sind?

Er sagt ja zumindest das er die Funktion ssh2_connect() nicht kennt.

*edit
Zu spät aber hier noch der Link wo das steht
 
Ich habe das manual nur kurz überflogen aber kann es sein das ein Linux server die ssh2.so und ein Windows server die php_ssh2.dll braucht und die bei deinem Server nicht geladen sind?

Er sagt ja zumindest das er die Funktion ssh2_connect() nicht kennt.

*edit
Zu spät aber hier noch der Link wo das steht

PHP und SSH2 sind beide auf ein und dem selben Unix Server.

Auf dem Link war ich grad eben auch schon, jedoch hat mir das alles recht wenig gesagt, da ich noch nich so lange mit Unix arbeite =/


Du musst dir erst das entsprechende Modul runterladen und in deine PHP-Installation einbinden, dann müsste es funktionieren.

Nur wie?
 
Ja google zeigt mir auch einige Ergebnisse, jedoch kann ich damit nichts anfagnen :hö:
Ich kenn mich noch nicht so gut in diesem Berreich aus.

link

hab hier irgendwelche dll´s gefunden.

-helfen die mir überhaupt was?
-wo hin muss ich die kopieren?
-reicht kopieren?
-warum gibt es da keine version für php4?

lauter solche fragen die ich mir stell wenn ich einen solchen link anschau.

Ich weiß bis jetzt leider nur dass ich ein Modul für php brauch, damit php die befehle für ssh2 kennt.

mehr weiß ich nicht =/ kann mir da nicht jemand hilfreiche tipps geben & nicht nur auf suchmaschienen verweisen?

danke
 
am einfachsten bevor man sich die ganze Mühe macht am anfang loselegen.

1. ne phpinfo() erstellen und dort schauen welche Module geladen sind
2. in der shell einloggen und dann eingeben "locate ssh2.so" wenn was gefunden wird brauchst du es in der apache(2).conf (glaub ich) nur eintragen ==> weiter bei Punkt 6.
3. eingeben "locate mod_rewrite.so" (wenn das in der phpinfo in den geladenen steht) dann hast du das verzeichnis wo die .so Dateien liegen, steht aber auch in phpinfo
4. ne ssh2.so laden und in das verzeichnis kopieren
5. in der apache.conf (glaub ich) eintragen
6. webserver rebooten

So würde ich vorgehen wenn ich shell zugriff also root zugriff habe. Wenn es ein VServer ist kann das sowieso nur der Support machen.

Und hier mal ein link dazu, so wie ich das sehen wird die ssh2.so erstellt bei installieren. Also müsste die Datei schon vorhanden sein auf deinem Server.

(Wie immer nur schnell überflogen.)
 
Ehm das schon aber ich kam damal bei meinem VServer an die apache.conf nicht ran. Vielleicht war es auch ein schlechter anbieter, oder man kann es noch anders einbinden. Aber damals war ich nicht schlauer ^^ und da ich schon mitlerweile seit geraumer Zeit nen root habe, habe ich mich mit den Kisten schon lang nimmer beschäftigt.
 
@ strolch00:

danke fürs das ausfürliche howto.. bin immerhin auch bis 4. gekommen. Jedoch soll ich da eine ssh2.so kopieren die ich nicht habe :-? woher soll ich die nehmen?
 
Ich wei nicht in den TUT vom Link steht die wird beim kopilieren erstellt, also müsste die doch schon auf deinem Server verfügbar sein oder nicht was sagt denn locate ssh2.so???
 
Richtig somit würde ich davon ausgehen das ssh2 noch nicht kompiliert/installiert wurde. Ich würde es jetzt nach dem TUT machen vom Link. Weil die ssh2.so wirst du so im Web denke ich nicht finden.

Und btw. in der phpinfo muss doch auch was über ssh2 stehen wenn es installiert wäre. Oder liege ich da falsch?
 
Also in der phpinfo find ich nichts über ssh2 =/
jedoch kann ich mich via putty connecten..

mit dem link den du mir geschickt hast komm ich irgendwie auch nicht klar =/
das klappt einfach nicht wie es sollte >.<

EDIT:
Code:
./configure --prefix=/usr --with-openssl=/usr

make && make install

--> sollte kein Fehler erscheinen geht es weiter

Jedoch kommt da nen fehler oO

Code:
debian3164lamp:/libssh2/libssh2-0.14# make && install
make[1]: Entering directory `/libssh2/libssh2-0.14/src'
gcc -o channel.o channel.c -c -g -O2 -I/usr/include -Wall -I../include/ -fPIC
gcc -o comp.o comp.c -c -g -O2 -I/usr/include -Wall -I../include/ -fPIC
comp.c:39:18: zlib.h: No such file or directory
make[1]: *** [comp.o] Error 1
make[1]: Leaving directory `/libssh2/libssh2-0.14/src'
make: *** [all] Error 1
 
Zuletzt bearbeitet:
Also zum ersten Link sag ich nur eins :

Code:
debian3164lamp:/# apt-get install openssl-dev openssl
Reading Package Lists... Done
Building Dependency Tree... Done
E: Couldn't find package openssl-dev

probier grad einen von den andere aus :(

EDIT:
Die anderen Links verweisen mich auf die Installation von Debain und nicht auf mein Problem =(
 
stell dir doch bitte jemanden an, der dein system administriert, du merkst doch gerade selbst, dass du keine ahnung hast, und was passiert, wenn sich nun jemand an deiner kiste zu schaffen macht, willst du gar net wissn