Prblem mit PHP und executables

Prblem mit PHP und executables

am 21.04.2007 11:30:45 von Knut Krueger

Hallo zusammen,
ich habe einen shared webserver und eine PHP Anwendung
http://refbase.sourceforge.net/
http://wiki.refbase.net/index.php/Main_Page
die executables ausführt.

Alles funktioniert solange der Safemode Off ist, also sind die Pfade zu
den executables innerhalb der Anwendung richtig gesetzt.

Setzt man den Safemode = on funktioniert es nicht.

(PHP Version 4.3.11)
Das safe_mode_exec_dir verweist auf das directory der binaries.

Zwei Fragen:
Hat irgendjemand einen Link zu einem executable testfile und dem PHP
Script dazu mit dem ich einfach ausprobieren kann was hier Serverseitig
schief laufen könnte.

wie kann ich den Fehler eingrenzen ,wenn sowohl die Entwickler als auch
der Serverbetreiber sich sicher sind das alles so sit wie es
funktionieren sollte.

Viele Grüße Knut

Re: Prblem mit PHP und executables

am 21.04.2007 12:58:54 von Claus Reibenstein

Knut Krueger schrieb:

> Setzt man den Safemode = on funktioniert es nicht.

Definiere "funktioniert nicht". Bekommst Du eine Fehlermeldung? Wenn ja:
welche? Oder bekommst Du falsche Daten? Wenn ja: welche bekommst Du, und
welche erwartest Du?

Was sagt das Error Log?

Gruß. Claus

PS: Die deutsche Schriftsprache kennt Kommata und Fragezeichen.

Re: Prblem mit PHP und executables

am 22.04.2007 12:09:00 von Knut Krueger

Claus Reibenstein schrieb:
> Knut Krueger schrieb:
>
>> Setzt man den Safemode = on funktioniert es nicht.
>
> Definiere "funktioniert nicht". Bekommst Du eine Fehlermeldung? Wenn ja:
> welche? Oder bekommst Du falsche Daten? Wenn ja: welche bekommst Du, und
> welche erwartest Du?

Es passiert einfach nichts, ohne Meldung, ohne Funktion
Es handelt sich um Konvertierungen für Quellenangaben:
http://www.scripps.edu/~cdputnam/software/bibutils/

>
> Was sagt das Error Log?
Da komme ich nicht ran, ist irgendwo unterhalb meines Roots :-(

Ich weiß es ist nicht viel was ich dazu sagen kann, aber eventuell fällt
jemanden etwas ein was ich überprüfen könnte.

Viele Grüße Knut

Re: Prblem mit PHP und executables

am 22.04.2007 12:35:02 von Claus Reibenstein

Knut Krueger schrieb:

> Claus Reibenstein schrieb:
>
>> Knut Krueger schrieb:
>>
>>> Setzt man den Safemode = on funktioniert es nicht.
>>
>> Definiere "funktioniert nicht". [...]
>
> Es passiert einfach nichts, ohne Meldung, ohne Funktion

Setze mal das Error Reporting auf E_ALL und Display Errors auf TRUE und
schaue, was dann passiert.

>> Was sagt das Error Log?
>
> Da komme ich nicht ran, ist irgendwo unterhalb meines Roots :-(

Dann solltest Du dem Provider mal eins auf die Finger geben.

Gruß. Claus

Re: Problem mit PHP und executables

am 22.04.2007 14:25:54 von Knut Krueger

Claus Reibenstein schrieb:
> Knut Krueger schrieb:
>
>> Claus Reibenstein schrieb:
>>
>>> Knut Krueger schrieb:
>>>
>>>> Setzt man den Safemode = on funktioniert es nicht.
>>> Definiere "funktioniert nicht". [...]
>> Es passiert einfach nichts, ohne Meldung, ohne Funktion
>
> Setze mal das Error Reporting auf E_ALL und Display Errors auf TRUE und
> schaue, was dann passiert.
>
>>> Was sagt das Error Log?
>> Da komme ich nicht ran, ist irgendwo unterhalb meines Roots :-(
>
> Dann solltest Du dem Provider mal eins auf die Finger geben.
Hab ich schon .. derzeit war er so freundlich die Konfiguration so zu
ändern dass alle Funktionen laufen. Das ist nur keine Dauerlösung, vor
allem wenn andere Scripte dazukommen.

> Setze mal das Error Reporting auf E_ALL und Display Errors auf TRUE >
> und schaue, was dann passiert.

Danach ist dann die manuelle Konfiguration wieder gelöschst.

Also würde ich vorher gerne alles beisammen haben um auch alles testen
zu können.
z.B gibt es irgendwo ein Miniscript und eine mini Executable (z.B Hello
Workld) mit dem ich das Ausführen von Executables in dem Verzeichnis
ausprobieren kann.
Denn:
Funktioniert -> Fehler bei der Software
Funktioiert nicht -> Fehler beim Server
In beiden Fällen ist für mich die Suche beendet und die Lösung müssen
andere finden ...
Viele Grüße Knut

Re: Problem mit PHP und executables

am 22.04.2007 14:36:32 von Claus Reibenstein

Knut Krueger schrieb:

> Claus Reibenstein schrieb:
>
>> Setze mal das Error Reporting auf E_ALL und Display Errors auf TRUE >
>> und schaue, was dann passiert.
>
> Danach ist dann die manuelle Konfiguration wieder gelöschst.

Welche "manuelle Konfiguration"? Wovon redest Du?

Du sollst in Deinem Problemscript am Anfang nach dem ersten beiden Zeilen einfügen und dann testen:

ini_set ('error_reporting', E_ALL);
ini_set ('display_errors', TRUE);

An der Konfiguration brauchst Du hierfür nichts zu ändern. Die bleibt,
wie sie ist.

Gruß. Claus

Re: Problem mit PHP und executables

am 22.04.2007 14:49:11 von Knut Krueger

Claus Reibenstein schrieb:
> Knut Krueger schrieb:
>
>> Claus Reibenstein schrieb:
>>
>>> Setze mal das Error Reporting auf E_ALL und Display Errors auf TRUE >
>>> und schaue, was dann passiert.
>> Danach ist dann die manuelle Konfiguration wieder gelöschst.
>
> Welche "manuelle Konfiguration"? Wovon redest Du?
>
> Du sollst in Deinem Problemscript am Anfang nach dem ersten > beiden Zeilen einfügen und dann testen:

Die Kombination zwischen safe_mode On/off und anderen Variablen, die man
als Hein Doof User des Webspaces nur in bestimmten Kombinationen setzen
darf. die aber derzeit, manuell vom Admin anders gesetzt ist, damit
alles funktioniert. Sprich bei einem schlechten Script ist ein
Scheunentor offen. NAchdem Du so hilfsbereit bist:
Meinst Du dass man das Problem wirklich mit meinen bescheidenen Mitteln
(und Deiner eurer Hilfe)einzugrenzen kann? Dann setze ich den Savemode
auf on und lebe bis der Fehler gefunden ist mit der reduzierten Funktion
des DB.
>
> ini_set ('error_reporting', E_ALL);
> ini_set ('display_errors', TRUE);

Dazu müdste ich natürlich die Konfiguratino vom PHP auf Savemode=on
setzen oder denn derzeit funktioniert es ja mit savemode=off
>

Grüße Knut
> An der Konfiguration brauchst Du hierfür nichts zu ändern. Die bleibt,
> wie sie ist.
>
> Gruß. Claus

Re: Problem mit PHP und executables

am 22.04.2007 20:10:46 von Claus Reibenstein

Knut Krueger schrieb:

> Claus Reibenstein schrieb:
>
> Meinst Du dass man das Problem wirklich mit meinen bescheidenen Mitteln
> (und Deiner eurer Hilfe)einzugrenzen kann?

Das kann ich Dir erst beantworten, wenn ich die Fehlermeldung gesehen habe.

>> ini_set ('error_reporting', E_ALL);
>> ini_set ('display_errors', TRUE);
>
> Dazu müdste ich natürlich die Konfiguratino vom PHP auf Savemode=on
> setzen oder denn derzeit funktioniert es ja mit savemode=off

Dann mach das bitte mal, damit wir wenigstens einmal eine Fehlermeldung
bekommen!

Gruß. Claus

Re: Problem mit PHP und executables

am 23.04.2007 10:06:42 von Knut Krueger

Nachdem auch beim setzen von error reporting und display_errors keine
Fehlermeldung kam hatte ich um sicher zu sein dass ich die richtige
Ausgabe anwähle noch ein echo eingefügt:

echo("execute Bibutils");
ini_set ('error_reporting', E_ALL);
ini_set ('display_errors', TRUE);

Ohne Echo kommt überhaupt keine Fehlermeldung mit echo:

execute Bibutils
Warning: Cannot modify header information - headers already sent by
(output started at
/home/www/web25/html/uni/refdb/includes/execute.inc.php:74) in
/home/www/web25/html/uni/refdb/includes/include.inc.php on line 3755

Warning: Cannot modify header information - headers already sent by
(output started at
/home/www/web25/html/uni/refdb/includes/execute.inc.php:74) in
/home/www/web25/html/uni/refdb/search.php on line 1502

Viele Grüße Knut

Re: Prblem mit PHP und executables

am 23.04.2007 10:10:20 von Knut Krueger

Claus Reibenstein schrieb:

>>> Was sagt das Error Log?
>> Da komme ich nicht ran, ist irgendwo unterhalb meines Roots :-(
>
> Dann solltest Du dem Provider mal eins auf die Finger geben.
>
Der Provider sagte mir dass das PHP Log nicht nach Webspace zu trennen
ist. Deshalb ist das ganze Error Log nicht einsehbar.
Kann das sein (PHP Version 4.3.11) ?
Viele Grüße Knut

Re: Problem mit PHP und executables

am 24.04.2007 14:35:44 von Knut Krueger

Claus Reibenstein schrieb:
> Knut Krueger schrieb:
>
>> Claus Reibenstein schrieb:
>>
>> Meinst Du dass man das Problem wirklich mit meinen bescheidenen Mitteln
>> (und Deiner eurer Hilfe)einzugrenzen kann?
>
> Das kann ich Dir erst beantworten, wenn ich die Fehlermeldung gesehen habe.
>
>>> ini_set ('error_reporting', E_ALL);
>>> ini_set ('display_errors', TRUE);
>
> Dann mach das bitte mal, damit wir wenigstens einmal eine Fehlermeldung
> bekommen!

Es kommt überhaupt keine Fehlermeldung auch dann nicht, wenn ich bei
Save_mod = off die Executables lösche.
Ich habe auch für den gesamten PHP Interpreter den Errorlevel auf 255
gesetzt, es kommt für andere Scriptteile jede noch so kleine Notice aber
kein Error beim ausführen der Exportfunktion die das Executable ausführt.



Grüße Knut

Re: Problem mit PHP und executables

am 24.04.2007 15:13:11 von Carsten Wiedmann

Knut Krueger schrieb:

> > > > ini_set ('error_reporting', E_ALL);
> > > > ini_set ('display_errors', TRUE);
> >
> > Dann mach das bitte mal, damit wir wenigstens einmal eine Fehlermeldung
> > bekommen!
>
> Es kommt überhaupt keine Fehlermeldung auch dann nicht, wenn ich bei
> Save_mod = off die Executables lösche.

Das scheint ja irgendwas ganz seltsam bei dir zu sein. Wie sieht denn
eigentlich die Codesetelle, wo du das externe Programm ausführst, genau aus?

Gruß
Carsten

Re: Problem mit PHP und executables

am 24.04.2007 15:25:48 von Knut Krueger

Carsten Wiedmann schrieb:
> Knut Krueger schrieb:
>
>> > > > ini_set ('error_reporting', E_ALL);
>> > > > ini_set ('display_errors', TRUE);
>> >
>> > Dann mach das bitte mal, damit wir wenigstens einmal eine Fehlermeldung
>> > bekommen!
>>
>> Es kommt überhaupt keine Fehlermeldung auch dann nicht, wenn ich bei
>> Save_mod = off die Executables lösche.
>
> Das scheint ja irgendwas ganz seltsam bei dir zu sein. Wie sieht denn
> eigentlich die Codesetelle, wo du das externe Programm ausführst, genau
> aus?
>
> Gruß
> Carsten
>

die Variablen also z.B. welches executable benötigt wird steht in einer
SQL DAtenbank

Wie schon mal geschrieben funktioniert es(also in diesem Teil) mit
Safemode=off :



// This is an export format file (which must reside within the 'export/'
sub-directory of your refbase root directory). It contains a version of the
// 'exportRecords()' function that outputs records according to the
export format used by 'BibTeX', the bibliographic companion to the LaTeX
macro package.
// This function is basically a wrapper for the bibutils 'xml2bib'
command line tool
(http://www.scripps.edu/~cdputnam/software/bibutils/bibutils .html).

// ------------------------------------------------------------ --------

// --- BEGIN EXPORT FORMAT ---

// Export found records in 'BibTeX' format:

// Requires the following packages (available under the GPL):
// - bibutils

// - ActiveLink PHP XML Package

function exportRecords($result, $rowOffset, $showRows,
$exportStylesheet, $displayType)
{
// function 'exportBibutils()' is defined in 'execute.inc.php'
$bibtexSourceText = exportBibutils($result,"xml2bib");

// function 'standardizeBibtexOutput()' is defined in 'export.inc.php'
return standardizeBibtexOutput($bibtexSourceText);
}

// --- END EXPORT FORMAT ---

// ------------------------------------------------------------ --------
?>


// Export records using the bibutils program given in '$program'
function exportBibutils($result, $program)
{
global $contentTypeCharset; // these variables are defined in
'ini.inc.php'
global $convertExportDataToUTF8;

// Get the absolute path for the bibutils package:
// (function 'getExternalUtilityPath()' is defined in 'include.inc.php')
$bibutilsPath = getExternalUtilityPath("bibutils");

// Generate and serve a MODS XML file of ALL records:
// (function 'modsCollection()' is defined in 'modsxml.inc.php')
$recordCollection = modsCollection($result);

// Get the path to the system's temporary directory:
$tempDirPath = getTempDirPath();

// Write the MODS XML data to a temporary file:
$tempFile = writeToTempFile($tempDirPath, $recordCollection);

// Set input and output encoding:
if (($convertExportDataToUTF8 == "no") AND ($contentTypeCharset !=
"UTF-8"))
{
$inputEncodingArg = " -i iso8859_1";
$outputEncodingArg = " -o iso8859_1";
}
else
{
$inputEncodingArg = " -i utf8";
$outputEncodingArg = " -o utf8";
}

// Pass this temp file to the bibutils utility for conversion:
$outputFile = convertBibutils($bibutilsPath, $tempDirPath, $tempFile,
$program, $inputEncodingArg, $outputEncodingArg);
unlink($tempFile);

// Read the resulting output file and return the converted data:
$resultString = readFromFile($outputFile);
unlink($outputFile);

return $resultString;
}

Re: Problem mit PHP und executables

am 24.04.2007 15:27:59 von Knut Krueger

Carsten Wiedmann schrieb:
> Knut Krueger schrieb:
> Das scheint ja irgendwas ganz seltsam bei dir zu sein.

Frag ist das richtig master Value = No Value(aus phpinfo):
Local Value Master Value
safe_mode_exec_dir /home/www/web25/files no value


Grüße Knut

Re: Problem mit PHP und executables

am 24.04.2007 16:25:25 von Carsten Wiedmann

Knut Krueger schrieb:

> Carsten Wiedmann schrieb:
> > Knut Krueger schrieb:
> > Das scheint ja irgendwas ganz seltsam bei dir zu sein.

Damit meinte ich eigentlich das mit der Fehleranzeige:
> > > Es kommt überhaupt keine Fehlermeldung auch dann nicht,
> > > wenn ich bei Save_mod = off die Executables lösche.

Wenn du die Programme löscht, die du über z.B. exec() aufrufst, dann sollte
dir PHP das zumindest in's Log vom Apache reinschreiben.

(Wie du das mit dem Ausführen, bzw. Auswerten von Fehlern, jetzt geanau
machst, habe ich mir in deinem anderen Post noch nicht angeschaut.)



> Frag ist das richtig master Value = No Value(aus phpinfo):
> Local Value Master Value
> safe_mode_exec_dir /home/www/web25/files no value

Ob der Pfad richtig ist kannst ja nur du wissen. In diesem Directory müssen
jedenfalls die Programme dann sein, die du ausführen willst.

Gruß
Carsten

Re: Problem mit PHP und executables

am 24.04.2007 16:50:24 von Knut Krueger

Carsten Wiedmann schrieb:
> Knut Krueger schrieb:
>
>> Carsten Wiedmann schrieb:
>> > Knut Krueger schrieb:
>> > Das scheint ja irgendwas ganz seltsam bei dir zu sein.
>
> Damit meinte ich eigentlich das mit der Fehleranzeige:
>> > > Es kommt überhaupt keine Fehlermeldung auch dann nicht,
>> > > wenn ich bei Save_mod = off die Executables lösche.
>
> Wenn du die Programme löscht, die du über z.B. exec() aufrufst, dann
> sollte dir PHP das zumindest in's Log vom Apache reinschreiben.
>
> (Wie du das mit dem Ausführen, bzw. Auswerten von Fehlern, jetzt geanau
> machst, habe ich mir in deinem anderen Post noch nicht angeschaut.)
>
>
>
>> Frag ist das richtig master Value = No Value(aus phpinfo):
>> Local Value Master Value
>> safe_mode_exec_dir /home/www/web25/files no value
>
> Ob der Pfad richtig ist kannst ja nur du wissen. In diesem Directory
> müssen jedenfalls die Programme dann sein, die du ausführen willst.
>

Ja der ist richtig, ich wollte nur wissen ob der Master Value in diesem
Fall gleich "no Value" ist. Bei anderen Werten ist dies gleich dem von
mir eingegeben Wert.

Grüße Knut

Re: --- Gelöst -- Problem mit PHP und executables

am 25.04.2007 09:17:56 von Knut Krueger

Der Programmierer hat den Code verändert es funktioniert.

Danke für die Mühe.

Knut