【问题标题】:Django Apache MsSQL connection timeoutDjango Apache MsSQL 连接超时
【发布时间】:2018-02-14 17:13:15
【问题描述】:

我正在尝试使用 Apache mod_wsgi 在 CentOS 7 上使用 MS SQL Server 进行 Django。我可以使用python manage.py runserver 0.0.0.0:8000 运行 Django 应用程序并导航到我的 grappeli 管理页面。

但是,当我使用 Apache 运行时,主站点加载得很好,但是当我尝试导航到管理页面时,我得到了 OperationalError: ('HYT00', u'[HYT00] [unixODBC][Microsoft][ODBC Driver 17 for SQL Server]Login timeout expired (0) (SQLDriverConnect)')

奇怪的是,runserver 可以使用我指向我的 apache 配置的同一个 virtualenv。

点冻结:

Django==1.11.10
django-grappelli==2.10.2
django-pyodbc==1.1.3
django-pyodbc-azure==1.11.9.0
pymssql==2.1.3
pyodbc==4.0.22

/etc/httpd/conf.d/django.conf的内容:

<Directory /opt/measurement_app/measurement_app>
   <Files wsgi.py>
       Require all granted
   </Files>
</Directory>
WSGIDaemonProcess measurement_app python-path=/opt/measurement_app:/opt/measurement_app/measurementenv/lib/python2.7/site-packages
WSGIProcessGroup measurement_app
WSGIScriptAlias / /opt/measurement_app/measurement_app/wsgi.py

settings.py:

DATABASES = {
    'default': {
        'ENGINE': 'sql_server.pyodbc',
        'NAME': 'MEASUREMENT',
        'HOST': ****,
        'PORT': 1433,
        'USER': ****,
        'PASSWORD': *****,
        'OPTIONS': {
            'driver': 'ODBC Driver 17 for SQL Server',
            'dsn': 'app-sqldb',
            'use_legacy_datetime': True,
        }
    }
}

odbcinst.ini

[ODBC Driver 17 for SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-17.0.so.1.1
UsageCount=1

odbc.ini

[app-sqldb]
Driver = ODBC Driver 17 for SQL Server
Description = SQL Server 2012 DenSQL
Server = ****
instance = MEASUREMENT
Database = MEASUREMENT
Port = 1433
Trace = Yes
TraceFile = /tmp/odbc.log

【问题讨论】:

  • 我想知道这是否是您的 virtualenv 中的冲突 - 您不需要 django-pyodbc,只需要 django-pyodbc-azure。尝试删除 django-pyodbc 作为起点?
  • 你可能正在做某事。当我卸载 django-pyodbc 时,django dev 停止工作并变得像 Apache。 @FlipperPA 你认为它可能是别的东西吗?
  • 由于您使用的是 CentOS,因此 SELinux 配置可能会受到限制并以某种方式阻止您。 Apache 用户通常具有更严格的配置文件。
  • 解决了! @GrahamDumpleton 你是真正的 Apache 向导

标签: sql-server django apache mod-wsgi pyodbc


【解决方案1】:

所以问题是我的 SELinux 配置受到限制并且阻塞了连接。解决方案是编辑我的/etc/selinux/config 并设置

SELINUX=disabled

然后reboot

mod_wsgi 文档提到 SELinux 可能会导致以下方面的一些问题:

【讨论】:

  • 除非你不应该禁用它。您应该弄清楚如何配置它以允许所需的内容。
  • 毫无疑问,我很兴奋现在正在工作
猜你喜欢
  • 2017-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-11
  • 2020-06-02
  • 2019-03-26
  • 2018-06-20
  • 1970-01-01
相关资源
最近更新 更多