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, ich möchte bei meinen Webseiten beim Webserver gerne CGI und PL Scripte, also Perl Scripte ausführen, allerdings klappt dies nicht. Muss ich da noch was installieren?!? Ich habe übrigens die Synology DS210j. Vielen Dank schon mal im Vorraus
mfg,
DEDE
 

DEDEX7200Pro

Benutzer
Mitglied seit
15. Mrz 2010
Beiträge
85
Punkte für Reaktionen
0
Punkte
0
hallo, kann mir wirklich keiner helfen? Die Syno hat doch Perl schon drauf, oder? Warum kann ich dann kein Perl für die Webseiten verwenden. Und wieso geht es nicht, wenn ich Perl über ipkg nachrüste. Hat den keiner außer mir die DS210j?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Hat den keiner außer mir die DS210j?
Na ja daran wird es bestimmt liegen :rolleyes: ;)
Was kommt denn für eine Fehlermeldung wenn du ein Testperlscript aufrufst? Kannst du das Script auf der Konsole denn überhaupt ausführen
 

DEDEX7200Pro

Benutzer
Mitglied seit
15. Mrz 2010
Beiträge
85
Punkte für Reaktionen
0
Punkte
0
Es kommt die Fehlermeldung, dass die Seite nicht gefunde wurde. Ich glaube auch, dass er nur html und php Daten im Ordner "Web" freigibt. Oder liegt es am Perlpfad? Wie muss der Standardmässig lauten und wie muss er nach Installation von IPKG-Perl lauten? Gehen bei den anderen Synos Perl-Scripte automatisch oder müsst ihr des auch installieren und dann Einstellungen vornehmen. Ich hab schon alles versucht, was mir einfällt. Ich hab auch über Telnet schon den Perlpfad ausfindig gemacht und den entsprechend abgeändert. Nix geht. Hab DSM2.3 drauf
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
hallo, kann mir wirklich keiner helfen? Die Syno hat doch Perl schon drauf, oder? Warum kann ich dann kein Perl für die Webseiten verwenden. Und wieso geht es nicht, wenn ich Perl über ipkg nachrüste. Hat den keiner außer mir die DS210j?

Kaum jemand spielt hier mit Perl. Deswegen gibt es wenig Knowhow und kaum jemanden, der dir da wirklich bei helfen kann. Vielleicht findest du ja im internationalen Synology-Forum eher Unterstützung.

Itari
 

DEDEX7200Pro

Benutzer
Mitglied seit
15. Mrz 2010
Beiträge
85
Punkte für Reaktionen
0
Punkte
0
Vielen Dank. Vielleicht komme ich ja eines Tages von allein drauf
 

QTip

Super-Moderator
Teammitglied
Mitglied seit
04. Sep 2008
Beiträge
2.341
Punkte für Reaktionen
14
Punkte
84
also bei mir funktioniert das so:

Verzeichnis im Ordner web erstellen. Dort die html und/oder php-Skripte rein.
Dann dort ein Verzeichnis cgi-bin erstellen, da kommen dann die pl und/oder cgi Skripte rein. In Kopf der pl-Dateien muss dann für das mitgelieferte Perl
Rich (BBCode):
#!/usr/bin/perl
drin stehen, für das per IPKG installierte Perl die folgende Zeile (ggf. anpassen)
Rich (BBCode):
#!/opt/bin/perl
Anpassen der Pfade in den html und/oder php-Dateien zu den Perl-Skripten nicht vergessen.
 

DEDEX7200Pro

Benutzer
Mitglied seit
15. Mrz 2010
Beiträge
85
Punkte für Reaktionen
0
Punkte
0
Angenommen ich erstelle den Ordner "test" und den Ordner "cgi-bin" in diesem Ordner mit einem "Hello-World-Script - hello.pl". Muss ich den dann nicht so aufrufen? (also im Browser). http://ip/test/cgi-bin/hello.pl ?!? Wenn ja, dann gehts nicht
 

QTip

Super-Moderator
Teammitglied
Mitglied seit
04. Sep 2008
Beiträge
2.341
Punkte für Reaktionen
14
Punkte
84
erstelle mal eine Datei .htaccess im cgi-bin Verzeichnis mit folgendem Inhalt:
Rich (BBCode):
Options +ExecCGI
AddHandler cgi-script cgi pl
Wenn das immer noch nicht reicht, dann ändere die Endung .pl in .cgi um. Achte darauf, das cgi Dateien mindestens chmod +755 benötigen, damit sie ausgeführt werden dürfen/können.
 
Zuletzt bearbeitet:

FRoemer

Benutzer
Mitglied seit
25. Jan 2010
Beiträge
15
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:
 
Zuletzt bearbeitet:

QTip

Super-Moderator
Teammitglied
Mitglied seit
04. Sep 2008
Beiträge
2.341
Punkte für Reaktionen
14
Punkte
84
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:
Perl-Module werden nicht im Apache eingebunden. Du musst dir per IPKG perl installieren und dort dann die Module per CPAN hinzufügen.
 
Zuletzt bearbeitet:

FRoemer

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

Wenn ich mir mal die Dokus in Sachen CPAN ansehe, reden die immer von "make", dazu braucht man aber MakeMaker oder so. Das bekomme ich nicht für den NAS.

Komisch ist ja, Term:ReadKey ist laut ipkg list_installed ja drauf... aber wohl nur für das Perl, was direkt unter Linux angesprochen werden kann. Nicht aber für das Apache Perl... die haben auch verschiedene Revisions (5.8 und 5.10). Wie bekomme ich also das "Apache-Perl" dazu, mit dem Term::RedKey zu reden?

Oder, wie bekomme ich ein CPAN dazu ohne MakeMaker das Modul korrekt zu implementieren?

Der Schritt "perl Makefile.PL" geht noch, auch "perl test.pl" kommt korrekt an... aber unter der Webseite geht nix.

Na ja, was mache ich jetzt?

Gruß
Frank
 

QTip

Super-Moderator
Teammitglied
Mitglied seit
04. Sep 2008
Beiträge
2.341
Punkte für Reaktionen
14
Punkte
84
Hallo!

Wenn ich mir mal die Dokus in Sachen CPAN ansehe, reden die immer von "make", dazu braucht man aber MakeMaker oder so. Das bekomme ich nicht für den NAS.
Ein paar Infos gibt es auf dieser Seite
Als erstes rufst du die CPAN-Shell auf
Rich (BBCode):
perl -MCPAN -e shell;
Beim ersten Aufruf wirst du gefragt, ob du es konfigurieren möchtest, dem solltest du zustimmen.
Evtl. musst du einige Pakete wie z.B. make nachinstallieren, denn diese werden von CPAN benötigt und in der Konfiguration abgefragt.
Danach kannst mit CPAN bequem Module suchen und installieren.

Komisch ist ja, Term:ReadKey ist laut ipkg list_installed ja drauf... aber wohl nur für das Perl, was direkt unter Linux angesprochen werden kann. Nicht aber für das Apache Perl... die haben auch verschiedene Revisions (5.8 und 5.10). Wie bekomme ich also das "Apache-Perl" dazu, mit dem Term::RedKey zu reden?
Da du schon das Paket "perl-term-readkey" installiert hast ist auch, bedingt durch die Paketabhängigkeit, IPKG Perl ebenfalls installiert.
Damit die Perlscripte das richtige Perl ansprechen muss in der 1. Zeile eines Scriptes
Rich (BBCode):
#!/opt/bin/perl
stehen.
#!/usr/bin/perl wäre für das von Synology gelieferte Perl
#!/opt/bin/perl wäre für das durch IPKG installierte Perl
 

DEDEX7200Pro

Benutzer
Mitglied seit
15. Mrz 2010
Beiträge
85
Punkte für Reaktionen
0
Punkte
0
hallo, wenn ich die Apache conf ändere, bewirke ich damit gar nichts. Ich schau mir mal noch mal ipkg genauer an. Mussten die anderen alle wirklich nix einstellen?
 

QTip

Super-Moderator
Teammitglied
Mitglied seit
04. Sep 2008
Beiträge
2.341
Punkte für Reaktionen
14
Punkte
84
dann versuche es so wie in diesem Post von mir geschrieben.
 

Flitzer

Benutzer
Mitglied seit
06. Dez 2007
Beiträge
48
Punkte für Reaktionen
0
Punkte
0
hallo zusammen,

habe ein ähnliches Problem und wollte kein extra Beitrag dazu eröffnen.

Ich hab Squid sowie Squidguard laufen, (proxy)
nun möchte ich den redirect auf eine CGI verlinken.

Proxy und Webserver laufen auf der DiskStation

Die Anpassungen von User FRoemer habe ich in der httpd.conf-user gemacht
Das Verzeichnis ist angelegt (/usr/syno/apache/cgi-bin/)

auch die .htaccess hab ich im cgi-bin ordner erstellt

die CGI Datei hab ich im cgi-bin ordner kopiert und in den webordner, bin mir leider unsicher wohin :)


in der cgi datei steht #!/usr/bin/perl da ich kein weiteres Perl installiert hab...


was mache ich falsch???

.html Dateien funktionieren, nur nicht der aufruf

http://ip/datei.cgi

Hoffe ihr könnt mir helfen
 

QTip

Super-Moderator
Teammitglied
Mitglied seit
04. Sep 2008
Beiträge
2.341
Punkte für Reaktionen
14
Punkte
84
.htaccess in /volume1/web/ip/cgi-bin/
cgi Datei in /volume1/web/ip/cgi-bin/, chmod 755
Aufruf sollte dann mit http://ip/cgi-bin/datei.cgi funktionieren.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
@QTip
Sorry, dass ich das einfach an diesen Thread anhänge, aber weisst du zufällig was bei mir falsch läuft, dass ich mit perl -e shell -MCPAN bei jedem beliebigen Modul folgenden Fehler kriege?
Code:
make: powerpc-linux-gnuspe-ld: Command not found
make: *** [blib/arch/auto/HTML/Parser/Parser.so] Error 127
  /opt/bin/make  -- NOT OK
Running make test
  Can't test without successful make
Running make install
  make had returned bad status, install seems impossible
bis auf gpg habe ich alle nötigen Programme für perl shell installiert und die wurden beim Einrichten auch erkannt. make habe ich via devtools von ipkg installiert

Danke für jeden Tipp + Gruss

tobi
 

DEDEX7200Pro

Benutzer
Mitglied seit
15. Mrz 2010
Beiträge
85
Punkte für Reaktionen
0
Punkte
0
hallo, ich habe die Syno mal komplett platt gemacht und jetzt gehen cgi-Files nicht und pl-Files werden als Text wiedergegeben, obwohl die Rechte gesetzt worden sind und der Perlpfad stimmt (#!/usr/bin/perl)
 
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