Как настроить mod_wsgi на сервере Centos 6 - PullRequest
0 голосов
/ 09 июня 2018

Я недавно завершил разработку приложения django 2, и часть требований заключается в том, чтобы развернуть его на сервере apache 2 на машине centos.Приложение django написано на python3, а на машине centos уже установлен python2.

До сих пор мне было трудно установить mod_wsgi на сервер apache2 и развернуть приложение.

Любая помощь будет оценена.

РЕДАКТИРОВАТЬ Я решил проблему.Смотрите мой ответ ниже

1 Ответ

0 голосов
/ 10 июня 2018

1.Чистая установка python 3.6.5 в usr / local и usr / local / lib

Я гарантировал, что YUM был обновлен:

$ yum update

Компиляторы и связанные инструменты:

$ yum groupinstall -y "development tools"

библиотек, необходимых во время компиляции для включения всех функций Python:

    $ yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite- 
devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel 
expat-devel

установка Python 3.6.5:

$ wget http://python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz
$ tar xf Python-3.6.5.tar.xz
$ cd Python-3.6.5
$ ./configure --prefix=/usr/local --enable-shared LDFLAGS="-Wl,-rpath 
/usr/local/lib"
$ make && make altinstall

2.Установленный mod_wsgi с помощью pip install

с использованием только что установленного python3.6 Я выполнил следующую команду

$python3.6 -m pip install mod_wsgi

3.Загрузите Mod_wsgi в модуль Apache

Найдите файл конфигурации Apache /etc/apache2/conf/http.conf и добавьте следующую команду для загрузки mod_wsgi, указав путь установки.В моем случае добавлена ​​команда loadModule в /etc/apache2/conf.d/includes/pre_main_global.conf

$ LoadModule wsgi_module /usr/local/lib/python3.6/site- 
packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so

4.Перезапустите Apache Server и убедитесь, что mod_wsgi загружен

$apachectl restart
$apachectl -M

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

5.настроить виртуальный хост и выполнить простой тест hello.py

У меня есть сервер, на котором уже размещены 7 различных сайтов.я просто создал новый поддомен и изменил виртуальный хост субдомена, чтобы он выглядел как

<VirtualHost mysite.com_ip:80>
ServerName wsgitest.mysite.com
ServerAlias www.wsgitest.mysite.com
DocumentRoot /home/account_username/public_html/wsgitest
ServerAdmin admin@mysite.com

<Directory /home/account_username/public_html/wsgitest>
Order allow,deny
Allow from all
</Directory>

WSGIScriptAlias / /home/account_username/public_html/wsgitest/hello.py

ErrorLog /home/account_username/public_html/wsgitest/wsgitest_error.log
</VirtualHost>

перезапустите apache после изменения виртуального хоста

создайте приложение hello.py wsgi в соответствии с этим сайтом - http://modwsgi.readthedocs.io/en/develop/user-guides/quick-configuration-guide.html

hello.py

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]

, поэтому мое приложение wsgitest выглядит так на сервере /home/account_username/public_html/wsgitest/hello.py

Наконец, протестируйтесайт в браузере, например, так - wsgitest.mysite.com вы должны увидеть «Hello World»

Надеюсь, это кому-нибудь поможет

...