1

已经每天在 CentOS7 上运行一个 django 程序。
我希望将 centos7 移动为 centos8。

我正在尝试 CentOS8。这是 wsgi 设置。

# dnf -y install python3-mod_wsgi
# vi /etc/httpd/conf.d/python3_wsgi.conf

这是新文件。写入新文件。

WSGIScriptAlias /test_wsgi /var/www/html/test_wsgi.py
def application(environ, start_response):
    status = '200 OK'
    html = '<html>\n' \
           '<body>\n' \
           '<div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;">\n' \
           'WSGI TEST PAGE\n' \
           '</div>\n' \
           '</body>\n' \
           '</html>\n'.encode("utf-8")
    response_header = [('Content-type','text/html')]
    start_response(status,response_header)
    return [html]
# systemctl restart httpd

url 输入到 chrome http://153.127.13.226/test_wsgi
好的!有用!与wsgi!

但是用venv创建django项目然后就不行了。

url 输入到 chrome http://153.127.13.226/test_wsgi
铬是......哦,不!503!

Service Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

venv 目录是...

# python -c 'import sys; print(sys.prefix)'
  /home/op/venv

django 项目是...

# tree /var/www/html
/var/www/html
├ index.html
├ test_wsgi.py
└  testproject
    ├ manage.py
    └  testproject
        ├ __init__.py
        ├ asgi.py
        ├ settings.py
        ├ urls.py
        └  wsgi.py
WSGIDaemonProcess test_app python-path=/var/www/html/testproject python-home=/home/op/venv
WSGIProcessGroup test_app
WSGIScriptAlias /test_wsgi /var/www/html/testproject/testproject/wsgi.py
<Directory /var/www/html/testproject>
    Require all granted
</Directory>



错误日志是……似乎无穷无尽。

# tail -f /var/log/httpd/error_log
Current thread 0x00007f65e9c55900 (most recent call first):
[Mon Mar 23 21:13:57.702501 2020] [core:notice] [pid 26583:tid 140075690449152] AH00052: child pid 7780 exit signal Aborted (6)
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ModuleNotFoundError: No module named 'encodings'

我已经在流中搜索堆栈但尚未解决。
我认为它有点多,但我的堆栈溢出了。

4

1 回答 1

0

好的!我解决了!
但我做了很多次操作系统重置。
错误没有重现。

大概是“SELinux”
的原因吧,不知道是什么原因,先介绍一下最终的设置内容和总结过程的url(不好意思,日文)

django 项目名称:mysite

LoadModule wsgi_module /var/www/html/venv/lib/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so
WSGIScriptAlias / /var/www/html/mysite/mysite/wsgi.py
WSGIDaemonProcess wsgi_app python-home=/var/www/html/venv python-path=/var/www/html/mysite
WSGIProcessGroup wsgi_app
WSGISocketPrefix /var/run/wsgi

流程:https ://qiita.com/YoshitakaOkada/items/a75f664846c8c8bbb1e1#%E3%83%91%E3%83%BC%E3%83%9F%E3%83%83%E3%82%B7%E3%83 %A7%E3%83%B3%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF

于 2020-03-27T15:47:41.477 回答