Python на Apache - получение 404 - PullRequest
3 голосов
/ 29 марта 2010

Я отредактировал этот вопрос после того, как нашел решение ... Мне нужно понять, почему решение работает вместо моего метода?

Это, вероятно, глупый вопрос. Я пытался найти другие вопросы, которые связаны ... но безрезультатно.

Я использую Apache / 2.2.11 (Ubuntu) DAV / 2 SVN / 1.5.4 PHP / 5.2.6-3ubuntu4.5 с Suhosin-Patch mod_python / 3.3.1 Python / 2.6.2

У меня есть скрипт с именем test.py

#! /usr/bin/python
print "Content-Type: text/html"     # HTML is following
print                               # blank line, end of headers

print "hello world"

запуск его как исполняемого файла работает ...

/var/www$ ./test.py
Content-Type: text/html

hello world

при запуске http://localhost/test.py я получаю ошибку 404.

Чего мне не хватает?

я использовал этот ресурс, чтобы включить синтаксический анализ python на apache. http://ubuntuforums.org/showthread.php?t=91101

Из того же потока ... работал следующий код .. почему? #! / USR / бен / питон

import sys
import time

def index(req):

# Following line causes error to be sent to browser
# rather than to log file (great for debug!)

    sys.stderr = sys.stdout

    #print "Content-type: text/html\n"

    #print """
    blah1 = """<html>
    <head><title>A page from Python</title></head>
    <body>
    <h4>This page is generated by a Python script!</h4>
    The current date and time is """

    now = time.gmtime()
    displaytime = time.strftime("%A %d %B %Y, %X",now)

    #print displaytime,
    blah1 += displaytime

    #print """
    blah1 += """
    <hr>
    Well House Consultants demonstration
    </body>
    </html>
    """
    return blah1

Ответы [ 2 ]

4 голосов
/ 29 марта 2010

Я думаю, что обработчик mod_python ожидает найти функцию index в test.py.

Вы можете вызвать любую функцию внутри test.py, поместив ее в конец URL, например, http://localhost/test.py/any_func, по умолчанию используется index, если не указано иное.

0 голосов
/ 26 ноября 2013

Если вы хотите, чтобы ваш код работал как есть, вы также можете настроить свой веб-сервер для обработки .pl как сценария cgi вместо использования mod_python.publisher

в конфигурации apache:

AddHandler cgi-script .py

и если вы не хотите ошибки 403, отредактируйте:

<Directory /path/to/www/yourfile.py>
Options +ExecCGI
</Directory>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...