python - Anaconda + Apache + mod_wsgi + Ubuntu

标签 python apache ubuntu anaconda mod-wsgi

我正在使用 Ubuntu 和 Apache 运行服务器。现在我试图让 Anaconda 与 mod_wsgi 一起工作,但就是无法让它工作。

首先。如果我使用 mod_wsgi-express ,它就可以工作。按照 https://anaconda.org/pypi/mod_wsgi 中的说明进行操作在安装到 Python 部分中,我可以通过首先设置 PYTHONHOME=/opt/anaconda 然后设置 /opt/anaconda3/bin/mod_wsgi-express start-server 来使其工作。

我想使用 Apache,所以我将 mod_wsgi 模块从 anaconda 加载到 apache 中。然后我有一个如下所示的 VirtualHost:

WSGIPythonHome /opt/anaconda3
WSGIPythonPath /opt/anaconda3/lib/python3.6/site-packages:/path/to/application
<VirtualHost *:8080>
ServerName example.com
WSGIDaemonProcess example python-home=/opt/anaconda3 python-path=path/to/application:/opt/anaconda3/lib/python3.6/site-packages
WSGIProcessGroup example

WSGIScriptAlias / /path/to/application/wsgi.py

<Directory /path/to/application/static>
    Require all granted
</Directory>

<Directory /path/to/application>
<Files wsgi.py>
    Require all granted
</Files>
</Directory>

</VirtualHost>

现在解决问题了。我的 apache 错误日志中出现此错误。如果我不使用 mod_wsgi_express 指定 PYTHONHOME=/opt/anaconda ,我会收到相同的错误。

[Wed Mar 01 09:31:17.159233 2017] [core:trace4] [pid 16941] mpm_common.c(530): mpm child 19356 (gen 0/slot 1) started
[Wed Mar 01 09:31:17.159638 2017] [core:trace4] [pid 16941] mpm_common.c(530): mpm child 19357 (gen 0/slot 2) started
[Wed Mar 01 09:31:17.160049 2017] [core:trace4] [pid 16941] mpm_common.c(530): mpm child 19358 (gen 0/slot 6) started
[Wed Mar 01 09:31:17.160467 2017] [core:trace4] [pid 16941] mpm_common.c(530): mpm child 19359 (gen 0/slot 7) started
[Wed Mar 01 09:31:17.160967 2017] [core:trace4] [pid 16941] mpm_common.c(530): mpm child 19360 (gen 0/slot 8) started
[Wed Mar 01 09:31:17.161421 2017] [core:trace4] [pid 16941] mpm_common.c(530): mpm child 19361 (gen 0/slot 9) started
[Wed Mar 01 09:31:17.161877 2017] [core:trace4] [pid 16941] mpm_common.c(530): mpm child 19362 (gen 0/slot 10) started
[Wed Mar 01 09:31:17.162345 2017] [core:trace4] [pid 16941] mpm_common.c(530): mpm child 19363 (gen 0/slot 11) started
[Wed Mar 01 09:31:17.162792 2017] [wsgi:info] [pid 19361] mod_wsgi (pid=19361): Python home /opt/anaconda3.
[Wed Mar 01 09:31:17.162817 2017] [wsgi:info] [pid 19361] mod_wsgi (pid=19361): Initializing Python.
[Wed Mar 01 09:31:17.166761 2017] [wsgi:info] [pid 19362] mod_wsgi (pid=19362): Python home /opt/anaconda3.
[Wed Mar 01 09:31:17.166806 2017] [wsgi:info] [pid 19362] mod_wsgi (pid=19362): Initializing Python.
[Wed Mar 01 09:31:17.170927 2017] [wsgi:info] [pid 19360] mod_wsgi (pid=19360): Python home /opt/anaconda3.
[Wed Mar 01 09:31:17.170967 2017] [wsgi:info] [pid 19360] mod_wsgi (pid=19360): Initializing Python.
[Wed Mar 01 09:31:17.174897 2017] [wsgi:info] [pid 19359] mod_wsgi (pid=19359): Python home /opt/anaconda3.
[Wed Mar 01 09:31:17.174921 2017] [wsgi:info] [pid 19359] mod_wsgi (pid=19359): Initializing Python.
[Wed Mar 01 09:31:17.178746 2017] [wsgi:info] [pid 19363] mod_wsgi (pid=19363): Python home /opt/anaconda3.
[Wed Mar 01 09:31:17.178769 2017] [wsgi:info] [pid 19363] mod_wsgi (pid=19363): Initializing Python.
[Wed Mar 01 09:31:17.182570 2017] [core:notice] [pid 16941] AH00052: child pid 19317 exit signal Aborted (6)
[Wed Mar 01 09:31:17.182582 2017] [core:trace4] [pid 16941] mpm_common.c(530): mpm child 19317 (gen 0/slot 0) exited
[Wed Mar 01 09:31:17.182594 2017] [core:notice] [pid 16941] AH00052: child pid 19318 exit signal Aborted (6)
[Wed Mar 01 09:31:17.182597 2017] [core:trace4] [pid 16941] mpm_common.c(530): mpm child 19318 (gen 0/slot 3) exited
[Wed Mar 01 09:31:17.182605 2017] [core:notice] [pid 16941] AH00052: child pid 19319 exit signal Aborted (6)
[Wed Mar 01 09:31:17.182608 2017] [core:trace4] [pid 16941] mpm_common.c(530): mpm child 19319 (gen 0/slot 4) exited
[Wed Mar 01 09:31:17.182615 2017] [core:notice] [pid 16941] AH00052: child pid 19320 exit signal Aborted (6)
[Wed Mar 01 09:31:17.182618 2017] [core:trace4] [pid 16941] mpm_common.c(530): mpm child 19320 (gen 0/slot 5) exited
[Wed Mar 01 09:31:17.182636 2017] [wsgi:info] [pid 16941] mod_wsgi (pid=19321): Process 'store-test' has died but server is being stopped, deregister it.
[Wed Mar 01 09:31:17.182646 2017] [wsgi:info] [pid 16941] mod_wsgi (pid=19321): Process 'store-test' has been deregistered and will no longer be monitored.
[Wed Mar 01 09:31:17.182934 2017] [wsgi:info] [pid 19358] mod_wsgi (pid=19358): Python home /opt/anaconda3.
[Wed Mar 01 09:31:17.182954 2017] [wsgi:info] [pid 19358] mod_wsgi (pid=19358): Initializing Python.
[Wed Mar 01 09:31:17.186756 2017] [wsgi:info] [pid 19357] mod_wsgi (pid=19357): Python home /opt/anaconda3.
[Wed Mar 01 09:31:17.186781 2017] [wsgi:info] [pid 19357] mod_wsgi (pid=19357): Initializing Python.
[Wed Mar 01 09:31:17.190807 2017] [wsgi:info] [pid 19356] mod_wsgi (pid=19356): Python home /opt/anaconda3.
[Wed Mar 01 09:31:17.190840 2017] [wsgi:info] [pid 19356] mod_wsgi (pid=19356): Initializing Python.
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ModuleNotFoundError: No module named 'encodings'
Current thread 0x00007f4ad9333780 (most recent call first):

有人知道我可以做些什么来让它工作吗?

最佳答案

如果您想使用 Anaconda Python,则不能对 mod_wsgi 使用任何系统包。因此第一步是卸载任何系统 mod_wsgi 软件包。

然后使用 pip install mod_wsgimod_wsgi-express 安装到您的 Anaconda Python 安装或虚拟环境中。

然后运行:

mod_wsgi-express module-config

获取其输出并将其放入您的 Apache 配置文件中以加载 mod_wsgi。

然后将您的特定 WSGI 应用程序的 mod_wsgi 配置添加到 Apache。

如果出现问题,请显示您正在使用的配置。

关于python - Anaconda + Apache + mod_wsgi + Ubuntu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42528550/

相关文章:

python - 使用python3中的tarfile模块从tar中提取文本文件

apache - 无法使用 docker 自动启动 apache

linux - ansible 配置的 Ubuntu 错误

python - 使用 ElementTree 跟踪父元素

python - 为什么循环完成后循环内 print() 会输出?

java - 我应该在我的 Java 应用程序中为 HTTP 使用 java.net 或 org.apache.http 库吗?

php - fatal error : Class 'MongoDate' not found when using mongodb php driver 1. 1.2 和 PHP 7.0.2 - Laravel 5.1

linux - bash ubuntu linux 中的脚本程序输入

python - 在 Python 中,有没有办法更改 AES 密码的 block 大小?

apache - 到底如何使友好的 URL 与斜杠一起工作?