× В названия постов этого раздела нужно включать наименование платформы для которой написана инструкция, Например "Ubuntu 12"

CentOS7 / Apache + mod_wsgi + SOPDS / NGINX + uwsgi + SOPDS

1 year 8 months ago - 10 months 2 weeks 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. Таких, уже готовых модулей я для своей системы
не нашел, поэтому пришлось выполнить несложные шаги для компиляции нужного нам модуля:
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: 10 months 2 weeks ago by mitshel.

Please Войти or Create an account to join the conversation.

  • mitshel
  • mitshel's Avatar Topic Author
  • Offline
  • Администратор
  • Администратор
More
1 year 3 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
  • VyacheslavS's Avatar
  • Offline
  • Новый участник
  • Новый участник
More
1 year 3 months ago - 1 year 3 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
Last Edit: 1 year 3 months ago by mitshel.

Please Войти or Create an account to join the conversation.

  • mitshel
  • mitshel's Avatar Topic Author
  • Offline
  • Администратор
  • Администратор
More
1 year 3 months ago #1658 by VyacheslavS
VyacheslavS replied the topic: CentOS7 + Apache + mod_wsgi + SOPDS
За конфиг огромное Спасибо!
с установкой uwsgi проблем не возникло:
pip3 install uwsgi
Потом добавил в /etc/rc.local:
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
  • VyacheslavS's Avatar
  • Offline
  • Новый участник
  • Новый участник
More
Time to create page: 0.131 seconds