WIe richte ich Perl (cgi-bin) support for users on Debian

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
exorcist
Beiträge: 11
Registriert: 15.04.2006 16:15:37
Wohnort: Slowenien

WIe richte ich Perl (cgi-bin) support for users on Debian

Beitrag von exorcist » 16.04.2006 17:57:36

Hallo

Ich habe mir auf Feather Linux (Debina) apache 2.0,php 5, mysql, pure-ftpd un postfix installiert. Nun wolte ich auch Perl support fur web-hosting user haben, mit cgi-bin alias, so etwas:

/home/$user/cgi-bin


Sorry, ich bin neu auf linux, ich wolte disem OS nutzen nur als web-server, weill ich das gemerkt habe, dass Windows nicht fur diese sachen geschafen ist was es security angeht...

Danke
:P

Brauch ich auch ActivePerl, so wie auf Windows? Gibt es packages ActivePerl.deb?

randall
Beiträge: 82
Registriert: 24.11.2005 21:36:28

Beitrag von randall » 16.04.2006 23:33:03

Mir ist nicht ganz klar, was Du damit meinst ...

Du hast ein paar Perl scripte, und Du willst, dass Dein Apache die ausführen kann, oder sehe wie ist das gemeint ?

mfg, randall

exorcist
Beiträge: 11
Registriert: 15.04.2006 16:15:37
Wohnort: Slowenien

Beitrag von exorcist » 16.04.2006 23:55:16

randall hat geschrieben:Mir ist nicht ganz klar, was Du damit meinst ...

Du hast ein paar Perl scripte, und Du willst, dass Dein Apache die ausführen kann, oder sehe wie ist das gemeint ?

mfg, randall
Ich mochte web-hosting erichten fur ein paar meine Freunde auf meinem server . Und ich will ,das si auch perl (cgi-bin) unterstuzung fur ihr web-space haben neben PHP.

So etwas:

http://mein_freund1.meine-domene.com/cgi-bin/
http://mein_freund2.meine-domene.com/cgi-bin/
http://mein_freund3.meine-domene.com/cgi-bin/

?

Ich habe versucht mit httpd.conf editieren, so:
ScriptAlias /cgi-bin/ /home/mein_freund1/cgi-bin/

ToPeG
Beiträge: 437
Registriert: 14.04.2004 00:42:06

Beitrag von ToPeG » 17.04.2006 12:51:21

Vorab ein paar fragen.

Welchen Apache hast du installiert?
Soll en ihre Seiten in ihren jeweiligen Homeverzeichnissen gehostet werden?
Wie sieht deine httpd.conf bzw. sites-enabled/* denn aus?

Ansich ist es nicht schwehr ehrere cgi-bin Verzeichnisse an zu legen. Aber neben dem Link muß man auch dem Apache auch erlauben die Scripte aus zu führen.

exorcist
Beiträge: 11
Registriert: 15.04.2006 16:15:37
Wohnort: Slowenien

Beitrag von exorcist » 17.04.2006 15:40:39

Welchen Apache hast du installiert?
apache2
Soll en ihre Seiten in ihren jeweiligen Homeverzeichnissen gehostet werden?
Es wahre gut, aber im ganzen ist mir egal, kann auch wo andres das verzeichnes liegen.
Wie sieht deine httpd.conf bzw. sites-enabled/* denn aus?
Die httpd.conf ist bei default lehr. Und die sitea-enabled:



<VirtualHost *>
ServerName meineseite.com
ServerAlias meineseite.com
DocumentRoot /home/meineseite/
</VirtualHost>

und die subdomains

<VirtualHost *>
ServerName user1.meineseite.com
ServerAlias user1.meineseite.com
DocumentRoot /home/user1/
</VirtualHost>

ToPeG
Beiträge: 437
Registriert: 14.04.2004 00:42:06

Beitrag von ToPeG » 17.04.2006 21:13:27

Allso so würde ich das machen.
Hier für "user1":

Code: Alles auswählen

ServerName user1.meineseite.com
ServerAlias user1.meineseite.com
<VirtualHost user1.meineseite.com>
        ServerAdmin webmaster@meineseite.com

        DocumentRoot /home/user1/htdocs/
        <Directory />
                AllowOverride None
                deny from all
        </Directory>
        <Directory /home/user1/htdocs/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /home/user1/cgi-bin/
        <Directory "/home/user1/cgi-bin">
                AllowOverride None
                Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog /home/user1/log/apache.error.log
        LogLevel warn

        CustomLog /home/user1/log/apache.access.log combined
        ServerSignature On

        Alias /icons/ "/usr/share/apache2/icons/"
        <Directory "/usr/share/apache2/icons">
            Options Indexes MultiViews
            AllowOverride None
            Order allow,deny
            Allow from all
        </Directory>

</VirtualHost>
Natürlich müssen die Verzeichnisse "log", "htdocs" und "cgi-bin" vorhanden sein.

exorcist
Beiträge: 11
Registriert: 15.04.2006 16:15:37
Wohnort: Slowenien

Beitrag von exorcist » 18.04.2006 00:56:19

Danke, ToPeG, hab ich das gemacht, aber leider kriege ich dies bei aufrufen von http://user1.meineseite.com/cgi-bin/test.pl:
You don't have permission to access /cgi-bin/test.pl on this server,
Es ist egal welche datei sich im CGI-BIN befindet (auch CHMOD hilft nicht), jedes mal kriege ich permission denied....

ToPeG
Beiträge: 437
Registriert: 14.04.2004 00:42:06

Beitrag von ToPeG » 18.04.2006 01:48:57

Was sagen die LogDateien in /home/user1/log dazu? (sofern der "www-data" darein schreiben darf.) Wenn die Verzeichnisse für apache nicht lesbar sind, kann auch nichts ausgeführt werden. Sowas wie "chmod 0755" für "cgi-bin" und "htdocs" sollte sein.
"log" sollte besser www-data gehören und ebenfalls auf 0755 gesetzt sein.
Entschuldige wenn ich dir was erzähle was du schon versucht hast, das wird nicht so ganz klar.

Eventuell könnte auch das das Problem sein.

Code: Alles auswählen

<Directory />
                AllowOverride None
                deny from all
        </Directory>
Nimm mal das "deny from all" raus

Kannst du normale Dateien anzeigen lassen? Hast du mal testweise eine "index.html" in "htdocs" abgelegt und sie über "http://user1.meineseite.com/" aufgerufen?

Weiterhin scheine ich etwas mit der "virtualhost" Geschichte durcheinander geworfen haben. Wenn ich der Doku glauben darf sollte es so aussehen:

Code: Alles auswählen

<VirtualHost *>
           ServerName user1.meineseite.com
...
</VirtualHost>
(Ich mappe die meine hosts über Ports, IPs und 'nem Router, daher sieht das bei mir alles etwas anders aus.)

Das "ServerAlias" wird wohl nur gebraucht wenn man mehrere Namen mit dem "VirtualHost" verknüpfen will.

exorcist
Beiträge: 11
Registriert: 15.04.2006 16:15:37
Wohnort: Slowenien

Beitrag von exorcist » 18.04.2006 23:08:55

Jetzt geht es. Habe eine Losung von apache tutorials gefunden...

Aber habe noch ein problem, wenn ich zumbeispiel tippe:

http://www.meinedomain.com/cgi-bin/test.pl

wirt die test.pl normal proccessiert

ABER

wenn ich tippe http:// ohne www, z.B.:

http://meinedomain.com/cgi-bin/test.pl

wird die datei test.pl heruntergeladen, wass ein sehr grosses sicherheit Risiko sein kann..

ToPeG
Beiträge: 437
Registriert: 14.04.2004 00:42:06

Beitrag von ToPeG » 19.04.2006 00:45:59

Ich würde mal vermuten, daß "http://www.meinedomain.com/" einen anderen Virtualhost anspricht, als "http://meinedomain.com/". Dadurch käme es zu den Problemen. Hast du ein "ServerAlias" im zutreffenden Virtualhost angelegt?
Mich würde auch interessieren wie nun deine Config aussieht. Immerhin hat mein Vorschag ja nicht funktioniert. :-(

exorcist
Beiträge: 11
Registriert: 15.04.2006 16:15:37
Wohnort: Slowenien

Beitrag von exorcist » 19.04.2006 11:01:47

ToPeG hat geschrieben:Ich würde mal vermuten, daß "http://www.meinedomain.com/" einen anderen Virtualhost anspricht, als "http://meinedomain.com/". Dadurch käme es zu den Problemen. Hast du ein "ServerAlias" im zutreffenden Virtualhost angelegt?
Mich würde auch interessieren wie nun deine Config aussieht. Immerhin hat mein Vorschag ja nicht funktioniert. :-(
sites-availible:

Code: Alles auswählen

<VirtualHost *>
ServerName www.meinedomain.com
ServerAlias meinedomain.com
DocumentRoot /home/meinedomain/htdocs
</VirtualHost>
httpd.conf:

Code: Alles auswählen

<Directory /home/*/htdocs/cgi-bin>
Options ExecCGI
SetHandler cgi-script 
</Directory>

exorcist
Beiträge: 11
Registriert: 15.04.2006 16:15:37
Wohnort: Slowenien

Beitrag von exorcist » 20.04.2006 00:52:27

ToPeG, danke fur deine hilfe, jetz geht alles. Der problem wurde gelost. Dein skript ist in ortnung ich habe im nur am fasches ort/datei eingebunden. Die datei httpd.conf mus lehr sein, dessen habe ich editiert sites-availible und es klappte.

:P

Antworten