From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <3AD16150.54252BCB@zmail.ru> From: cornet X-Mailer: Mozilla 4.7 [en] (X11; I; Linux 2.2.14-15mdk i686) X-Accept-Language: ru, en MIME-Version: 1.0 To: mandrake-russian@altlinux.ru Subject: Re: [mdk-re] offtopic: troubles with python programming References: <20010408221040.75ed5315._troggy_@mtu-net.ru> Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 8bit Sender: mandrake-russian-admin@altlinux.ru Errors-To: mandrake-russian-admin@altlinux.ru X-BeenThere: mandrake-russian@altlinux.ru X-Mailman-Version: 2.0 Precedence: bulk Reply-To: mandrake-russian@altlinux.ru List-Help: List-Post: List-Subscribe: , List-Id: Mandrake/RE discussion list List-Unsubscribe: , List-Archive: Date: Mon Apr 9 11:14:11 2001 X-Original-Date: Mon, 09 Apr 2001 11:14:24 +0400 Archived-At: List-Archive: List-Post: 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. Аналогично надо действовать и с Питоном. Удачи :-)) > -- > WBW, Pavel > e-mail: unatine@narod.ru > > "Books can be replaced; a prize student cannot. Be patient." > ---Urza, to Barrin > -- ******** FIRE & STEEL ********