PHP shell_exec Funktion ?

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

PHP shell_exec Funktion ?

Postby MikeD » 29. June 2007 22:28

Schönen guten Abend zusammen,
ich hab die Xampp Windows Version 1.6.2 was bei mir unter XP mit SP2 läuft, installiert. Die Installation war überhaupt kein Problem, da ich dies in der Vergangenheit schon des öfteren gemacht habe. Aber nun hab ich ein Anliegen, wo ich seit einigen Tagen nicht mehr mit klar komme.

Ich benutze Xampp vorwiegend als vBulletin Testforum, wo ich eigene Erweiterungen schreiben und auch testen kann und diese dann später in meinem Online Forum übernehmen kann. Also alles sozusagen als "Test Plattform". Ferner hab ich noch eine Galerie "PhotoPlog" und hier fängt das eigentliche Problem an, wo ich wirklich nicht mehr mit klar komme...

Diese Galerie hat im neuesten Update die EXIF Erweiterung in Form des Windows Programmes "Jhead.exe". In dieser Galerie wird nur der Pfad zu JHEAD.EXE gesetzt und sollte dann auch laufen. Nun, es läuft bei mir ums verrecken nicht. Dann hab ich mich mal hingesetzt und einige PHP Scripte geschrieben um zu testen, ob die Datei überhaupt funktioniert oder ausführbar ist, was mir überall positiv bestätigt wurde...

Ergebnis: True
Code: Select all
<?php 

//  Function returns TRUE (1) if the file is executable
echo is_executable("D:/Applications/Web Server/xampp/htdocs/vbulletin/upload/photoplog/jhead/jhead.exe");

?>


Hier fast das gleiche. Ergebnis: Ausführbar
Code: Select all
<?php 

$file = "D:/Applications/Web Server/xampp/htdocs/vbulletin/upload/photoplog/jhead/jhead.exe"; 
if(is_executable($file))
  {
  echo ("$file is executable");
  }
else
  {
  echo ("$file is not executable");
  }

?>


Ergebnis: Eigentlich sollte alles gehen?
Code: Select all
<?php

if (!file_exists('D:\Applications\Web Server\xampp\htdocs\vbulletin\upload\photoplog\jhead\jhead.exe'))
    {
    die('Na nu, die Datei existiert angeblich nicht!');
    }
    if (!is_readable('D:\Applications\Web Server\xampp\htdocs\vbulletin\upload\photoplog\jhead\jhead.exe'))
    {
    die('Hmm, die Datei existiert - aber ist nicht lesbar');
    }

echo('Eigentlich sollte alles gehen?');

?>



Nun wird interessant: Ich dachte immer, das in Xampp die PHP shell_exec() Funktion nicht funktioniert. Dieses Script beweist, das es funktioniert...
Code: Select all
<?php

$runCommand = "D:\\Applications\\Web Server\\xampp\\htdocs\\vbulletin\\upload\\photoplog\\jhead\\jhead.exe -V"; 
$WshShell = new COM("WScript.Shell");
$output = $WshShell->Exec($runCommand)->StdOut->ReadAll;
echo "<p>$output</p>";

?>


So, alles überprüft und getestet, aber trotzallerdem kann ich die Datei JHEAD.EXE innerhalb der Galerie nicht aufrufen. Respektive: Es werden die EXIF Informationen partou nicht angezeigt. Auf meinem Online Server (Linux) funktioniert die JHEAD Erweiterung tadellos - bei mir auf dem XP Rechner nicht. Ich hab nun wirklich alle Einstellungen angefangen von den Diensten bis zu den NTFS Rechten der JHEAD Datei überprüft. Es ist nix zu machen. Dann bin ich noch einen Schritt weiter gegangen und hab geprüft, ob sich Windows Programme (Notepad.exe) unter Xampp ausführen lassen, was auch hier tadellos funktioniert...
Code: Select all
<?php
exec('D:\Windows\notepad.exe');
?>


Wenn ich aber folgendes Script mit Jhead.exe teste...
Code: Select all
exec('D:\Applications\Web Server\xampp\htdocs\vbulletin\upload\photoplog\jhead\jhead.exe');


funktioniert genau das hier nicht! Das heißt: Ich seh auf dem Bildschirm nichts! Sämliche Xampp Eintellungen (php.ini / httpd.conf) wurden von mir niemals verändert. Es ist alles so in der Grundeinstellung geblieben, was man so für die Entwicklung der Programme benötigt.

Meine Frage ist: Was genau ist denn hier falsch? In anderen Foren wurde mir gesagt, das vermutlich die PHP shell_exec Funktion nicht funktioniert, was ich aber nicht glaube. Also wenn mir jemand von Euch hier aus dieser Misere befreien könnte, wäre ich demjenigen wirkich sehr dankbar. Ich komm hier einfach nicht mehr weiter! Gruß aus Köln! -Micha
MikeD
 
Posts: 8
Joined: 25. June 2007 12:48

Postby MikeD » 30. June 2007 21:27

Kann mir hier denn wirklich kein Mensch helfen?
MikeD
 
Posts: 8
Joined: 25. June 2007 12:48

Postby MikeD » 01. July 2007 18:06

Also ich möchte ja wirklich nicht drängeln, aber hat denn keiner von Euch eine Idee?
MikeD
 
Posts: 8
Joined: 25. June 2007 12:48

Postby Hogy » 01. July 2007 18:27

Evtl. habe ich es überlesen... aber hast du die Datei selbst schon getestet? Läuft die tadellos?
Hogy
 
Posts: 15
Joined: 01. July 2007 16:22

Postby sari42 » 01. July 2007 18:47

vielleicht geht's mit "/" statt "\" ?
(shell_exec fkt. hier unter w2k, php 5.2.3)
sari42
 
Posts: 800
Joined: 27. November 2005 18:28

Postby roger_morgan » 01. July 2007 20:34

Ich habe gerade probiert (Windows 2000 SP4) und es ist mir gelungen !

Absolut letztstand Xampp von gestern ohne irgendeiner Konfigurationsänderung.

Zuerst eine Vorschlag -- kopierst jhead.exe in c:\winnt Verzeichnis (oder der Haupt Windows verzeichnis deine XP).

Ich habe eine neue Unterverzeichnis unter mein c:\xampp\htdocs\ und zwar c:\xampp\htdocs\jhead erstellt. Danach einen Bild von meinen Kamera kopiert ins diese Verzeichnis.

Datei "jheadtest.php"

<?php
$filejpg="test.jpg";
$prog="jhead.exe -v ";
$command=$prog . " " . $filejpg;
$ergebnis=shell_exec($command);
echo "<pre>\n<code>\n";
echo $ergebnis;
echo "\n</code>\n</pre>\n";

?>

Ergebnis :-

Exif header 24574 bytes long
Exif section in Intel order
(dir has 12 entries)
ImageDescription = "OLYMPUS DIGITAL CAMERA "
Make = "OLYMPUS IMAGING CORP. "
Model = "E-330 "
Orientation = 1


usw. usw.



Hilfst es Dir oder nicht -- Bitte melden

LG Roger :lol:
roger_morgan
 
Posts: 5
Joined: 19. December 2005 18:02
Location: St.Ulrich bei Steyr, Österreich


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 11 guests