当前位置: 首页 > 知识库问答 >
问题:

Django与mod_wsgi不适用于Postgis

蒲坚
2023-03-14

我正在尝试使用mod_wsgi使我的django项目与httpd一起工作。但我一直收到一个“500内部服务器错误”。我正在使用PostgreSQL Postgis数据库。我的操作系统是Fedora 20。

真正奇怪的是:

>

“引擎”:“django。contrib。地理信息系统。db。后端。postgis',

任何其他数据库(mysql、sqlite3..),例如:

'ENGINE':'django.db.backends.mysql',

这是我的django项目的httpd配置文件(假设它被称为testproject)(我把这个文件放在/etc/httpd/conf.d中):

<VirtualHost *:80>
ServerName testproject.com

DocumentRoot /var/www/testproject

WSGIProcessGroup testproject
WSGIDaemonProcess testproject threads=4

WSGIScriptAlias / /var/www/testproject/django.wsgi

Alias /static/ "/var/www/testproject/static/"
<Location "/media">
    SetHandler None
</Location>
<LocationMatch "\.(jpg|gif|png|js|css)$">
    SetHandler None
</LocationMatch>
<Directory /var/www/testproject>
    WSGIProcessGroup testproject
    WSGIApplicationGroup %{GLOBAL}
    Order deny,allow
    Allow from all
</Directory>
</VirtualHost>

显然产生错误的项目设置部分(settings.py):

DATABASES = {
    'default': {
        'ENGINE': 'django.contrib.gis.db.backends.postgis',
        'NAME': 'db_name',                      
        'USER': 'db_user',                      
        'PASSWORD': '',                  
        'HOST': '',                      
        'PORT': '',                     
    }
}

当我尝试访问URLtestproject时。com,我得到一个“500内部服务器错误”,httpd错误日志如下所示:

[Mon May 12 14:34:35.462830 2014] [:info] [pid 20762] [remote 127.0.0.1:33403] mod_wsgi (pid=20762, process='testproject', application=''): Loading WSGI script '/var/www/testproject/django.wsgi'.
[Mon May 12 14:34:35.799954 2014] [core:error] [pid 20537] [client 127.0.0.1:49565] End of script output before headers: django.wsgi
[Mon May 12 14:34:35.884215 2014] [core:notice] [pid 20530] AH00052: child pid 20762 exit signal Segmentation fault (11)
[Mon May 12 14:34:35.884237 2014] [:info] [pid 20530] mod_wsgi (pid=20762): Process 'testproject' has died, restarting.
[Mon May 12 14:34:35.884240 2014] [:info] [pid 20530] mod_wsgi (pid=20762): Process 'testproject' terminated by signal 11
[Mon May 12 14:34:35.884728 2014] [:info] [pid 20978] mod_wsgi (pid=20978): Starting process 'testproject' with uid=48, gid=48 and threads=4.
[Mon May 12 14:34:35.884981 2014] [:info] [pid 20978] mod_wsgi (pid=20978): Initializing Python.
[Mon May 12 14:34:35.892051 2014] [:info] [pid 20978] mod_wsgi (pid=20978): Attach interpreter ''

我坚持这个事实,这个错误只在使用django时发生。contrib。地理信息系统。db。后端。postgis,但使用任何一个django都可以正常工作。db。后端*

任何帮助或想法将不胜感激。


共有1个答案

锺离珂
2023-03-14

我刚找到问题所在。它来自SELinux策略,该策略显然拒绝了httpd访问该页面的权限。

我的/var/log/httpd/error\u log中有以下行:

[Mon May 12 14:04:34.876392 2014] [core:notice] [pid 20070] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0

然后我运行了以下两个命令行:

sudo grep httpd /var/log/audit/audit.log | audit2allow -M mypol
sudo semodule -i mypol.pp

它又起作用了。

 类似资料:
  • 问题内容: 假设我有这个模型: 现在,如果我想高效地查看相册中的一部分照片。我这样做是这样的: 这只会执行两个查询,这正是我所期望的(一个查询得到相册,然后一个查询,例如“ SELECT * IN photos WHERE photoalbum_id IN()”。 一切都很棒。 但是,如果我这样做: 然后用!进行大量查询!我是在做错什么,还是django不够聪明,以至于它已经获取了所有照片并可以在

  • 嗨,当我在运行apache 2的ubuntu server 14.10上使用mod_wsgi和python访问django时,出现了下面的错误。 我的django应用程序使用python 3.4,但它似乎默认为python 2.7,我无法从PIL导入图像,从pycrypto导入AES。 导入错误在 / 无法导入名称 _imaging 请求方法: GET 请求 URL: Django 版本: 1.7

  • 我想将Django项目从测试服务器迁移到Apache(CentOS上的2.2.15版本)。我使用[1]安装了mod_wsgi,并尝试使用[2]将我的项目装载为wsgi应用程序。 我遵循Hello-World示例(有帮助的SO-thread[3]),放置了测试wsgi。py文件与我现有的Django项目文件(wsgi.py)位于同一目录中。这是可行的(例如,我可以通过wget访问)。 在此基础上,我

  • 问题内容: 嗨,我只是简单地尝试在www.example.com上获取h1标签,该标签显示为“ Example Domain”。该代码适用于http://www.example.com,但不适用于https://www.exmaple.com。我该如何解决这个问题?谢谢 问题答案: PhantomJSDriver不支持(所有)DesiredCapabilities。 你会需要: 记录在这里:htt

  • 所以我使用这种方法写入文件,它在windows上运行完全正常,但在mac上运行时,它会创建文件,但它们是空的。 我知道数据是正确的,因为它打印正确。感谢您的任何帮助,这真的让我绊倒了。

  • 问题内容: 我在一个名为如下的应用程序中有一个模型: 在我的设置中: 但是,如果我尝试: 我收到以下错误: 我在这里想念什么? 任何帮助将非常感激。 问题答案: 嗯,您正在尝试获取UserProfile的用户个人资料。我希望您的意思是得到一个用户,然后再打电话。