2017-01-08 3 views
1

Я повсюду искал и предложил множество предлагаемых решений, но без необходимого результата: для запуска файла python с моего сервера лампы. Я не могу объединить все части головоломки ... Усложнение истории состоит в том, что многие решения используют либо старую версию apache (< 2.4), которая значительно изменила файлы конфигурации. Нет больше httpd.conf! так что это executing-a-python-script-in-apache2 не помогает; Но и версия python> 3 осложняет ситуацию.запустить скрипт python3 на linux apache 2.4

спецификации:

  • Linux Kubuntu, Apache 2.4, Python 3.5
  • апач работает под управлением
  • файлы сайта в корневой/вар/WWW/HTML /, у меня есть доступ SUDO к этому папка. Модуль CGI
  • apache2 включено: a2enmod CGI
  • питон 3.5 путь USR/бен/окр python3
  • сценарий питона, простейший из сценариев, был сделан исполняемым

    #!/usr/bin/env python3 
    
    print ("Content-type: text/html\n") 
    print ("Hello world!") 
    

давайте откиньте его до простейшего случая: я бы хотел, чтобы apache интерпретировал скрипт spark.py и выплевывал html: «Привет, мир!».

Вопросы:

  • является файл сценария правильно, как это?
  • Какие файлы конфигурации мне нужно изменить и что мне нужно добавить в эти файлы конфигурации?

Я знаю по соображениям безопасности, у вас не должно быть скрипта запуска apache в корневом каталоге.

+0

Посмотрите на 'mod_wsgi', это намного лучше, чем простой старый CGI. В основных архивах Ubuntu есть пакет 'libapache2-mod-wsgi-py3', я уверен, что для Kubuntu есть один доступный. – MattDMo

+0

Я изучаю модули wsgi, но это, похоже, еще сложнее реализовать. Может быть, у вас есть простой простой пример этого? – hewi

+0

использовать Google. Вот для чего это. – MattDMo

ответ

1

Документация по python для modwsgi, похоже, соответствует тому, что вы просите. Следующая веб-страница имеет действительно простой пример и необходимую конфигурацию для установки python3-apache2.

http://modwsgi.readthedocs.io/en/develop/user-guides/quick-configuration-guide.html

Вам нужно будет установить mod_wsgi для конфигурации работать. Обратите внимание на различный символ подчеркивания «_» и символ «-», используемый в apt и pip3.

$ sudo apt install apache2-dev libapache2-mod-wsgi-py3 
$ sudo pip3 install mod_wsgi 

libapache2-мод-WSGI-PY3 и mod_wsgi, кажется, то же самое. Однако мое тестовое развертывание работает только после установки mod_wsgi. Может возникнуть проблема с настройкой. Ниже перечислены детали конфигурации, которую я тестировал на Ubuntu 16.04.2.

файл приложения /home/user/wsgi_sample/hello.wsgi:

def application(environ, start_response): 
    status = '200 OK' 
    output = b'Hello World!' 
    response_headers = [('Content-type', 'text/plain'), 
        ('Content-Length', str(len(output)))] 
    start_response(status, response_headers) 
    return [output] 

конфигурации Apache2 /etc/apache2/sites-available/000-test.conf

<VirtualHost *:80> 
    ServerName testmachine 
    <Directory /home/user/wsgi_sample> 
    Order allow,deny 
    Allow from all 
    Require all granted 
    </Directory> 
    WSGIScriptAlias /hello /home/user/wsgi_sample/hello.wsgi 
</VirtualHost> 

Включить сайт в apache2.

sudo a2ensite 000-test.conf 

Откройте ваш браузер для testmachine/hello.

wsgi также может быть размещен на Apache2 с использованием пассажира. Это требует более медленной конфигурации. Задайте новый вопрос, если требуется пассажир/python3.

+0

Добро пожаловать в Stack Overflow. Всегда указывайте наиболее значимую часть важной ссылки, если целевой сайт недоступен или постоянно находится в автономном режиме. –

Смежные вопросы