2016-05-16 2 views
0

Я не могу запустить питона CGI скрипт в убунту с помощью XAMPPкак запустить питона CGI скрипт в убунту с помощью XAMPP

Я сделал необходимые изменения в httpd.conf (/ опт/lampp/и т.д.)

<Directory "/opt/lampp/htdocs"> 
    Options +ExecCGI 
    AddHandler cgi-script .cgi .py 
    Order allow,deny 
    Allow from all 
</Directory> 

=========================================================================================================================================== ============

и мой файл сценария питона

#!/usr/bin/python 
# -*- coding: UTF-8 -*-# enable debugging 
import cgitb 
cgitb.enable()  
print "Content-Type: text/html;charset=utf-8" 
print "Hello World!" 

= = = ==========

Заранее спасибо!

+0

И что происходит? –

+0

После того, как я запустил, получите ошибку: «Сервер обнаружил внутреннюю ошибку и не смог выполнить ваш запрос. Сообщение об ошибке: Конец вывода сценария перед заголовками: labels.py« –

+0

В сценарии Python, развернутом на сервере, есть ли разрыв строки между 2-м и 3-м заявлением на печать? –

ответ

0

Результат сценария CGI должен состоять из двух разделов, разделенных пустой строкой. В первом разделе содержится несколько заголовков, , сообщающих клиенту, какие данные следуют.

https://docs.python.org/2/library/cgi.html

В текущем примере кода пустая строка отсутствует (не в вашем первоначально размещен код). Попробуйте изменить первое print заявление:

print "Content-Type: text/html;charset=utf-8\n "

и он должен работать (по крайней мере, он сделал на сервере Amazon с Ubuntu и Apache)

Мой рабочий персональный поиск и устранение неисправностей с Python и CGI.:

  • Проверьте разрешение сценария, например, является его собственностью WWW-данными?
  • ли скрипт запустить Python при вызове из командной строки? я. например, простые опечатки, ошибки отступов и т. д.
  • Попробуйте использовать регистратор (так как вы не можете print до stdout), чтобы увидеть, где и когда он сбой, например. этот: http://www.electricmonk.nl/log/2011/08/14/redirect-stdout-and-stderr-to-a-logger-in-python/
+0

Я получаю ошибку в error.log как [Вт 17 мая 11: 54: 24.307673 2016] [cgid: error] [pid 15122: tid 140289761994624] (2) Нет такого файла или каталога: AH01241: exec of '/ var/www/html/test/labels.py 'failed [Вт 17 мая 11: 54: 24.307933 2016] [cgid: error] [pid 15020: tid 140289461118720] [клиент 127.0.0.1:60209] Конец вывода сценария перед заголовками: labels.py –

+0

В вашем httpd.conf ваш каталог cgi - «/ opt/lampp/htdocs», но скрипт Python, похоже, находится в '/var/www/html/test/labels.py'. Работает ли это при перемещении сценария или изменении http.conf? –

+0

теперь я использую apache2 и ubuntu. не xampp. –