×
В названия постов этого раздела нужно включать наименование платформы для которой написана инструкция, Например "Ubuntu 12"
CentOS7 / Apache + mod_wsgi + SOPDS / NGINX + uwsgi + SOPDS
8 years 2 weeks ago - 7 years 2 months ago #999
by mitshel
mitshel created the topic: CentOS7 / Apache + mod_wsgi + SOPDS / NGINX + uwsgi + SOPDS
## Установка и настройка modwsgi (
code.google.com/p/modwsgi/
)
Для работы WSGI скрипта необходимо загрузить, скомпилировать и установить модуль mod_wsgi для Apache. Ньюанс тут только
в том, что нужный нам mod_wsgi должен быть скомпилирован для python3. Таких, уже готовых модулей я для своей системы
не нашел, поэтому пришлось выполнить несложные шаги для компиляции нужного нам модуля:
В результата библиотеки wsgi устанавливаются в /usr/lib64/httpd/modules.
В каталоге /etc/httpd/conf.modules.d/ создаем файл 10-wsgi.conf со следующим содержимым:
Однако при запуске Apache может произойти ошибка связанная с тем что необходимый для mod_wsgi.so модуль
/usr/local/lib/libpython3.5m.so.1.0 не будет найден. Чтобы исправить эту проблему создадим файл
/etc/ld.so.conf.d/local.conf со следующим содержимым:
далее необходимо выполнить команду:
Ниже приведен файл /etc/httpd/conf.d/sopds.conf со всеми конфигурационными строками, обеспечивающими работу
Django-приложения:
Перезапускаем Apache:
Для работы WSGI скрипта необходимо загрузить, скомпилировать и установить модуль mod_wsgi для Apache. Ньюанс тут только
в том, что нужный нам mod_wsgi должен быть скомпилирован для python3. Таких, уже готовых модулей я для своей системы
не нашел, поэтому пришлось выполнить несложные шаги для компиляции нужного нам модуля:
yum install hg # Устанавливаем клиента для Mercurial на которой ведется разработка mod_wsgi
hg clone https://code.google.com/p/modwsgi/ # Скачиваем исходники mod_wsgi
cd ./modwsgi/mod_wsgi
./configure --with-python=/usr/local/bin/python3.5 # Конфигурим под наш Python3.5
make # Компилируем
make install # Устанавливаем
В результата библиотеки wsgi устанавливаются в /usr/lib64/httpd/modules.
В каталоге /etc/httpd/conf.modules.d/ создаем файл 10-wsgi.conf со следующим содержимым:
LoadModule wsgi_module modules/mod_wsgi.so
Однако при запуске Apache может произойти ошибка связанная с тем что необходимый для mod_wsgi.so модуль
/usr/local/lib/libpython3.5m.so.1.0 не будет найден. Чтобы исправить эту проблему создадим файл
/etc/ld.so.conf.d/local.conf со следующим содержимым:
/usr/local/lib
далее необходимо выполнить команду:
ldconfig
Ниже приведен файл /etc/httpd/conf.d/sopds.conf со всеми конфигурационными строками, обеспечивающими работу
Django-приложения:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName sopds-apache.example.com
WSGIScriptAlias / /home/apache/sopds/sopds/wsgi.py
WSGIDaemonProcess sopds processes=2 threads=15 python-path=/home/apache/sopds/ lang='en_US.UTF-8' locale='en_US.UTF-8'
WSGIProcessGroup sopds
WSGIScriptReloading On
WSGIPassAuthorization On
<Directory "/home/apache/sopds/sopds/">
Require all granted
</Directory>
<Directory "/home/apache/sopds/static/">
Require all granted
</Directory>
Alias /static "/home/apache/sopds/static"
</VirtualHost>
Перезапускаем Apache:
systemctl restart httpd
Last Edit: 7 years 2 months ago by mitshel.
Please Войти or Create an account to join the conversation.
- mitshel
- Topic Author
- Offline
- Администратор
Less
More
- Posts: 297
- Karma: 8
7 years 7 months ago #1651
by VyacheslavS
VyacheslavS replied the topic: CentOS7 + Apache + mod_wsgi + SOPDS
Можете привести пример конфигурационного файла для nginx?
Please Войти or Create an account to join the conversation.
- VyacheslavS
- Offline
- Новый участник
Less
More
- Posts: 3
7 years 7 months ago - 7 years 7 months ago #1654
by mitshel
mitshel replied the topic: CentOS7 + Apache + mod_wsgi + SOPDS
server {
listen 80;
server_name ebook.example.ru;
root /home/www/opds2/;
access_log /var/log/nginx/ebook.access.log;
error_log /var/log/nginx/ebook.error.log;
location /static {
alias /home/www/opds2/static;
}
location / {
uwsgi_pass unix:/var/run/uwsgi/uwsgi-opds.sock;
include uwsgi_params;
uwsgi_param UWSGI_CHDIR /home/www/opds2;
uwsgi_param UWSGI_FILE sopds/wsgi.py;
}
}
Однако, как вы понимаете, для данной конфигурации еще нужно uwsgi
listen 80;
server_name ebook.example.ru;
root /home/www/opds2/;
access_log /var/log/nginx/ebook.access.log;
error_log /var/log/nginx/ebook.error.log;
location /static {
alias /home/www/opds2/static;
}
location / {
uwsgi_pass unix:/var/run/uwsgi/uwsgi-opds.sock;
include uwsgi_params;
uwsgi_param UWSGI_CHDIR /home/www/opds2;
uwsgi_param UWSGI_FILE sopds/wsgi.py;
}
}
Однако, как вы понимаете, для данной конфигурации еще нужно uwsgi
Last Edit: 7 years 7 months ago by mitshel.
Please Войти or Create an account to join the conversation.
- mitshel
- Topic Author
- Offline
- Администратор
Less
More
- Posts: 297
- Karma: 8
7 years 7 months ago #1658
by VyacheslavS
VyacheslavS replied the topic: CentOS7 + Apache + mod_wsgi + SOPDS
За конфиг огромное Спасибо!
с установкой uwsgi проблем не возникло:Потом добавил в /etc/rc.local:Возможно это и не правильное решение, но как то нужно было что бы при старте системы создавался сокет.
Если не прав, то поправьте.
с установкой uwsgi проблем не возникло:
pip3 install uwsgi
uwsgi --socket uwsgi-opds.sock --wsgi-file /opt/sopds-master/sopds/wsgi.py --chmod-socket=666
Если не прав, то поправьте.
Please Войти or Create an account to join the conversation.
- VyacheslavS
- Offline
- Новый участник
Less
More
- Posts: 3
Time to create page: 0.183 seconds