Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: [Opgelost]Apache2 python rookie vraag  (gelezen 1071 keer)

Offline MKe

  • Lid
[Opgelost]Apache2 python rookie vraag
« Gepost op: 2010/08/11, 16:04:17 »
Hoi,

Ik ben wat aan het spelen met de Apache2 webserver. Ik wil hierbij een simpel python scriptje laten uitvoeren. Ik heb het hele web al afgezocht, vind steeds weer andere aanwijzingen, maar niets werkt :( Nou ben ik echt een totale leek wat Apache2 betreft, dus misschien dat het daaraan ligt ;)
Ik begrijp dat ik deze python scripts als gewoon cgi zou kunnen uitvoeren of m.b.v. mod_python. Hoe configureer ik dat?

Ik wil  bijvoorbeeld /var/www/test/hallo.py uitvoeren (aan de client kant moet de URL dus 'http://server/test/hallo.py' zijn (link werkt voor jullie niet, is intern in mijn netwerk)).
Progje:
#!usr/bin/env python
print "Ook hallo"

Mijn poging: Ik heb mod_python geinstalleerd (zou niet hoeven volgens bronnen, maar ik zie ook niet hoe het anders moet)
sudo apt-get install libapache2-mod-python
in de httpd.conf:
<Directory /var/www/test>
    AddHandler mod_python .py
    PythonHandler mod_python.publisher
    PythonDebug On
</Directory>

Als ik dit doe dan krijg ik als foutmelding in de browser:
Not Found

The requested URL /hallo.py was not found on this server.

De file staat er wel degelijk, met executie rechten (chmod a+x hallo.py)??? Een html bestand in de map wordt wel gewoon weergegeven.
Mijn vragen dus: Hoe krijg ik dit voor elkaar, liefst zonder mod_python?

Ik gebruik Ubuntu 9.10 64 bits



« Laatst bewerkt op: 2010/08/11, 21:42:35 door MKe »
Mijn blokkendoos blog: http://mke21.wordpress.com/

Re: Apache2 python rookie vraag
« Reactie #1 Gepost op: 2010/08/11, 16:14:57 »
Er moet een header geprint worden vanuit het script.

Als ik mij nog goed herinner zou dit moeten werken:
#!/usr/bin/env python

print "Content-Type: text/html"
print # Er *moet* een lege regel na de header komen
print "Hello world!"

Zorg er ook zeker voor dat het script uitvoerbaar is.

Edit: Shebang line was verkeerd, heb het bovenstaande getest en het werkt.
« Laatst bewerkt op: 2010/08/11, 16:25:37 door Nunslaughter »

Offline Rachid

  • Lid
    • rachidbm
    • Mijn blog
Re: Apache2 python rookie vraag
« Reactie #2 Gepost op: 2010/08/11, 16:29:38 »
Heeft het bestand wel de juiste rechten? Doe eens: ls -l /var/www/
of ls -l /var/www/test/

Check of dat python bestand dezelfde rechten heeft als dat HTML bestand. Ik weet niet hoe het met python zit, maar met php kan het soms zijn dat de php bestanden van de groep www-data moeten zijn.

edit: Volgens mij heeft Nunslaughter het al opgelost ;)
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Offline MKe

  • Lid
Re: Apache2 python rookie vraag
« Reactie #3 Gepost op: 2010/08/11, 21:42:19 »
Klopt, bedankt! Die header had ik ook nog geprobeerd, maar wist niet van die witregel ertussen. Nu werkt het.