Introduction
This tutorial shows you how to easily publish your PyAMF applications with the Apache 2 webserver and mod_python. Mod_python is an Apache module that embeds the Python interpreter within the server. This was tested with Python 2.4.3 and Ubuntu 6.06.1 LTS.
This tutorial assumes you already installed the Apache webserver running (on 192.168.1.100). Flash applications will be able to access your PyAMF remoting gateway on http://192.168.1.100/flashservices/gateway.
Create a folder for your application:
mkdir /var/www/myApp
Grab the WSGI gateway for mod_python and put it in your application folder:
wget http://www.aminus.net/browser/modpython_gateway.py?format=raw
mv modpython_gateway.py?format=raw /var/www/myApp/wsgi.py
Create a startup file for your application in /var/www/myApp/startup.py:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | from pyamf.remoting.gateway.wsgi import WSGIGateway
import logging
logging.basicConfig(
level=logging.DEBUG,
format='%(asctime)s %(levelname)-5.5s [%(name)s] %(message)s'
)
def echo(data):
return data
services = {
'echo': echo,
# Add other exposed functions here
}
application = WSGIGateway(services, logger=logging, debug=True)
|
Make sure your Apache user (www-data) has access to your application files.
Create a new virtual host or modify an existing one:
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 | <VirtualHost 192.168.1.100:80>
ServerName example.server.com
DocumentRoot /var/www/myApp
CustomLog /var/log/apache2/myApp-access.log combined
ErrorLog /var/log/apache2/myApp-error.log
LogLevel warn
ServerSignature Off
# PyAMF gateway
<Location /flashservices/gateway>
SetHandler mod_python
PythonPath "['/var/www/myApp', '/usr/src/pyamf']+sys.path"
PythonHandler wsgi
PythonOption wsgi.application startup::application
PythonOption SCRIPT_NAME /flashservices/gateway
# Only enable the options below when you're debugging the
# application. Turn them Off in a production environment.
PythonDebug On
PythonAutoReload On
</Location>
</VirtualHost>
|
That’s it! Your Adobe Flash Player and AMF clients will now be able to access your PyAMF application through http://192.168.1.100/flashservices/gateway.