[centos] perl / apache / awstats probleem

Pagina: 1
Acties:

  • Pin0
  • Registratie: November 2002
  • Niet online
Ik ben bezig met het opzetten van een dedicated webserver. het os is centos 4 een daarop geinstalleerd apache (httpd), php, mysql etc...

Het probleem begon toe ik awstats probeerde te installeren. Awstats maakt gebruik van perl om de logfiles uit te lezen en een overzicht te genereren.

Allereerst maar eens perl testen in de dir waar ook awstats moet komen:
perl /usr/local/awstats/wwwroot/cgi-bin/hello.pl
Dit werkt en geeft keurig de gewenste output, perl is dus geinstalleerd.

Nu via de brouwser:
500 internal server error, hij vind de juiste file dus alias etc in httpd.conf staat dus goed er gaat nog alleen iets mis met de uitvoering via script.

apache error_log checken:
code:
1
2
[Mon Jun 13 11:34:13 2005] [error] [client 192.168.0.230] (13)Permission denied: exec of '/usr/local/awstats/wwwroot/cgi-bin/hello.pl' failed
[Mon Jun 13 11:34:13 2005] [error] [client 192.168.0.230] Premature end of script headers: hello.pl


aha zal wel iets met rechten te maken hebben
Kijken of de rechten goed staan: (NB in standaard cgi-bin dir van apache doet het script het wel)
code:
1
2
3
4
[root@localhost log]# ls -l /var/www/cgi-bin/hello.pl 
-rwxr-xr-x  1 apache apache 71 Jun 13 12:21 /var/www/cgi-bin/hello.pl
[root@localhost log]# ls -l /usr/local/awstats/wwwroot/cgi-bin/hello.pl
-rwxr-xr-x  1 apache apache 71 Jun  9 11:56 /usr/local/awstats/wwwroot/cgi-bin/hello.pl

Rechten staan dus precies gelijk, daar kan het dus niet aan liggen.

Dan maar even wat systeem logs bekijken: hé wat betekend dit?
foutmelding in /var/log/messages
code:
1
Jun 13 11:34:13 localhost kernel: audit(1118655253.508:0): avc:  denied  { execute } for  pid=3130 exe=/usr/sbin/httpd name=hello.pl dev=dm-0 ino=197914 scontext=root:system_r:httpd_t tcontext=root:object_r:usr_t tclass=file


test script:
code:
1
2
3
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "Hello\n\n";


Weet iemand wat er fout zit? en waar het nog meer aan zou kunnen liggen?

Mijn Lego Mocs - LEGO idea: The Motorcycle Garage


  • Arnout
  • Registratie: December 2000
  • Laatst online: 10-02 17:38
Je moet Apache nog wel vertellen dat hij CGI mag uitvoeren.

code:
1
2
3
        <Directory /usr/local/apache/htdocs/somedir>
                Options +ExecCGI
        </Directory>


http://httpd.apache.org/docs/howto/cgi.html

[ Voor 7% gewijzigd door Arnout op 13-06-2005 12:38 ]


  • Pin0
  • Registratie: November 2002
  • Niet online
Nee dat is het volgens mij niet:

Het testscript werkt in de standaard cgi-bin directory wel:
code:
1
2
3
4
5
6
7
8
9
10
11
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

# "/var/www/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.

<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

Voor de awstats directory (waar het statsscript dus niet werkt) heb ik het volgende:
code:
1
2
3
4
5
6
7
8
9
10
11
ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"

#
# This is to permit URL access to scripts/files in AWStats directory.
#
<Directory "/usr/local/awstats/wwwroot/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>


Wanneer ik die Options None in Options +ExecCGI verander, verandert er niets...

Mijn Lego Mocs - LEGO idea: The Motorcycle Garage


  • Pin0
  • Registratie: November 2002
  • Niet online
Ik ben inmiddels iets verder, het blijkt aan SELinux te liggen, wanneer ik die disable (in /etc/sysconfig/selinux SELINUX=disabled) dan werkt het wel.

Natuurlijk is dit niet wenselijk want het is nu minder veilig, zou het helpen om awstats in een andere directory te installeren, zelfde als apache of zo?

Mijn Lego Mocs - LEGO idea: The Motorcycle Garage


  • Pin0
  • Registratie: November 2002
  • Niet online
Kan iemand zijn licht laten schijnen over het feit dat ik nu SElinux heb uitgeschakeld.

Hoe wenselijk is dit?

Mooiste zou natuurlijk zijn een oplossing om awstats aan de gang te krijgen met SElinux enabled...

Mijn Lego Mocs - LEGO idea: The Motorcycle Garage


  • Zwerver
  • Registratie: Februari 2001
  • Niet online
Waarom zoek je niet uit waarom SELinux de boel disabled? Over SELinux is zo ontzettend veel te vinden dat je daar zelf wel uit moet komen toch? En doe ons dan een plezier en laat hier even weten wat je veranderd hebt ;) Dat is goed voor de knowledgebase ;)

Woonachtig Down Under. Ik negeer je insults niet, maar tegen de tijd dat ik ze lees zijn ze meestal niet relevant meer


  • Pin0
  • Registratie: November 2002
  • Niet online
Ja zeker hielp dat, dankzij die link weet ik nu hoe ik apache rechten kan geven op directories buiten de eigen directory.

Met het volgende commando heb ik het werkend weten te krijgen:

chcon -R -h -t httpd_sys_content_t awstats

Dit heb ik toegepast op alle mappen die het perl script aanroept als het script word benaderd door apache...

Bedankt voor de link!

Mijn Lego Mocs - LEGO idea: The Motorcycle Garage

Pagina: 1