CGI - Perl Erweiterung

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

Masterofblind

Benutzer
Registriert
28. Juni 2013
Beiträge
25
Reaktionspunkte
0
Punkte
0
Hallo,


versuche nun schon seit 3 Stunden Perl auf dem Webserver zum laufen zum kriegen, komme aber leider nicht weiter….


Habe unter /usr/syno/apache2/conf in der httpd.conf-user schon die Einträge vorgenommen und dann über /usr/syno/etc/rc.d/S97apache-user.sh erstarrt den Dienst neugestartet.

Leider bringe ich es ums Willen nicht hin das der Webserver Perl Dateien aufführt.

Hat jemand eine Ahnung bzw. eine gute Anleitung für mich?

Ps.: Hab über die Suche hier im Forum nichts gefunden deswegen hab ich den Thread eröffnet….


Grüße
 
welche Einträge hast du denn gemacht? Etwas genauer wäre vielleicht hilfreich ;-)
Hast du z.B. das Laden des cgi-Moduls in der Konfig auch gemacht?
 
oh sorry ;)

also ich hab folgendes geändert / auskommentiert in /usr/syno/apache/conf.

unter <IfModule alias_module>
habe ich ScriptAlias /cgi-bin/ "/volume1/web/cgi-bin/"
</IfModule>

eingetragen


Desweiteren :

<Directory "/volume1/web/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>


Dann unter <IfModule mime_module>

AddHandler cgi-script .cgi .pl

</IfModule>

über /usr/syno/etc/rc.d/S97apache-user.sh restart Neugestartet.


den Ordner cgi-bin unter /volume1/web angelegt und eine .HTML Datei und eine .pl Datei hineingelegt.

Übers Webinterface der Synology habe ich einen Virtualhost erstellt von meinem Dyndns Namen auf den cgi-bin Ordner.


Die HTML Datei wird ganz normal geöffnet. Will ich aber die .pl Datei aufrufen kommt nur: "Es tut uns Leid, die von Ihnen gesuchte Seite konnte nicht gefunden werden."….
 
wird denn mod_cgi.so irgendwo auch geladen?
 
ich finde nur

#LoadModule cgid_module modules/mod_cgid.so


--> Auch nach auskommentieren und neustarten von /usr/sys/etc/rc.d/S97apache-sys.sh restart

keine Auswirkung


Ps.: Ist das das Richtige oder war es das Falsche?!
 
oben startest du apache-user.sh und jetzt apache-sys.sh restart? Ja das modul sollte das richtige sein, aber allenfalls hast du den falschen Apache restartet? ;-)
 
Im Anhang mal meine httpd.conf-user Datei

Wäre nett wenn du mir erklären kannst was der Unterschied zwischen httpd.conf-user und der sys Datei ist.

Hab ich einen Denkfehler ?
Ich dachte die user Datei ist für individuelle Einstellungen von mir persönlich und die sys Datei vom System Selbst?


Funktioniert leider immer noch nicht ;)

Anhang anzeigen httpd.conf-user.txt
 
sys == DSM (Apache unter root)
user == deine Webeiten (Apache unter nobody)

die Konfig habe ich mal überflogen ;-) für mich passt ned, dass der DocumentRoot auskommentiert ist
Code:
#DocumentRoot "/var/services/web"
hast du den auskommentiert?
 
Nein hab ich nicht …

Also ich hab bald in der Oberfläche die ich unter https://xxxxx:5001 aufrufe unter systemsteuerung --> Webservices --> Virtualhosts einen Virtualhost angelegt der auch funktioniert?

Auch das einkommentieren von DocumentRoot bring keinen Erfolg…

Was ich auch komisch finde, es funktioniert ja alles bis auf eben cgi / pl Endungen.

Habe auch Websiten mit php am Laufen….
 
Hast Du überhaupt das Perl-Paket installiert? Ansonsten sind eigentlich keinerlei weitere Anpassungen nötig, ich hab zumindest hier keine gemacht.
 
Was ich auch komisch finde, es funktioniert ja alles bis auf eben cgi / pl Endungen.
sie funzen in dem Sinne wohl schon zumindest weiss der Apache wohl, dass er pl verarbeiten muss. Sonst würde dir der Quelltext des Perl Scriptes ausgeliefert. Dann würde der Apache das als normales Textfile behandeln und ungeparst ausliefern.
Bist du ganz sicher dass die Synthax im Perl File korrekt ist und es eine Ausgabe erzeugt? Kannst du das File direkt auf der Konsole mit dem Perlinterpreter aufrufen? Kommt dann eine Ausgabe? Zeig doch zur Sicherheit noch dein Perlscript, wenn es direkt auf der Konsole auch nicht geht
 
Code:
#!/usr/bin/perl

print "Content-type: text/html\n\n"
print "Hello World"
mal obiges probiert? Btw die Antwort auf die Frage ob du das Script direkt auf der Konsole ausführen kannst bist du noch schuldig ;-)
Rechtemässig passt alles? Darf z.B. der User unter dem der Webserver läuft (nobody) das File überhaupt lesen? Bin jetzt nicht sicher ob cgi allenfalls sogar das x-Bit auf der Datei braucht, also auch mal chmod 0755 /pfad/datei.cgi probieren
 
ES FUNKTIONIEEEEEEERT ;)



Die Dateiberechtigung hat nicht gepasst.


Vielen Vielen Dank euch allen!

Somit sieht der Tag wieder besser aus ;P ;)
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat