2016-03-21 15 views
0

Ich habe einen Perl-Code, der Systemfunktion verwendet. Es funktioniert gut, wenn ich es auf meinem Linux-Terminal ausführen, aber es funktioniert nicht, wenn ich diesen Code auf Apache getestet habe.Apache Server Debugging

Mein Code ist:

system("/var/www/sa5","-d/var/www/XXX","-pYYY","-o/var/www/","/var/www/myfile.mpg.sa5"); 

Auch gibt es keine Fehlermeldung im Fehlerprotokoll von Apache, wenn ich das Skript ausführen.

Muss ich eine andere Funktion anstelle des Systems verwenden, um an Apache zu arbeiten?

+2

Wie lautet der Returncode des 'system()' Aufrufs? – PerlDuck

+0

Es wird die angegebene Eingabedatei entschlüsselt (die verschlüsselt ist) und in "/ var/www /" setzen. – Ysh

+0

Nein, ich meine nicht den _zweck_ des Aufrufs, sondern seinen Rückkehrcode, dh den Wert von $ rc 'bei der Ausführung von' my $ rc = system (...) '. – PerlDuck

Antwort

0

Ich habe nicht genug Reputation zu kommentieren, aber das ist wahrscheinlich ein Problem mit Berechtigungen. Ist das Skript suid und ist Apache konfiguriert, um suEXEC zu erlauben? Sobald das eingerichtet ist, sollten Sie auch überprüfen, ob Sie in Ihrem Skript alle richtigen Fehlerüberprüfungen durchgeführt haben. Es gibt einige Infos hier: http://docstore.mik.ua/orelly/linux/cgi/ch08_04.htm