Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

und Apache2 ?!

Diskussion: und Apache2 ?! im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige ööh joa, Ich schlag mich grad mit meinem Apachen und Perl herum... Ich hab versuch mod_perl auf dem Server ...

Antwort
Alt 30.07.07, 00:39   #1 (permalink)
 
Registriert seit: 06.01.07
keksinat0r Leistung: Facit NTK
Likes: 0
Standard und Apache2 ?!

Anzeige

ööh joa,

Ich schlag mich grad mit meinem Apachen und Perl herum...
Ich hab versuch mod_perl auf dem Server zum laufen zu kriegen,
aber es will ums verrecken net funktionieren:

meldung   
Code:
Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@fumuga.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

in der Logfile steht dass das Script ein unerwartetes Ende hätte.
Logfile   
Code:
[Mon Jul 30 00:24:25 2007] [notice] Apache/2.0.55 (Ubuntu) PHP/5.1.2 mod_ssl/2.0.55 OpenSSL/0.9.8a mod_perl/2.0.2 Perl/v5.8.7 configured -- resuming normal operations
Code:
[Mon Jul 30 00:24:26 2007] [warn] Cannot get media type from 'cgi-script'
[Mon Jul 30 00:24:26 2007] [error] [client 89.55.23.37] Premature end of script headers: test.pl, referer: http://domain.tld/
[Mon Jul 30 00:24:26 2007] [error] [client 89.55.23.37] File does not exist: /.../favicon.ico, referer: http://domain.tld/test.pl


In der Config hab ich folgende zusätzliche Einträge gemacht:
Config   
Code:
AddType cgi-script .pl .cgi
AddHandler cgi-script .cgi .pl
Code:
Options ALL +ExecCGI


Das Modul wird geladen mit:
load-befhel   
Code:
LoadModule perl_module /usr/lib/apache2/modules/mod_perl.so



Kann mir jemand sagen warum mein Script
script.pl   
Code:
#!/usr/bin/perl -w
use strict;
use CGI;

print "hallo";

immer den 500er erzeugt?
Was mach ich falsch, oder besser, Wie mache ich es richtig? ^^


Serverdaten   
  • Apache 2.0.55
  • Perl 5.8.7
  • Ubuntu 6.06



MFG - Keks
keksinat0r ist offline   Mit Zitat antworten
Alt 30.07.07, 00:48   #2 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcore
Likes: 443
Standard

Für den AddHandler cgi-script muß auch das CGI-Modul geladen sein. Das 'premature end of script header' kommt allerdings oft daher, daß das Skript für den Apache nicht lese- oder ausführbar ist. Ansonsten poste mal bitte die komplett Apache-Konfiguration. Aus Sicherheitsgründen solltest du ExecCGI auch nur für deinen Skript-Ordner und auf keinen Fall global setzen und dann mit ScriptAlias im entsprechenden VHost bekannt geben, wo sich der Skript-Ordner befindet. Idealerweise sollte der außerhalb des DocumentRoot liegen.
__________________
Mein Blog - Mein Job - Diaspora

Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund.

Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+
bitmuncher ist gerade online   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 30.07.07, 01:12   #3 (permalink)
Themenstarter
 
Registriert seit: 06.01.07
keksinat0r Leistung: Facit NTK
Likes: 0
Standard

Hey danke schonmal

Die (zensierte ) Serverconfig sieht folgendermaßen aus:
apache.conf   
Code:
ServerRoot "/etc/apache2"


LockFile /var/lock/apache2/accept.lock
PidFile /var/run/apache2.pid


Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15


# prefork MPM
# StartServers ......... number of server processes to start
# MinSpareServers ...... minimum number of server processes which are kept spare
# MaxSpareServers ...... maximum number of server processes which are kept spare
# MaxClients ........... maximum number of server processes allowed to start
# MaxRequestsPerChild .. maximum number of requests a server process serves
<IfModule prefork.c>
    StartServers         5
    MinSpareServers      5
    MaxSpareServers     10
    MaxClients          20
    MaxRequestsPerChild  0
</IfModule>
<IfModule worker.c>
    StartServers         2
    MaxClients         150
    MinSpareThreads     25
    MaxSpareThreads     75
    ThreadsPerChild     25
    MaxRequestsPerChild  0
</IfModule>
<IfModule perchild.c>
    NumServers           5
    StartThreads         5
    MinSpareThreads      5
    MaxSpareThreads     10
    MaxThreadsPerChild  20
    MaxRequestsPerChild  0
    AcceptMutex fcntl
</IfModule>

User www-user
Group www-group


ErrorLog /var/log/apache2/error.log

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent


Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf

<IfModule ssl_module>
   SSLRandomSeed startup builtin
   SSLRandomSeed connect builtin
   SSLSessionCache dbm:/usr/local/apache2/logs/ssl_scache
</IfModule>

Include /etc/apache2/httpd.conf
Include /etc/apache2/ports.conf
Include /etc/apache2/conf.d/[^.#]*


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


<IfModule mod_negotiation.c>
<IfModule mod_include.c>
    Alias /error/ "/usr/share/apache2/error/"

    <Directory "/usr/share/apache2/error">
        AllowOverride None
        Options IncludesNoExec
        AddOutputFilter Includes html
        AddHandler type-map var
        Order allow,deny
        Allow from all
        LanguagePriority en es de fr
        ForceLanguagePriority Prefer Fallback
    </Directory>

    ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
    ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
    ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
    ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
    ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
    ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
    ErrorDocument 410 /error/HTTP_GONE.html.var
    ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
    ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
    ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
    ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
    ErrorDocument 415 /error/HTTP_SERVICE_UNAVAILABLE.html.var
    ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
    ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
    ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
    ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
    ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var

</IfModule>
</IfModule>

DirectoryIndex index.htm index.html index.xhtml index.php index.pl index.cgi index.txt


AccessFileName .htaccess
<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
</Files>


UseCanonicalName Off
HostnameLookups Off


TypesConfig /etc/mime.types
DefaultType text/plain


IndexOptions FancyIndexing VersionSort

AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*


AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^

AddIcon /icons/dirsymlink.jpg ^^SYMDIR^^
AddIcon /icons/symlink.jpg ^^SYMLINK^^

DefaultIcon /icons/unknown.gif


ReadmeName README.html
HeaderName HEADER.html


IndexIgnore .??* *~ *# HEADER* RCS CVS *,t

AddEncoding x-compress Z
AddEncoding x-gzip gz tgz

AddLanguage da .dk
AddLanguage nl .nl
AddLanguage en .en
AddLanguage et .et
AddLanguage fr .fr
AddLanguage de .de
AddLanguage el .el
AddLanguage it .it
AddLanguage ja .ja
AddLanguage pl .po
AddLanguage ko .ko
AddLanguage pt .pt
AddLanguage no .no
AddLanguage pt-br .pt-br
AddLanguage ltz .ltz
AddLanguage ca .ca
AddLanguage es .es
AddLanguage sv .se
AddLanguage cz .cz
AddLanguage ru .ru
AddLanguage tw .tw
AddLanguage zh-tw .tw

LanguagePriority de en fr da nl et el it ja ko no pl pt pt-br ltz ca es sv tw


AddDefaultCharset       ISO-8859-1

AddCharset ISO-8859-1  .iso8859-1  .latin1
AddCharset ISO-8859-2  .iso8859-2  .latin2 .cen
AddCharset ISO-8859-3  .iso8859-3  .latin3
AddCharset ISO-8859-4  .iso8859-4  .latin4
AddCharset ISO-8859-5  .iso8859-5  .latin5 .cyr .iso-ru
AddCharset ISO-8859-6  .iso8859-6  .latin6 .arb
AddCharset ISO-8859-7  .iso8859-7  .latin7 .grk
AddCharset ISO-8859-8  .iso8859-8  .latin8 .heb
AddCharset ISO-8859-9  .iso8859-9  .latin9 .trk
AddCharset ISO-2022-JP .iso2022-jp .jis
AddCharset ISO-2022-KR .iso2022-kr .kis
AddCharset ISO-2022-CN .iso2022-cn .cis
AddCharset Big5        .Big5       .big5

AddCharset WINDOWS-1251 .cp-1251   .win-1251
AddCharset CP866       .cp866
AddCharset KOI8-r      .koi8-r .koi8-ru
AddCharset KOI8-ru     .koi8-uk .ua
AddCharset ISO-10646-UCS-2 .ucs2
AddCharset ISO-10646-UCS-4 .ucs4
AddCharset UTF-8       .utf8
AddCharset GB2312      .gb2312 .gb
AddCharset utf-7       .utf7
AddCharset utf-8       .utf8
AddCharset big5        .big5 .b5
AddCharset EUC-TW      .euc-tw
AddCharset EUC-JP      .euc-jp
AddCharset EUC-KR      .euc-kr
AddCharset shift_jis   .sjis

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
AddType application/x-tar .tgz
AddType cgi-script .pl .cgi

AddHandler cgi-script .cgi .pl

<FilesMatch "\.shtml(\..+)?$">
    SetOutputFilter INCLUDES
</FilesMatch>

#AddHandler imap-file map

BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0


BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^gnome-vfs" redirect-carefully
BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully


NameVirtualHost domain.tld:80
<VirtualHost domain.tld:80>
   ServerName domain.tld
   ServerAlias www.domain.tld
   ServerAdmin webmaster@domain.tld

   DocumentRoot /.../web
   <Directory "/.../web">
      Options       NONE
      AllowOverride ALL
      Order         ALLOW,DENY
      Allow from all
   </Directory>

   CustomLog /.../res/logfiles/apache2_access.log combined
   ErrorLog  /.../res/logfiles/apache2_error.log
   LogLevel warn

   php_admin_value open_basedir      ".../:/usr/share/"
   php_admin_value upload_tmp_dir    "/.../res/upload_tmp"
   php_admin_value session.save_path ".../res/sessions/"
   php_admin_value error_log         "/.../res/logfiles/php_error.log"
</VirtualHost>

Include /etc/apache2/vhosts/*.cfg

<VirtualHost domain.tld:80>
   ServerName domain.tld
   ServerAlias sub.domain.tld
   ServerAlias www.sub.domain.tld
   ServerAdmin webmaster@domain.tld

   DocumentRoot /.../
   <Directory "/.../">
      Options       ALL +ExecCGI
      AllowOverride ALL
      Order         ALLOW,DENY
      Allow from all
   </Directory>

</VirtualHost>


Module werden sowohl CGI alsauch Perl geladen:
module   
Code:
LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so
LoadModule perl_module /usr/lib/apache2/modules/mod_perl.so
keksinat0r ist offline   Mit Zitat antworten
Alt 30.07.07, 01:44   #4 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcore
Likes: 443
Standard

Stimmen denn die Rechte des Skripts und hat es eine Newline am Ende? Außerdem kannst du das 'AddType cgi-script .pl .cgi' getrost rausnehmen. Der AddHandler-Eintrag reicht da im Normalfall völlig aus. Im Normalfall sollten die notwendigen Einträge ja auch korrekt gemacht werden, wenn du das Modul wie unter Debian/Ubuntu üblich mit a2enmod aktivierst. Außerdem solltest du dich entscheiden, ob du das Perl-Modul oder das CGI-Modul nutzen willst. Beide zusammen können meiner Erfahrung nach zu seltsamen Fehlern führen. Und das wichtigste... deinem Skript fehlt die wichtigste Zeile:

Code:
print "Content-type: text/plain", "\n\n";
Das muß als erste Zeile immer ausgegeben werden, damit der Browser mit dem Output des Skripts was anfangen kann. Sonst bekommst du nämlich auch diesen 500er-Fehler.
__________________
Mein Blog - Mein Job - Diaspora

Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund.

Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+
bitmuncher ist gerade online   Mit Zitat antworten
Alt 30.07.07, 01:49   #5 (permalink)
Themenstarter
 
Registriert seit: 06.01.07
keksinat0r Leistung: Facit NTK
Likes: 0
Standard

aaah, der content-type wars

öhm, was würdest du empfehlen? Perl oder CGI?
Ich möchte eigentlich schon gerne richtige Perlscripte schreiben...
Kann ich dann das CGI-Modul trotzdem ganz normal benutzen wenn ich das CGI-Modul im Apachen deaktiviere?
keksinat0r ist offline   Mit Zitat antworten
Alt 30.07.07, 02:14   #6 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcore
Likes: 443
Standard

Ich empfehle die Nutzung des mod-cgi, solange du nicht direkt den Apache mit deinen Skripten steuern willst. Es ist einfach sicherer, da leichter konfigurierbar, wodurch sich weniger Fehler einschleichen können. Wobei ich gerade sehe, daß mod_perl ohne mod_cgi garnicht mehr funktioniert. ?(
__________________
Mein Blog - Mein Job - Diaspora

Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund.

Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+
bitmuncher ist gerade online   Mit Zitat antworten
Alt 30.07.07, 02:27   #7 (permalink)
Themenstarter
 
Registriert seit: 06.01.07
keksinat0r Leistung: Facit NTK
Likes: 0
Standard

hmmm...

In Sachen Sicherheit ist das net soooo tramatisch, da es nur ein Webinterface wird,
zu dessen Code selbst auch nur ich und mein Kollege (look@she - auch hier im board unterwegs) Zugang haben werden.

Übrgebene Daten werden sowieso nicht direkt verarbeitet, sondern mit diversen Prüfungen entsprechend behandelt.
( warum kann es in Perl denn verdammtnochmal kein Case geben... *grml* ^^ )

Es hat auch nur ein V-Host ( der nur für das Webinterface zuständig ist ) die Berechtigung CGI-Scripte auszuführen, weshalb ich mir in Sachen Sicherheit da weniger Sorgen mache

Ich werd mal bissel ausprobieren ob das was ich machen will auch mit mod_cgi allein funktioniert.

Danke dir
keksinat0r ist offline   Mit Zitat antworten
Alt 30.07.07, 02:37   #8 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcore
Likes: 443
Standard

Zitat:
Original von keksinat0r
( warum kann es in Perl denn verdammtnochmal kein Case geben... *grml* ^^ )
Gibt es:

Code:
use Switch;

switch ($val) {

case 1          { print "number 1" }
case "a"        { print "string a" }
case [1..10,42] { print "number in list" }
case (@array)   { print "number in list" }
case /\w+/      { print "pattern" }
case qr/\w+/    { print "pattern" }
case (%hash)    { print "entry in hash" }
case (\%hash)   { print "entry in hash" }
case (\&sub)    { print "arg to subroutine" }
else            { print "previous case not true" }
}
__________________
Mein Blog - Mein Job - Diaspora

Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund.

Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+
bitmuncher ist gerade online   Mit Zitat antworten
Alt 30.07.07, 02:42   #9 (permalink)
Themenstarter
 
Registriert seit: 06.01.07
keksinat0r Leistung: Facit NTK
Likes: 0
Standard

ich hab mich "tot-gegooglet" nach einer Case-Funktion,
aber immer nur die "selbstgebastelten" Lösungen mit Label und last gefunden...

Nochma Danke - du hast mir grad viel Tipparbeit erspart (elsif ist ja so nervig... ^^)
keksinat0r ist offline   Mit Zitat antworten
Alt 30.07.07, 03:12   #10 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcore
Likes: 443
Standard

Bei Perl am besten immer auf cpan.org suchen. Weiterführende Doku zum Switch-Modul findest du übrigens unter http://kobesearch.cpan.org/htdocs/perl/Switch.html bzw. http://search.cpan.org/~RGARCIA/Switch/Switch.pm
__________________
Mein Blog - Mein Job - Diaspora

Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund.

Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+
bitmuncher ist gerade online   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » und Apache2 ?!
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Apache2 und Xinetd Serow Linux/UNIX 4 31.03.08 23:02
apache2 und ssl keksinat0r Webmaster-Security 3 08.08.07 19:17
Apache2 und SQL keksinat0r Linux/UNIX 2 29.05.07 20:55
apache2 download? gelöscht Linux/UNIX 5 06.01.06 10:25
mail() im Apache2 und PHP 4 ? mido (Web-) Design und webbasierte Sprachen 4 05.08.02 12:52


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61