Найти - Пользователи
Полная версия: flask wsgi production
Начало » Web » flask wsgi production
1
dbalor
Здравстуйте закидываю сайт на хост - выдает ошибку:

 ...
 * Serving Flask app "main" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
...

Как настроить wsgi в продакшен?

конф апача:
 <VirtualHost *:80>
   ServerAdmin webmaster@site
   ServerName  site
   WSGIScriptAlias / /var/www/domains/site/wsgi.py
    WSGIProcessGroup site
    WSGIScriptReloading On 
    WSGIPassAuthorization On
   <Directory "/var/www/domains/site/">
      Require all granted
   </Directory>
   <Directory "/var/www/domains/site/static/">
      Require all granted
   </Directory>
   Alias   /static    "/var/www/domains/site/static"
</VirtualHost>
dbalor
Настроил wsgi - запустил.

теперь в логах выдает ошибку
  AH01276: Cannot serve directory /var/www/.../: No matching DirectoryIndex (index.html,index.html,index.html.var,index.php,index.phtml) found, and server-generated directory index forbidden by Options directive
На странице 403 Forbidden

Папка сайта и ее содержимое поставил права 755
 <VirtualHost 0.0.0.0:80>
    ServerName  site
    ServerAlias *.site
    CustomLog   /var/log/httpd/site.access_log combined
    ErrorLog    /var/log/httpd/site.error_log
    DocumentRoot    /var/www/domains/site
    WSGIDaemonProcess  user=umy group=mysite threads=5
    WSGIScriptAlias /site /var/www/domains/site/mysite.wsgi
    <Directory /var/www/domains/site>
        WSGIApplicationGroup %{GLOBAL}
        WSGIScriptReloading On
        Require all granted
    </Directory>
</VirtualHost>

Подскажите пожалуйста где ошибка?.
dbalor
Вот мой wsgi скрипт(mysite.wsgi):
 from moysite import app as application
import sys
sys.path.insert(0, '/var/www/domains/site/')
activate_this = '/var/www/domains/site/mysite/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))
(moysite-это скрипт python, а mysite - папка виртуальное окружение)
python2.7
bw
Лично мне лень разбраться, так что просто оставлю несколько тезисов.

1. Я никогда не использовал .wsgi (отдельно запускал backend с локальным портом) и никогда не разрешал Apache читать что-то реальное из ФС. У тебя весь код, конфиги и пр. выложены в публичный доступ или легко могут стать публичными, для меня это дикость. У меня всегда DocumentRoot указывает на пустую директорию, если очень надо, то там размещается только статика.

2. Впервые вижу такой финт “activate_this.py”. Почему не сделать как у белых людей “#!…/bin/python”?

3. У тебя “WSGIScriptAlias” задан для URL “/site”? Какой адрес не открывается? Корень, так он и не должен открываться без “index.html” или другой хрени. “http:/domain/site” тоже не открывается? Помнишь путь “/cgi-bin/”?

4. Смотри версии модулей, апачей и возраст рецептов, пробуй другие рецепты, не очень умно упереться рогом только в один. У кого-то 10 лет назад случайно получилось, а ты следуешь его примеру, хотя сам автор не понял что произошло. Вот пример для Graphite: https://graphite.readthedocs.io/en/latest/config-webapp.html. Но вместо тупого копирования, читай про каждый параметр.

Удачи.
FishHook
Кто вообще надоумил запускать питоний сайт под Апачем?
dbalor
FishHook
Кто вообще надоумил запускать питоний сайт под Апачем?
Хост такой

Настраивал отсюда
https://flask-russian-docs.readthedocs.io/ru/latest/deploying/mod_wsgi.html

Буду пробовать
bw
По ссылке "WSGIScriptAlias / /var/www/…“, а не ”WSGIScriptAlias /site /var/www/…", если что :-). Попробуй подкинуть ему index.html, куда хочет, для проверки. Может где-то прав на доступ к директории не хватает или ещё чего.
dbalor
bw
По ссылке “WSGIScriptAlias / /var/www/…“, а не ”WSGIScriptAlias /site /var/www/…”, если что :-). Попробуй подкинуть ему index.html, куда хочет, для проверки. Может где-то прав на доступ к директории не хватает или ещё чего.

"WSGIScriptAlias / /var/www/…“ не пашет,
закинул в папку site html - работает, но у меня по проекту все html в папки templates. Открываю html c помощью render_template('main.html')


bw
Что значит не пашет?
Адрес /site открывается (в старой конф.)?
dbalor
Открывается, спасибо разобрался! Заработало!

Отдельное спасибо bw
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB