解决Initializing Python failed: Failed to import encodings module错误
在centos stream 9环境下apache启用mod_wsgi模块,用systemctl start httpd启动服务器后,用systemctl status httpd查看apache启动正常,但是在浏览器访问出现504错误,在后台执行以下命令查看apache错误日志:
#cat /var/log/httpd/error_log
出现以下错误信息:
[Tue Sep 23 15:54:39.965476 2025] [wsgi:crit] [pid 248625:tid 248625] mod_wsgi (pid=248625): Initializing Python failed: Failed to import encodings module
[Tue Sep 23 15:54:40.963889 2025] [core:notice] [pid 28006:tid 28006] AH00051: child pid 248625 exit signal Segmentation fault (11), possible coredump in /etc/httpd
开始还以为是python有问题,仔细检查后原来是selinux权限问题,执行命令
#audit2why</var/log/audit/audit.log
出现以下信息:
type=AVC msg=audit(1758613689.106:360082): avc: denied { read } for pid=245063 comm="httpd" name="python3.13" dev="dm-0" ino=104191360 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:user_home_t:s0 tclass=dir permissive=0
Was caused by:
The boolean httpd_read_user_content was set incorrectly.
Description:
允许 httpd read user content
Allow access by executing:
# setsebool -P httpd_read_user_content 1
按照提示执行命令:
# setsebool -P httpd_read_user_content 1
问题解决