[mdk-re] offtopic: troubles with python programming
Pavel Marakhovsky
=?iso-8859-1?q?=5Ftroggy=5F_=CE=C1_mtu-net=2Eru?=
Пн Апр 9 19:36:25 MSD 2001
On Mon, 09 Apr 2001 11:14:24 +0400
cornet <cornet на zmail.ru> wrote:
> Pavel Marakhovsky wrote:
> >
> > Привет!
> >
> > Сразу сорри за оффтопик, но спросить не у кого...
> >
> > Из книжки "Язык прграммирования Питон" списан пример веб сервера с возможность выполнения cgi
> > скриптов:
> >
> > #hins.py
> > #!/usr/bin/python
> > from BaseHTTPServer import HTTPServer
> > from CGIHTTPServer import CGIHTTPRequestHandler
> > import os
> >
> > os.chdir("/home/unatine/hins/html")
> > serv=HTTPServer(('',80),CGIHTTPRequestHandler)
> >
> > serv.serve_forever()
> >
> > в /home/unatine/hins/html лежит index.html и есть каталог cgi-bin в котором лежит скрипт:
> >
> > unatine на localhost ~/hins $ ls -l ./*/*
> > -rw-r--r-- 1 unatine unatine 314 Апр 8 16:44 ./html/index.html
> >
> > ./html/cgi-bin:
> > итого 4
> > -rwxr-xr-x 1 unatine unatine 764 Апр 8 16:26 dict_cgi.py
> >
> > Ну то что сервер должен запускаться от рута это в принципе понятно (иначе ошибка создания сокета)
> > index.html грузится, скрипт даже пытается выполниться, но говорит:
> >
> > localhost - - [08/Apr/2001 21:36:39] "POST /cgi-bin/dict_cgi.py HTTP/1.0" 200 -
> > Traceback (most recent call last):
> > File "/usr/lib/python2.0/CGIHTTPServer.py", line 211, in run_cgi
> > os.execve(scriptfile, args, env)
> > OSError: [Errno 13] Permission denied
> >
> > Какие права должны быть у скрипта и сервера, что бы нормально все выполнилось?
> >
> > Сейчас у сервера права:
> > -rwxr-xr-x 1 unatine unatine 220 Апр 8 16:41 hins.py
> >
> > Людии.... помогите.... а то я уже совсем запутался...
> > И еще... в книге написано что скрипты запускаются от nobody, но в python-docs по этому поводу ничего
> > нет.
>
> Приветствую!
> В целях безопасности Апач работает с правами nobody, и соответственно
> CGI с указанными Вами правами выполнять не имеет права :-), если только
> nobody не является еще и членом группы unatine.
> Так что лучше всего, ИМХО, для вашего CGI'шника поставить:
> права -rwxr-xr--
> оунер "любое_удобное_Вам_имя"
> группа nobody
> тогда Апач сможет его выполнить, но не сможет его редактировать, а права
> на запись будут только у владельца, то есть у Вас :-))
>
> Кстати, если CGI и вообще запускаемый файл не является скомпиленной
> прогой, а есть скрипт, то очень желательно в заголовке указать имя
> интерпретатора, тогда Апач будет знать что ему запустить для обработки
> данного скрипта CGI.
> Например, если это шелл скрипт, то бычно пишут в первой строке:
> #!/ban/bash
> или
> #!/bin/sh
> или имя любого другого нужного интепретатора.
> Если это скрипт на перл, то пишут:
> #!/usr/bin/perl
> и таким образом сообщают Апачу, где искать обработчик, то есть сам perl.
> Аналогично надо действовать и с Питоном.
>
> Удачи :-))
ААААААААААААА........ Люди!!! Этот скрипт и есть сервак с возможность запуска cgi-скриптов.
#hins.py - это я на всякий случай написал имя файла, в файле его нет:) Этот сервак скрипт находит,
но не может запустить выдавая выше приведенное...
Апач то все нормально запускает, но мне такой бегемот в моей маленькой квартирке не нужен, вот я и
пытаюсь что-нибудь маленькое для себя написать.
--
WBW, Pavel
e-mail: unatine на narod.ru
Rath force plants from its surface as one presses whey from cheese.
Подробная информация о списке рассылки community