Pfad zu Perl?

effect-energy

Registered User
Hallo,
....ich nerv mal wieder.

möchte mir ein Gästebuch anlegen - soll ins Script den Pfad zu Perl angeben - weiß den jemand bei einem vserver von s4y?
 
In den Scripts steht meistens by default:
#/usr/bin/perl
Das ist bei den meisten Linux System auch richtig. Auch im Falle des RH9 - VServers von Server4You (jedenfalls bei meinem).
Wenn du mal etwas im System suchst (zB eine Datei) dann versuchs per Shell mal mit "locate".
Anwendung:
locate <suchbegriff>
In dem Fall wäre es:
locate perl

Wenn du locate zum erstenmal benutzt solltest du zuerst:
locate -u
ausführen, das updatet die Such-Datenbank auf den aktuellsten Stand.
Bei SuSE Linux ist der Befehl allerdings 'updatedb", wird dort aber by default, per Crontab täglich ausgeführt => muss also in den meisten Fällen nicht benuzt werden.
 
hmm - wenn das schon passt - warum kann ich dan install.cgi nicht ausführen....
Oh man - irgendwie hab ich nur noch Fragen......
 
djrick said:
In den Scripts steht meistens by default:
#!/usr/bin/perl
Habe ich mir erlaubt zu patchen... ;)
Wenn du mal etwas im System suchst (zB eine Datei) dann versuchs per Shell mal mit "locate".
Righty. Findet allerdings so ca. 4-5 Seiten lang was, weil "perl" auch im Suchpfad vorkommen darf. Alternativ: wenn Du ausführbare Dateien suchst, probier mal "which":
Code:
which perl
Hth.
 
Um die Diskussion um 'wo finde ich ...' abzuschließen:
Ich nutze immer whereis. ('whereis perl')

Um mal wirklich auf Dein Problem zu kommen:
Erstens:
Es ist bei (Perl-)Scripts essentiell, daß sie am Unix-Format gespeichert sind.
Probleme bekommt man, wenn man z.B. Scripts per Windows-Editor bearbeitet oder sie per FTP als ASCII statt bin hochläd.
Im Putty ist die Umwandluch recht einfach:
Code:
dos2unix <script.cgi >script2.cgi

Zweitens:
Mußt Du darauf achten, daß Perl-Scripts Ausführungsrechte haben. Im Putty siehst Du es, wenn Du 'll /var/www/web1/html/*.cgi' machst an den 'dwrx-rx-rx' ganz links. Wenn dort keine 'x' stehen dann einfach herzaubern mit:
Code:
chmod 755 script2.cgi
Die meisten FTP oder auch WinSCP kann über 'Eigenschaften' der Datei ebenfalls dies einstellen lassen.

Drittens:
Evtl. mußt Du dem Apache noch beibringen, daß er Perl überall ausführen darf / soll. Dazu müssen in der httpd.conf folgende Einträge zu finden sein:
Code:
    AddHandler cgi-script .cgi
    AddHandler cgi-script .pl
<Directory "/var/www/web1/html/">
	Options +ExecCGI
</Directory>
Die 'Options +ExecCGI' ist sicherheitshalber normalerweise ausgeschaltet und man kann nur im '/cgi-bin'-Verzeichniss Perl ausführen lassen.

huschi.
 
@Huschi:
....also in der Beschreibung zum GB steht, das man die cgi´s im Asci übertragen soll (ich denke wegen den Zeilenumbrüchen) - das hab ich dann auch mal so gemacht...
Die cgi´s hab ich schon alle mit chmod auf 755 gesetzt - Ordner haben 777


Aber das dritte kann sein - muß ich das für jeden Kunden extra machen - unter web1 läuft das ja schon.....nur web2 will noch nicht ...
(.....aber ich krieg ihn schon noch.....alles eine Frage der Zeit..*g*)
 
also im Apache ist nix dergleichen zu finden - trotzdem funzt es auf der 1. Domain.......
Wenn ich im Putty '/var/www/web1/html/*.cgi' mache schreibt er no such file or Directory.

Der Pfad zu Perl ist /usr/bin/perl .
Hmmmmmmmm.......??
 
effect-energy said:
Wenn ich im Putty '/var/www/web1/html/*.cgi' mache schreibt er no such file or Directory.
Dann liegen die cgi scripte nicht im Verz. /var/www/web1/html
in welchem Verzeichniss hast du sie denn gespeichert?
 
effect-energy said:
unter web2 im cgi-bin/perlsoft - und das cgi-bin liegt doch im /var/www/
Denmach wäre der Befehl:
ll /var/www/web2/cgi-bin/perlsoft*.cgi'
bzw
ll /var/www/cgi-bin/*.cgi'
 
Back
Top