gpt4 book ai didi

python - 使用 apache 服务器时覆盖 python3 默认编码器

转载 作者:太空宇宙 更新时间:2023-11-03 17:19:03 25 4
gpt4 key购买 nike

我正在运行一个 apache 服务器,它服务于一个名为 ingenious 的框架。

读取带有希伯来字符的文件时出现 UnicodeDecodeError('ascii'

我了解到您可以使用环境变量更改 python3 的默认首选编码。

所以我使用 [setenv][3] 方法编辑了 /etc/httpd/conf/httpd.conf:

SetEnv LC_ALL en_US.UTF-8
SetEnv LANG en_US.UTF-8
SetEnv LANGUAGE en_US.UTF-8
SetEnv PYTHONIOENCODING utf8

并使用 sudo service httpd restart 重新启动服务器,但仍然无法正常工作。

我必须声明该软件在不使用 apache 服务器(仅 python3)运行时可以在本地运行。

locale.getpreferredencoding()修改后为ANSI_X3.4-1968

这里是/etc/httpd/conf/httpd.conf的内容

ServerRoot "/etc/httpd"

Listen 80

Include conf.modules.d/*.conf

User apache
Group apache

ServerAdmin me@domain.com

<Directory />
AllowOverride none
Require all denied
</Directory>
ErrorLog "logs/error_log"

LogLevel warn

<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common

<IfModule logio_module>
# You need to enable mod_logio.c to use %I and %O
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>

CustomLog "logs/access_log" combined
</IfModule>

<IfModule alias_module>
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

</IfModule>


<IfModule mime_module>
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</IfModule>


AddDefaultCharset UTF-8

<IfModule mime_magic_module>

MIMEMagicFile conf/magic
</IfModule>

EnableSendfile On

# Supplemental configuration

LoadModule wsgi_module /usr/lib64/python3.5/site-packages/mod_wsgi/server/mod_wsgi-py35.cpython-35m-x86_64-linux-gnu.so

WSGIScriptAlias / "/usr/bin/inginious-webapp.production"
WSGIScriptReloading On

Alias /static/common /usr/lib/python3.5/site-packages/inginious/frontend/common/static/
Alias /static/webapp /usr/lib/python3.5/site-packages/inginious/frontend/webapp/static/
Alias /static/lti /usr/lib/python3.5/site-packages/inginious/frontend/lti/static/

SetEnv LC_ALL en_US.UTF-8
SetEnv LANG en_US.UTF-8
SetEnv LANGUAGE en_US.UTF-8
SetEnv PYTHONIOENCODING utf8

<Directory "/usr/bin">
<Files "inginious-webapp.production">
Require all granted
</Files>
</Directory>

<DirectoryMatch "/usr/lib/python3.5/site-packages/inginious/frontend/(.+)/static/">
Require all granted
</DirectoryMatch>


IncludeOptional conf.d/*.conf

我该如何进一步调试它?

最佳答案

阅读:

这解释了有关 lang/locale 的问题。

您没有使用 mod_wsgi 守护进程模式,但您应该使用,因为守护进程模式是推荐的方法。

另请阅读 mod_wsgi 文档:

关于python - 使用 apache 服务器时覆盖 python3 默认编码器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46731852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com