pythonapache2mod-python

mod_python returns a blank screen


I'm trying to run mod_python.publisher in apache2. All I want to do is simply print "Hello World"

When I run my program, I get a blank screen. My .py program looks like this:

def index():
    print ("Hello World")
index() 

However when I run the program:

def index(req):
    print ("Hello World")
index()

I get this error message that says index() requires and argument and 0 is given:

MOD_PYTHON ERROR

ProcessId:      23348
Interpreter:    'test.com'

ServerName:     'test.com'
DocumentRoot:   '/var/www'

URI:            '/modPythonTest.py'
Location:       None
Directory:      '/var/www/'
Filename:       '/var/www/modPythonTest.py'
PathInfo:       ''

Phase:          'PythonHandler'
Handler:        'mod_python.publisher'

Traceback (most recent call last):

  File "/usr/lib/python2.7/dist-packages/mod_python/importer.py", line 1537,                    in HandlerDispatch
    default=default_handler, arg=req, silent=hlist.silent)

  File "/usr/lib/python2.7/dist-packages/mod_python/importer.py", line 1229,     in _process_target
    result = _execute_target(config, req, object, arg)

  File "/usr/lib/python2.7/dist-packages/mod_python/importer.py", line 1128,     in _execute_target
    result = object(arg)

  File "/usr/lib/python2.7/dist-packages/mod_python/publisher.py", line 204,     in handler
    module = page_cache[req]

  File "/usr/lib/python2.7/dist-packages/mod_python/importer.py", line 1059,     in __getitem__
    return import_module(req.filename)

  File "/usr/lib/python2.7/dist-packages/mod_python/importer.py", line 296,     in import_module
    log, import_path)

  File "/usr/lib/python2.7/dist-packages/mod_python/importer.py", line 680,     in import_module
    execfile(file, module.__dict__)

  File "/var/www/modPythonTest.py", line 5, in <module>
    index()

    TypeError: index() takes exactly 1 argument (0 given)

So based on that, I looks like my code is being compiled. I get an error from bad code, but no output on good code. Any ideas?


Solution

  • This ended up working for me:

    #!/usr/bin/python
    from mod_python import apache
    
    def index(req):
        out = "<html><head>"
        out = out+"<meta http-equiv='content-type' content='text/html'></head>"
        out = out+"<body>Hello World</body></html>"