Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Php System() funktioniert nicht

Frage Entwicklung PHP

Mitglied: drBommel

drBommel (Level 1) - Jetzt verbinden

02.04.2011, aktualisiert 00:43 Uhr, 6107 Aufrufe, 10 Kommentare

Hallo Leute,

wie der Titel des Threads schon aussagt, geht bei mir die system() Funktion von php nicht und weiss leider nicht mehr weiter.

Zunächst ein paar Fakten:

Ich habe einen V-Server gemietet auf dem Plesk läuft und möchte hier FOP (=formatting object processor) verwenden um eine pdf-Datei zu erzeugen.
Um diesen FOP zu verwenden benötige ich allerdings eine .fo - Datei die durch den Saxon Prozessor erzeugt wird - Und hier kommen wir zum Problem.

Der Saxon funktioniert folgendermaßen:

$saxon9 ="java -jar saxon9he.jar ".xml-Datei" ".xsl-Datei";
system($saxon9);

Auf dem XAMPP auf meinem Home PC funktioniert alles wie es soll und es wird durch diesen Befehl eine .fo Datei erzeugt. Auf dem V-Server leider nicht und ich weiss nicht warum und das witzige ist, wenn ich $saxon9 ausgebe und 1:1 in die cmd eingebe wird die .fo-Datei erzeugt.

Kennt jemand das Problem oder vermutet einen Fehler ??

Nochmal zum Verständnis:

Aus der xml und xsl soll eine fo gemacht werden, anschließend wird eine pdf daraus.

xsl -----> .fo ----> pdf
xml----->

Vielen Dank für jede hilfreiche Antwort !

Gruß DrBommel
Mitglied: builder4242
02.04.2011 um 01:14 Uhr
guten abend,


ich vermute mal, dass das mit der php.ini zu tun hat weil bei xampp so gut wie alles aktiviert ist um bestmögliche kompatibilität zu gewärleisten.
Bei produktiven Webserver sind standartmäßig die meisten module deaktiviert zwecks der sicherheit.

Aber ich gehe mal davon aus das du root zugang zum server hast, was dir ermöglicht die php.ini anzupassen

klick dich am besten mal durch php.net und prüfen was da über deine funktionen steht, da wird auch meistens gleich erläuter wo du in der php.ini schauen musst

grüße
Bitte warten ..
Mitglied: dog
02.04.2011 um 01:14 Uhr
01.
<?php 
02.
error_reporting(E_ALL|E_STRICT); 
03.
ini_set('display_errors','On'); 
04.
?>
Dann reden wir weiter...
Bitte warten ..
Mitglied: drBommel
02.04.2011 um 10:09 Uhr
Zunächst mal danke für eure Antworten.

@builder4242:
ich hab in der php.ini sowohl auf dem xampp @ home als auch vom Server ein wenig gestöbert, konnte aber keine großen Unterschiede feststellen.
Auf http://www.php.net/manual/de/function.system.php hab ich ebenfalls nachgeschaut und hab lediglich:

"Hinweis: Mit aktiviertem Safe Mode können Sie nur Programme ausführen, die im Verzeichnis liegen, das mit safe_mode_exec_dir angegeben wurde. Aus praktischen Gründen ist es gegenwärtig nicht erlaubt, dass der Pfad zu einem Programm .. enthält."

gefunden. Allerdings ist bei beiden php.ini's der safe_mode deaktiviert. Ansonsten hab ich da nichts gefunden

@dog:

ich habe diese 2 Zeilen vor und nach meinem Befehl eingetippt, allerdings erscheint nach wie vor keine Fehlermeldung.

Sonst noch irgendeine Idee ?
Bitte warten ..
Mitglied: drBommel
02.04.2011 um 10:14 Uhr
ach ja, ein Comment hab ich noch auf der Seite gefunden:

So, if your system() call is failing mysteriously and giving no results, after trying the obvious (permissions, executable, etc.) considering upping:

memory_limit

in your php.ini from 8M to something larger.

der memory_limit in meiner php.ini is bei 128 mb, kann also daran auch net liegen
Bitte warten ..
Mitglied: LordGurke
02.04.2011 um 10:57 Uhr
Schau dir mal mit "which java" an, wo die Java-Binary liegt die du ausführst und gib den ausgegebenen Pfad komplett so in deinem PHP-Script an.
Wenn der Webserver die Java-Binary nicht findet oder einfach die falsche nimmt, könnte das dieses Verhalten erklären.
Bitte warten ..
Mitglied: drBommel
02.04.2011 um 11:34 Uhr
Danke für den Hinweis.

Ich hab nun den exakten Pfad für "java" eingeben - sprich C:\Program Files....\bin\java.exe -jar saxon9he.jar ".xml-Datei" ".xsl-Datei"
Da kommt der Fehler: "Der Befehl "C:\Program " ist entweder falsch geschrieben oder konnte nicht gefunden werden"

Nächste Variante:

Ich habe von den restlichen Parametern die komplette Pfade angegeben - sprich "java -jar C:\.....\saxon9he.jar C:\....\.xml-Datei C:\...\.xsl-Datei"
In der Konsole funktioniert es wieder, über php wird der system-Befehl nicht ausgeführt.

Sonst noch irgendwelche Ideen?
Bitte warten ..
Mitglied: Arano
02.04.2011 um 13:48 Uhr
Moin moin,

Darf der Webserver überhaupt auf die Java-Ausführungsdatei zugreifen bzw. in das Ziel schreiben - Zugriffsrechte.
Funktioniert der Aufruf der Funktion system() den generell überhaupt auf dem Server !?
Was gibt system() den zurück - Rückgabewerte; var_dump()

Mehr kann ich wohl auch nicht Helfen...

Ist das jetzt eigentlich ein Windows oder Linux Server !?


~Arano
Bitte warten ..
Mitglied: dog
02.04.2011 um 16:23 Uhr
"Der Befehl "C:\Program " ist entweder falsch geschrieben oder konnte nicht gefunden werden"

Anführungszeichen setzen (oder vorher chdir machen):

01.
system('"C:\\Program Files\\java\\java.exe" ...');
über php wird der system-Befehl nicht ausgeführt.

Das sollten wir erstmal prüfen.
Leg dir den Code hier als test.vbs irgendwo hin und ruf ihn mit PHP auf.
Wenn er aufgerufen wurde muss danach was in der Windows Ereignisanzeige stehen.
01.
Const EVENT_SUCCESS = 0 
02.
 
03.
Set objShell = Wscript.CreateObject("Wscript.Shell") 
04.
 
05.
objShell.LogEvent EVENT_SUCCESS, "Ich wurde aufgerufen!"
Bitte warten ..
Mitglied: drBommel
03.04.2011 um 16:49 Uhr
danke schon ma für euere Ansätze und sorry, dass ich mich nicht mehr gemeldet habe, aber bei dem Wetter sitze ich net rund um die Uhr im Haus und programmiere :P

@dog

Das mit den Anführungsstrichen hat nichts gebracht, wird weder von der Konsole noch von system() genommen.
Ich habe die test.vbs erstellt und über system(Dateipfad) ausgeführt, habe allerdings nichts in der Ereignisanzeige feststellen können.

@Arano

bezüglich der Zugriffsrechte. Das könnte womöglich sein, dass ich mit Zugriff auf den Server (via cmd) es ausführen kann, jemand außerhalb über die domain aber nicht. Wie könnte man das lösen / testen ? Wobei.....Bevor ich zu system() komme, erstelle ich bereits zwei temporäre Dateien.
Naja...Der Befehl sollte ja prinzipiel funktionieren. Haste einen Code parat der auf deinem Server funktioniert - wäre vermutlich der einfachste Test.
Rückgabewert: Ich habe system() einer Variablen übergeben und ausgeben lassen - ohne Resultat. Es wird nichts ausgegeben.
Zum Server: Es ist ein virtueller Windows Server
BS: Windows 2008

Kann es nicht vllt. doch an der php.ini liegen, wie es builder4242 bereits meinte?? Weiss jemand, was man on bzw. off schalten muss, damit es 100%ig funktioniert müsste ?? Dann könnte man die php.ini schon ma abhacken.

Danke nochmals für euere Hilfe und hoffe, es hat noch jemand eine Idee an was es liegen kann.

Gruß drBommel
Bitte warten ..
Mitglied: drBommel
09.04.2011 um 15:29 Uhr
Hey Leute,

momentan habe ich leider viel zu tun, sodass ich nur am WE zum Arbeiten am Server komme. Hier was ich heute rausgefunden habe:

Zunächst mal habe ich endlich mal einen Rückgabewert bekommen:

system($saxon9, $return);
echo ($return);

Ausgabe ist : 6

Kann jemand was damit anfangen ?? was hat das zu bedeuten ??

Dann habe ich nun richtig

Var_dump(system($saxon9)); verwendet und dabei kam folgendes raus:

string(0) ""

Kp, was das genau zu bedeuten hat - vllt., dass system keinen String zu verarbeiten hat , oder ?

Und zu guter Letzt habe ich noch versucht einen stinknormalen system() auszuführen mit folgendem Resultat:

$cmd = "date";
$output = system($cmd);

-->

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator to inform of the time the error occurred and of anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Naja...und wenn das net ma funktioniert, kann ich den gewünschten system() wohl vollens abhacken^^

Kann jemand mit diesen Informationen was anfangen ?? Danke schon ma
Bitte warten ..
Ähnliche Inhalte
PHP
SSH-Verbindung mit PHP funktioniert (teilweise) nicht..
Frage von thaddaeus93PHP16 Kommentare

Hallo zusammen, zunächst habe ich folgendes vor: Ich möchte über PHP/SSH zwei WLAN-Access-Points ansteuern und auf diesen SSH-Befehle ausführen ...

PHP
PHP statements mit PHp erzeugen
gelöst Frage von LorderichPHP4 Kommentare

Hallo zusammen, ich habe eine Datei, in welcher per switch und case die Webseiten definiert werden, welche bei Aufruf ...

PHP
PHP - Variable in anderes PHP-Skript mitgeben
gelöst Frage von Jens4everPHP3 Kommentare

Hi zusammen, könnt ihr mir kurz helfen? Ich habe folgendes vor: Ich möchte, dass beim Aufruf von "check1.php" eine ...

Windows Tools
Monitoring System (tiket) System gesucht
gelöst Frage von fundave3Windows Tools5 Kommentare

Guten Abend Zusammen, Derzeit sind wir auf der Suche nach einem Monitorring System welches Kunden Hosts Monitoren soll inkl, ...

Neue Wissensbeiträge
Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 8 StundenInternet2 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 12 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 12 StundenWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 15 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

Windows Server
Anmeldung direkt am DC nicht möglich
Frage von ThomasGrWindows Server15 Kommentare

Hallo, ich habe bei unserem Server 2016 Standard ein Problem. Keine Ahnung wie das auf einmal passiert ist. Ich ...

TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte14 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...