Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Проблема с запуском скрипта python  (Прочитано 10314 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Проблема с запуском скрипта python
« Ответ #15 : 12 Августа 2010, 14:46:01 »
url состоит из 2 частей (или даже 3):
- домена
- названия хоста
- путь внутри хоста.
Хост - это компьютер.
localhost - это название компьютера для локальной проверки.
Извините, если сказал банальности.

Оффлайн alla

  • Автор темы
  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Re: Проблема с запуском скрипта python
« Ответ #16 : 12 Августа 2010, 14:54:08 »
ну прост когда я пишу localhost в браузере у меня открывается содержимое папки /var/www/localhost/www
если бы я не меняла конфиг апача в /etc/apache2/sites-available/default то по этому запросу открывалось бы содержимое по умолчанию то есть /var/www, там есть файл index, который пишет It Works!
Вообще к чему это все? Проблема то не в этом.
Сейчас меня больше всего интересует как мне прописать секцию Directory чтобы сервер работал. Нужно мне это для того чтобы вписать туда строки, рекомендованные другими участниками.

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Проблема с запуском скрипта python
« Ответ #17 : 12 Августа 2010, 15:11:31 »
Понятно, но про секретное слово
localhost
я Вас предупредил.

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
Re: Проблема с запуском скрипта python
« Ответ #18 : 12 Августа 2010, 15:23:36 »
Цитировать
Понятно, но про секретное слово
localhost
я Вас предупредил.
Сдаётся мне, что всё же ТС понимает разницу между именем хоста localhost и директорией на диске.

Цитировать
насчет этого не поняла. Как я обращусь к скрипту, если он не будет лежать в /var/www/localhost/www/ или его поддиректории?
А скрипты не обязаны лежать в DocumentRoot и даже рекомендуется их туда не ложить, так как при ошибках настроек они могут быть вытащены в виде исходников и это скомпрометирует безопасность вашего веб приложения.

В закоментированной части конфига (той части которая по умолчанию была) у тебя есть
# ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
# <Directory "/usr/lib/cgi-bin">
# AllowOverride None
# Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
# Order allow,deny
# Allow from all
# </Directory>
при этом DocumentRoot  там /var/www. Работает это так: если постучаться по адресу localhost/cgi-bin/some_script то апач запустит скрипт /usr/lib/cgi-bin/some_script при этом так как этот скрипт находится за пределами DocumentRoot, то украсть его много сложней. Я ни разу не настраивал mod_python но очень подозреваю, что у него должны быть подобные средства защиты скриптов.

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Проблема с запуском скрипта python
« Ответ #19 : 12 Августа 2010, 15:49:27 »
Я ни разу не настраивал mod_python но очень подозреваю, что у него должны быть подобные средства защиты скриптов.
В Django весь проект делается в домашних директориях. Я особо не вникал что и как (но как-нибудь соберусь и разберусь) , но думается, что все решается символьными ссылками или алиасами. И с защищенностью все классно и не надо крутить правами.
« Последнее редактирование: 12 Августа 2010, 15:51:01 от alexander.pronin »

Оффлайн alla

  • Автор темы
  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Re: Проблема с запуском скрипта python
« Ответ #20 : 12 Августа 2010, 15:59:20 »
Цитировать
при этом DocumentRoot  там /var/www. Работает это так: если постучаться по адресу localhost/cgi-bin/some_script то апач запустит скрипт /usr/lib/cgi-bin/some_script
скинула все свои настройки, приняла дефолтные, то есть теперь мои сайты в /var/www
скрипт питона положила в /usr/lib/cgi-bin
обращаюсь localhost/cgi-bin/index.py
алиас сработал (нужно было убрать ковычки в <Directory "usr/lib/cgi-bin">) но дальше опять разочарование - предлагается сохранить файл((

Все "AllowOverride None" поменял на "AllowOverride all".

Кстати, вот эти строки
AddHandler mod_python .py
PythonHandler mod_python.publisher
добавлять в какую именно секцию Directory? С каким путем? И нужен ли файл .htaccess для запуска скриптов?

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
Re: Проблема с запуском скрипта python
« Ответ #21 : 12 Августа 2010, 16:56:38 »
Я ни разу не настраивал mod_python но очень подозреваю, что у него должны быть подобные средства защиты скриптов.
В Django весь проект делается в домашних директориях. Я особо не вникал что и как (но как-нибудь соберусь и разберусь) , но думается, что все решается символьными ссылками или алиасами. И с защищенностью все классно и не надо крутить правами.
Я с django баловался, но там идёт своя урезанная реализация HTTP сервера для девелоперских нужд. Этот сервак для реальной работы приложения не стоит пользовать, но девелоперские потребности полностью покрываются. Сам проект живёт где угодно, лишь бы в питоноских путях поиска модулей твой код можно было найти. Я пока не вникал как результат этой работы деплоить в апачь, только по диагонали доки просмотрел. Я всего 3-4 вечера потратил на освоение django пока ещё нечего деплоить.

Цитировать
скинула все свои настройки, приняла дефолтные, то есть теперь мои сайты в /var/www
скрипт питона положила в /usr/lib/cgi-bin
обращаюсь localhost/cgi-bin/index.py
алиас сработал (нужно было убрать ковычки в <Directory "usr/lib/cgi-bin">) но дальше опять разочарование - предлагается сохранить файл((
Проверь, что файл исполняемый и начинается со строки
#! /usr/bin/python

Цитировать
Кстати, вот эти строки
Код:
AddHandler mod_python .py
PythonHandler mod_python.publisher
добавлять в какую именно секцию Directory? С каким путем? И нужен ли файл .htaccess для запуска скриптов?
Пока не трогай mod_python может честный CGI все потребности покроет.

Ещё посмотри что идёт в error log. Есть ли там что интересное?

Оффлайн alla

  • Автор темы
  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Re: Проблема с запуском скрипта python
« Ответ #22 : 12 Августа 2010, 17:27:39 »
VestniK
с правами все хорошо, файл начинается с этой строки, а в error.log после последнего обращения к скрипту добавилось следующее:
Failed loading /usr/lib/php5/ext/xdebug.so:  /usr/lib/php5/ext/xdebug.so: cannot open shared object file: No such file or directory
Failed loading /usr/lib/php5/ext/xdebug.so:  /usr/lib/php5/ext/xdebug.so: cannot open shared object file: No such file or directory
Failed loading /usr/lib/php5/ext/xdebug.so:  /usr/lib/php5/ext/xdebug.so: cannot open shared object file: No such file or directory
Failed loading /usr/lib/php5/ext/xdebug.so:  /usr/lib/php5/ext/xdebug.so: cannot open shared object file: No such file or directory
Failed loading /usr/lib/php5/ext/xdebug.so:  /usr/lib/php5/ext/xdebug.so: cannot open shared object file: No such file or directory
Failed loading /usr/lib/php5/ext/xdebug.so:  /usr/lib/php5/ext/xdebug.so: cannot open shared object file: No such file or directory
[Thu Aug 12 17:23:19 2010] [notice] caught SIGTERM, shutting down
Failed loading /usr/lib/php5/ext/xdebug.so:  /usr/lib/php5/ext/xdebug.so: cannot open shared object file: No such file or directory
PHP Deprecated:  Comments starting with '#' are deprecated in /etc/php5/apache2/conf.d/mcrypt.ini on line 1 in Unknown on line 0
[Thu Aug 12 17:23:20 2010] [notice] mod_python: Creating 8 session mutexes based on 150 max processes and 0 max threads.
[Thu Aug 12 17:23:20 2010] [notice] mod_python: using mutex_directory /tmp
[Thu Aug 12 17:23:21 2010] [notice] Apache/2.2.14 (Ubuntu) PHP/5.3.2-1ubuntu4.2 with Suhosin-Patch mod_python/3.3.1 Python/2.6.5 configured -- resuming normal operations
тут сначала что то с дебагером, я его криво установила в свое время, а так вреде нормально все.

зы: насчет первой строчки в скрипте: пробел после восклицательного знака точно нужен?

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
Re: Проблема с запуском скрипта python
« Ответ #23 : 12 Августа 2010, 18:06:01 »
Цитировать
зы: насчет первой строчки в скрипте: пробел после восклицательного знака точно нужен?
Нет, его наличие отсутствие ни на что не влияет.

В error log вобщем то действительно всё скучно и неинтересно.

Пользователь решил продолжить мысль 12 Августа 2010, 16:12:42:
<VirtualHost *:80>
   ServerName pytest.develserver
   ServerAdmin admin@develserver

   CustomLog /home/vestnik/vhost/pytest/logs/access.log combined
   ErrorLog  /home/vestnik/vhost/pytest/logs/error.log

   DocumentRoot /home/vestnik/vhost/pytest/docs
   <Directory /home/vestnik/vhost/pytest/docs>
      Options Indexes FollowSymLinks
      AllowOverride All
      Order allow,deny
      Allow from all
   </Directory>

   ScriptAlias /cgi /home/vestnik/vhost/pytest/cgi
   <Directory /home/vestnik/vhost/pytest/cgi>
      Options +ExecCGI -MultiViews
      AllowOverride All
      Order allow,deny
      Allow from all
   </Directory>
</VirtualHost>
Вот мой вариант настроек виртуалхоста который нормально запускает питоновские скрипты через CGI у меня mod_python не стоит. .htaccess подрубаетя, но я так и не придумал что бы туда для mod_rewrite прописать, поэтому эту часть не протестировал по человечески.
« Последнее редактирование: 13 Августа 2010, 12:01:26 от VestniK »

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Проблема с запуском скрипта python
« Ответ #24 : 13 Августа 2010, 08:17:00 »
 ScriptAlias /cgi /home/vestnik/vhost/pytest/cgi
У Вас сделан алиас из родного cgi на внутренность в домашней директории.
Вопрос такой. Расширение py Вы меняете на cgi или нет ?
ЗЫ. Наверное, меняете т.к. mod_python не стоит.
И для надежности приведите вывод
locate -r "mod_python\.so"
« Последнее редактирование: 13 Августа 2010, 08:26:33 от alexander.pronin »

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
Re: Проблема с запуском скрипта python
« Ответ #25 : 13 Августа 2010, 12:16:34 »
ScriptAlias /cgi /home/vestnik/vhost/pytest/cgi
У Вас сделан алиас из родного cgi на внутренность в домашней директории.
Вопрос такой. Расширение py Вы меняете на cgi или нет ?
ЗЫ. Наверное, меняете т.к. mod_python не стоит.
И для надежности приведите вывод
locate -r "mod_python\.so"
Я привёл рабочий вариант виртуалхоста, который я создал у себя дома и заставил в нём запускаться и корректно отрабатывать простейший скрипт на питоне. То что у меня приведено это рабочая конфигурация апача призванная помочь топикстартеру. А то что директории такие, так это потому что я в принципе держу апач в виртуалке и расшариваю хоум одного из пользователей по NFS, чтобы доступаться до нужных мест с хостовой машины. Расположение папок такое:
  • ${HOME}/vhost/<host_name>/vhost.conf конфиг виртуалхоста на который я делаю симлинк в /etc/apache2/sites-available/* (а на этот симлинк кидаю симлинк из sites-enabled)
  • ${HOME}/vhost/<host_name>/docs тут документы это мой DocumentRoot
  • ${HOME}/vhost/<host_name>/cgi тут всякие cgi
  • ${HOME}/vhost/<host_name>/log сюда идут логи
Разумеется расширения я не менял, в этом нет никакого смысла. Кидаю питоновский скрипт в папку cgi и в браузере захожу на http://pytest.develserver/cgi/test.py (предварительно прописав pytest.develserver в /etc/hosts своей хостовой машины, чтобы он смотрел на виртуалку с апачём) и получаю свой честный хеллоу ворлд.

У меня не самая простая инфраструктура для разработки, это из за того, что я извращенец :)
« Последнее редактирование: 13 Августа 2010, 12:52:23 от VestniK »

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Проблема с запуском скрипта python
« Ответ #26 : 13 Августа 2010, 12:46:58 »
И все-таки приведите вывод
locate -r "mod_python\.so"
Дошло, это дома, но все равно интересно.

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
Re: Проблема с запуском скрипта python
« Ответ #27 : 13 Августа 2010, 12:52:26 »
Ну сейчас я на работе, как до дома доберусь попробую. Но я не помню чтобы я ставил mod_python в свою виртуалку для веб-разработки

Пользователь решил продолжить мысль 13 Августа 2010, 22:04:44:
Ну собственно как я и говорил mod_python у меня нет, всё через чистый cgi заработало.
vestnik@develserver:~$ locate -r "mod_python\.so"
vestnik@develserver:~$ aptitude search mod-python
p   libapache2-mod-python                                     - Python-embedding module for Apache 2                               
p   libapache2-mod-python-doc                                 - Python-embedding module for Apache 2 - documentation               
v   libapache2-mod-python2.6
« Последнее редактирование: 13 Августа 2010, 22:04:44 от VestniK »

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Проблема с запуском скрипта python
« Ответ #28 : 16 Августа 2010, 08:55:56 »
Да, это чистый cgi.
Это нормально. Может только не оптимально по использованию памяти.
И скажется при большом количестве клиентов.
ЗЫ.
Теперь еще вопрос до кучи.
Если Вы используете jQuery c ajaxовыми load, post, get.
Пробовали ли цеплять в них питоновские скрипты, а не phpшные ?
« Последнее редактирование: 16 Августа 2010, 09:07:48 от alexander.pronin »

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
Re: Проблема с запуском скрипта python
« Ответ #29 : 16 Августа 2010, 14:33:34 »
Я пока не пробовал. Я с AJAX'ом и в PHP не работал. Мой опыт работы с AJAX'ом ограничен JSF+RichFaces. Но в той связке апача вообще нет.

 

Страница сгенерирована за 0.035 секунд. Запросов: 25.