[Johan]Medlem sedan maj 200111 inlägg Addhandler cgi-script cgi pl
<Directory "/home/*/public_html/cgi-bin/">
Options +ExecCGI
</Directory>
Så här ser det ut i min httpd.conf.
När jag försöker köra exempel script från apaches sida så blir det internal server error kör scripten i från skalet så funkar det alldeles utmärkt. Vad kan tänkas vara fel??
FlashXMedlem sedan nov. 19991 033 inlägg Addhandler har inte direkt med cgi-bin-mappen att göra, utan anger vilka filändelser som ska exekveras som skript.
I cgi-bin-mappen kommer filerna automatiskt att exekveras.
Testa med
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch ExecCGI
</Directory>
och se om det gör någon skillnad.
[Johan]Medlem sedan maj 200111 inlägg Det funkade tyvärr inte..
Nu skriver den bara ut källkoden på skärmen och det vill vi ju inte..
/Johan
FlashXMedlem sedan nov. 19991 033 inlägg Om koden skrivs ut så innebär det att cgi-bin-mappen du använder inte är "rätt" mapp att exekvera i.
Har du flera olika användare som ska använda servern?
Annars kan du först testa att få igång default-mappen för cgi-skripten.
Sök reda på raden ScriptAlias /cgi-bin/ och se till att den innehåller sökvägen till den mapp du vill exekvera filerna i.
T.ex ScriptAlias /cgi-bin/ "/www/cgi-bin/"
Strax nedanför så ska samma sökväg finnas i raden
<Directory "/www/cgi-bin">
Vill du att cgi-filer ska kunna exekveras oavsett var man lägger dom, så anger du detta i raden
AddHandler cgi-script .cgi
Någonstans angav du din dokumentrot (exempelvis DocumentRoot "/www/html") och nedanför finns den även angiven i <Directory "/www/html">
Före sluttaggen </Directory> lägger du till ExecCGI i raden Options.
T.ex Options Indexes FollowSymLinks MultiViews ExecCGI
[Johan]Medlem sedan maj 200111 inlägg Saken är ju den att det är tänk att användare ska kunna ha cgi-script i katalogen /home/*username*/public_html/cgi-bin/
Det är det som är grejen.. cgi-script fungerar alldeles utmärkt i root cgi som ligger i /var/www/cgi-bin/
FlashXMedlem sedan nov. 19991 033 inlägg Får summera lite nu :)
Att du fick ett internal error berodde antagligen på att du hade Addhandler cgi-script .cgi men att något annat inte stämde. När du tog bort Addhandler cgi-script cgi så visas koden.
Då bör det vara så att du inte angivit något alias för den cgi-bin-mapp du försökte exekvera skriptet i.
Eftersom du vill att varje användare ska använda en egen cgi-bin-mapp och hålla sig till den, så bör du inte använda funktionen Addhandler.
Nu har jag knaper erfarenhet av flera användares cgi-bin-mappar men det verkar rimligt att var och en deklareras i en ScriptAlias.
Syntaxen är:
ScriptAlias [/alias/] [fullständig sökväg/]
Exempelvis ScriptAlias /cgi-bin/ "/home/username/public_html/cgi-bin/"
[Redigerat av FlashX den 04 maj 2001]
FlashXMedlem sedan nov. 19991 033 inlägg Istället för att ange ett ScriptAlias för varje användare så kan man kanske använda sig av ScriptAliasMatch.
ScriptAliasMatch ~([a-z]+)/cgi-bin(.*)/home$1/public_html/cgi-bin/$2
Mer om ScriptAliasMatch hittar du här
En annan metod som jag inte testat är
<DirectoryMatch "/home/[a-z]+/public_html/cgi-bin">
Options ExecCGI
AddHandler cgi-script .cgi .pl
</directoryMatch>
Detta exemplet ska ge användarna rätt att exekvera filer med ändelsen .cgi och .pl i sin cgi-bin-mapp.
Observera att användarnamnen i båda exemplen måste vara i gemener och inga siffror. I annat fall får man ange det i villkoret.
(sökvägarna får du såklart ändra efter din server)
[Redigerat av FlashX den 04 maj 2001]
[Johan]Medlem sedan maj 200111 inlägg Jag har nu testat ett antal varianter av det du har tipsat om här och av andra ställen på internet. Och börjar misstänka att det är något annat som är fel. Har du nån aning om var man kan börja leta efter fel??
FlashXMedlem sedan nov. 19991 033 inlägg Det var trist.
Skickar du mig din httpd.conf så blir det dock betydligt enklare att analysera felet :)