Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 6, 2016 13:45:42

palzuncoff
Зарегистрирован: 2015-08-27
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

CGI script is not executable

Здравствуйте уважаемые форумчане, изучая учебник “Програмирование на Питон” 4- издание М.Луц, сталкнулся с такой проблемой:
при запуске cgi101.html

<html>
<title>Interactive Page</title>
<body>
<form method=POST action="cgi-bin/cgi101.py">
    <P><B>Enter your name:</B>
    <P><input type=text name=user>
    <P><input type=submit>
</form>
</body></html>

после введения имнени и нажатия на submit в брузере получил ответ

Error response

Error code: 403

Message: CGI script is not executable ('/cgi-bin/cgi101.py').

Error code explanation: 403 - Request forbidden – authorization will not help.


отредактировал файл cgi101.py

#!/usr/bin/env python
import cgi
form = cgi.FieldStorage()                 # parse form data
print('Content-type: text/html\n')        # hdr plus blank line
print('<title>Reply Page</title>')        # html reply page
if not 'user' in form:
    print('<h1>Who are you?</h1>')
else:
    print('<h1>Hello <i>%s</i>!</h1>' % cgi.escape(form['user'].value))


никакого эффекта не последовало
гуглёж пока тоже не помог
Иcпользую Ubuntu, интерпритатор python 3.4.3
путь к итерпритатору /usr/bin

вот сценарий сервера
"""
Implement an HTTP web server in Python that knows how to run server-side
CGI scripts coded in Python;  serves files and scripts from current working
dir;  Python scripts must be stored in webdir\cgi-bin or webdir\htbin;
"""
import os, sys
from http.server import HTTPServer, CGIHTTPRequestHandler
webdir = '.'   # where your html files and cgi-bin script directory live
port   = 8888    # default http://localhost/, else use http://localhost:xxxx/
os.chdir(webdir)                                       # run in HTML root dir
srvraddr = ("", port)                                  # my hostname, portnumber
srvrobj  = HTTPServer(srvraddr, CGIHTTPRequestHandler)
srvrobj.serve_forever()                                # run as perpetual daemon



вот адрес в браузере
http://localhost:8888/cgi-bin/cgi101.py

Пожалуйста подскажите если кто сталкивался.

Отредактировано palzuncoff (Фев. 6, 2016 14:15:48)

Офлайн

#2 Фев. 6, 2016 15:32:32

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9890
Репутация: +  854  -
Профиль   Отправить e-mail  

CGI script is not executable

Офлайн

#3 Фев. 6, 2016 17:16:35

palzuncoff
Зарегистрирован: 2015-08-27
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

CGI script is not executable

тему прочел, права предоставил не ограничиные
теперь ошибку не выдает
но после запуска cgi101.py в браузере открывается просто пустое окно, абсолютно белый лист
вот что пишет сервер
127.0.0.1 - - “POST /cgi-bin/cgi101.py HTTP/1.1” 200 -
127.0.0.1 - - CGI script exit status 0x7f00
127.0.0.1 - - “POST /cgi-bin/cgi101.py HTTP/1.1” 200 -
127.0.0.1 - - CGI script exit status 0x7f00
127.0.0.1 - - “POST /cgi-bin/cgi101.py HTTP/1.1” 200 -
127.0.0.1 - - CGI script exit status 0x7f00
127.0.0.1 - - “POST /cgi-bin/cgi101.py HTTP/1.1” 200 -
127.0.0.1 - - CGI script exit status 0x7f00
127.0.0.1 - - code 404, message File not found
127.0.0.1 - - “GET /favicon.ico HTTP/1.1” 404 -
127.0.0.1 - - “POST /cgi-bin/cgi101.py HTTP/1.1” 200 -
127.0.0.1 - - CGI script exit status 0x7f00

Офлайн

#4 Фев. 7, 2016 02:36:16

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9890
Репутация: +  854  -
Профиль   Отправить e-mail  

CGI script is not executable

palzuncoff
тему прочел, права предоставил не ограничиные
Надо запустить скрипт, который там в архиве.



Офлайн

#5 Фев. 7, 2016 10:51:05

palzuncoff
Зарегистрирован: 2015-08-27
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

CGI script is not executable

)))) работает отлично, осмелюсь спросить а вчем проблемма?
дело в сервере? дальше на протяжении заданий пользоватся им?

Отредактировано palzuncoff (Фев. 7, 2016 11:49:18)

Офлайн

#6 Фев. 7, 2016 13:35:10

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9890
Репутация: +  854  -
Профиль   Отправить e-mail  

CGI script is not executable

palzuncoff
дело в сервере?
Позаменяй части: замени сервер, оставь скрипты; замени скрипты, оставь сервер.
Так определишь, где проблема есть, а где нет.



Офлайн

#7 Фев. 8, 2016 11:57:12

palzuncoff
Зарегистрирован: 2015-08-27
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

CGI script is not executable

Я все проверил, сопоставил и выяснил, что некоректно работает исходный файл из учебника cgi101.py,
в скаченом архиве ему соответствует reply.py. Я стал заменять фрвгменты кода копируя их из reply.py, но после повторных запусков ничего не происходило. Затем я просто скопировал все содержимое reply.py и перенёс его в cgi101.py (то есть cgi101.py стал полностью идентичен reply.py), и вновь ничего не произошло (Браузер по прежнему выдавал чистый лист). Однако если переписать в эту папку reply.py и переименовать в cgi101.py (удалив исходный разумеется) то все работает как надо.

все прверил трижды, при запущеном сервере и перезагружая его, никакого эффекта.



Офлайн

#8 Фев. 8, 2016 12:41:38

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9890
Репутация: +  854  -
Профиль   Отправить e-mail  

CGI script is not executable

Возьми тот cgi101.py и прикрепи его к сообщению.



Офлайн

#9 Фев. 8, 2016 12:49:25

palzuncoff
Зарегистрирован: 2015-08-27
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

CGI script is not executable

вот он cgi101.py исходник из учебника

Прикреплённый файлы:
attachment cgi101.py (363 байта)

Офлайн

#10 Фев. 8, 2016 14:56:50

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9890
Репутация: +  854  -
Профиль   Отправить e-mail  

CGI script is not executable

Там сервер не понимает \r в концах строк. Если их удалить, всё нормально.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version