Perl Scripte

Status
Für weitere Antworten geschlossen.

DEDEX7200Pro

Benutzer
Mitglied seit
15. Mrz 2010
Beiträge
85
Punkte für Reaktionen
0
Punkte
0
Hallo!

Bei mir laufen alle CGI's nur auf Perl (Hausautomation). Damit das läuft, musste ich folgendes alles machen:

In der Apache Konfiguraiotnsdatei für den User-Apache (/usr/syno/apache/conf/) httpd.conf-user in dem Block:

<IfModule alias_module>

den Zeilenkommentar entfernen und den Pfad zum CGI-BIN Verzeichnis (das natürlich auch noch angelegt werden muss) eintragen:

ScriptAlias /cgi-bin/ "/usr/syno/apache/cgi-bin/"

Dazu dann noch sagen, was alles gemacht werden darf (etwas süäter in der Datei):

<Directory "/usr/syno/apache/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>

Im Block <IfModule mime_module> noch die Dateierweiterung (falls Du auch *.pl Datei benutzen möchtest) eintragen:

AddHandler cgi-script cgi pl

Und wenn eh grade in dieser Datei bist, würde ich das Error-Log einschalten, dann sieht man mehr wenn man wirklich Web-Seiten hosted:

ErrorLog /var/log/httpd-error-user.log

Danach kann man halt auch per tail -f das ErrorLog online verfolgen und die evtl. Fehler besser finden.

Ich hoffe, Du kommst damit klar...

Schöne Ostern

Frank Römer

P.S.: Wenn Du jemanden kennst, der ein Apache-Modul in den User-Apache einbauen kann... ich brauche so einige Perl-Module (ReadKey z.B.) in dem User-Apache und kriege es nicht hin. :confused:

Muss ich bei ScriptAlias /cgi-bin/ "/usr/syno/apache/cgi-bin/" vielleicht
ScriptAlias /volume1/web/cgi-bin/ "/usr/syno/apache/cgi-bin/" verwenden? Oder muss ich ScriptAlias /cgi-bin/ "/volume1/web/cgi-bin/" verwenden? So wie du es geschrieben hast, geht es nämlich nicht. Fehler 414. Muss ich des hier nicht auch abändern? <Directory "/usr/syno/apache/cgi-bin">

Müsste dies nicht so sein?!?

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

Edit: ich habe nun folgendes zum laufen bekommen:

192.168.2.100/~username/cgi-bin/hello.cgi
192.168.2.100/~username/unterordner/cgi-bin/hello.cgi

.pl-Scripte gehen (noch) nicht; ich weiss aber woran es liegt und:
192.168.2.100/cgi-bin/hello.cgi geht auch noch nicht; aber das werde ich auch noch zum laufen bekomme

Ich melde mich dann wieder mit der Lösung
 
Zuletzt bearbeitet:

DEDEX7200Pro

Benutzer
Mitglied seit
15. Mrz 2010
Beiträge
85
Punkte für Reaktionen
0
Punkte
0
Das ging ja schneller als ich gedacht habe^^ Hier meine Lösung:

Man gibt folgendes als Perl-Pfad ei:
#!/usr/bin/perl -w

oder

#!/opt/bin/perl -w

und man verwendet die von mir überarbeiteten httpd.conf, httpd.conf-sys, httpd.conf-user Dateien, die ihr hier downloaden könnt:

Ihr kopiert diese z.B: in den Homes/admin-Ordner eurer Synology. Dannach meldet ihr euch bei Telnet (vorher aktivieren nicht vergessen) an und gibt dort folgendes an:

cp -R /volume1/homes/admin/httpd.conf.txt /usr/syno/apache/conf/httpd.conf
cp -R /volume1/homes/admin/httpd.conf-sys.txt /usr/syno/apache/conf/httpd.conf-sys
cp -R /volume1/homes/admin/httpd.conf-user.txt /usr/syno/apache/conf/httpd.conf-user

Edit: Die .htaccess-Datei mit folgendem Inhalt muss noch im entweder jeden cgi-bin Ordner erstellt werden oder im Hauptverzeichniss (so habs ich):
Options +ExecCGI
AddHandler cgi-script cgi pl
 

Anhänge

  • httpd.conf.txt
    15 KB · Aufrufe: 72
  • httpd.conf-sys.txt
    14,9 KB · Aufrufe: 30
  • httpd.conf-user.txt
    14,9 KB · Aufrufe: 55
Zuletzt bearbeitet:

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Bitte daran denken, dass die httpd.conf sowie so immer beim Starten neu erschaffen wird. Wichtiger ist allerdings, dass es noch eine Reihe weiterer Programme und Pakete hier bei uns gibt, welche die beiden httpd.confs (also httpd.conf-user und httpd.conf-sys) modifizieren. Wenn du uns also deine Variante einfach so zur Verfügung stellst, kann das ein heilloses Durcheinander geben.

Besser: du beschreibst uns genau die Modifikationen.

Noch besser: du bastelst ein Skript, was diese Modifikationen ein- aber auch wieder ausbaut, ohne Nebeneffekte zu erzeugen.

Nicht das wir uns falsch verstehen, ich finde es toll, dass du uns deine Ideen hier zur Verfügung stellst. :) Ich möchte nur nicht, dass damit irgendwann ein kleines Chaos ausbricht, ok?

Itari
 
Zuletzt bearbeitet:

DEDEX7200Pro

Benutzer
Mitglied seit
15. Mrz 2010
Beiträge
85
Punkte für Reaktionen
0
Punkte
0
Ok danke für dein Feedback. Ich werde dies bei Gelegenheit posten. Wer einen Webserver verwendet, der startet doch seine syno nicht neu, oder? Bei mir gings übrigens auch nach nem Neustart
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Ok danke für dein Feedback. Ich werde dies bei Gelegenheit posten. Wer einen Webserver verwendet, der startet doch seine syno nicht neu, oder? Bei mir gings übrigens auch nach nem Neustart

Bitte ;)

Das mit dem Starten: Ich meinte, den Webserver neu starten. Dabei wird eine Kopie von der httpd.conf-user auf die httpd.conf gemacht. Deswegen sind Änderungen, welche man nur in der httpd.conf machen würde, nicht wirklich sinnvoll. Diese Kopiererei wird nur gemacht, damit man ggf. auch mit Programme dort (in der httpd.conf) Dinge abfragen kann, die gar nicht wissen, dass es 2 Konfigurationsdateien auf der DS gibt.

Itari
 
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