我在我的django应用程序中使用mySQLdb模块,该应用程序通过WSGI链接到Apache。 但是,我得到了许可问题(如下所示)。这取决于SElinux,如果我把它设置为被动,一切都还可以。
ImproperlyConfigured:加载MySQLdb模块时出错: /opt/django/virtenv/django15/lib/python2.7/site-packages/_mysql.so: 无法从共享对象映射段:权限被拒绝
更新SELinux以包含此内容的最佳方法是什么,而不必关闭整个事情。错误如下所示:
ImproperlyConfigured:加载MySQLdb模块时出错: /opt/django/virtenv/django1/lib/python2.7/site-packages/_mysql.so: cfared从共享对象映射段:权限被拒绝
答案 0 :(得分:9)
正如@ Gohn67建议的那样,更改相关文件的SELinux安全上下文,允许HTTPD进程执行它:
sudo chcon -R -h -t httpd_sys_script_exec_t /opt/django/virtenv/django15/lib/python2.7/site-packages/_mysql.so
答案 1 :(得分:0)
为了更准确,请执行:
# ls -lZ /opt/django/virtenv/django1/lib/python2.7/site-packages
# ls -lZ /opt/django/virtenv/django1/lib/python2.7/site-packages/_mysql.so
# grep mysql /var/log/audit/audit.log | audit2allow -w -a -r -v
# grep mysql /var/log/audit/audit.log | audit2allow -a -r -R mysql
答案 2 :(得分:0)
我注意到一些许可问题:
答案 3 :(得分:0)
我不知道为什么,但this适合我
$ sudo chcon -t shlib_t /opt/django/virtenv/django15/lib/python2.7/site-packages/*.so