1, 传统CGI:
vim /var/www/cgi-bin/hello.py[python] view plaincopy
- #!/usr/bin/python
- # -*- coding: utf-8 -*-
- print ”Content-type: text/html\n”
- print ”Hello World”
chmod a+x hello.py
vim /etc/httpd/conf/httpd.conf
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
2, Mod_Python (http://www.modpython.org/)
wget http://archive.apache.org/dist/httpd/modpython/mod_python-3.3.1.tgz
./configure –with-apxs=/data/apache2221/bin/apxs –with-python=/usr/bin/python
make
make install
vim /etc/httpd/conf.d/python.conf
LoadModule python_module modules/mod_python.so
<Directory /var/www/mod-python>
AddHandler mod_python .py
# mod_python.publisher
PythonHandler mod_python.publisher
PythonDebug On
</Directory>
vim /var/www/mod-python/mod_python_publisher.py[python] view plaincopy
- #!/usr/bin/python
- # -*- coding: utf-8 -*-
- from mod_python import apache
- def index(req):
- req.log_error(‘handler’)
- req.content_type = ’text/html’
- req.send_http_header()
- req.write(‘<html><head><title>Testing mod_python</title></head><body>’)
- req.write(‘Hello World! – mod_python.publisher’)
- req.write(‘</body></html>’)
<Directory /var/www/mod-python>
AddHandler mod_python .py
# custom handler
PythonHandler mod_python_handler
PythonDebug On
</Directory>
vim /var/www/mod-python/mod_python_handler.py[python] view plaincopy
- #!/usr/bin/python
- # -*- coding: utf-8 -*-
- from mod_python import apache
- def handler(req):
- req.log_error(‘handler’)
- req.content_type = ’text/html’
- req.send_http_header()
- req.write(‘<html><head><title>Testing mod_python</title></head><body>’)
- req.write(‘Hello World! – custom handler’)
- req.write(‘</body></html>’)
- return apache.OK
3, Mod_wsgi (http://code.google.com/p/modwsgi/)
wget http://modwsgi.googlecode.com/files/mod_wsgi-3.3.tar.gz
./configure –with-apxs=/data/apache2221/bin/apxs –with-python=/usr/bin/python
make
make install
vim /data/apache2221/conf/httpd.conf
LoadModule wsgi_module modules/mod_wsgi.so
WSGIScriptAlias /wsgi/ /var/www/wsgi/
<Directory “/var/www/wsgi”>
Order allow,deny
Allow from all
</Directory>
vim /var/www/wsgi/hello.py[python] view plaincopy
- #!/usr/bin/python
- # -*- coding: utf-8 -*-
- def application(environ, start_response):
- status = ’200 OK’
- content_type = ’text/html’
- output = [‘Hello World’]
- response_headers = [(‘Content-type’, content_type)]
- start_response(status, response_headers)
- return output