Django/Pyodbc/Apache-使用Apache时出现连接错误



我正试图使用Django-pyodbc azure包从Django应用程序连接到SQL Server后端。

我可以使用Django manage.py shell(ORM和pyodbc查询)和开发服务器(视图中的HttpResponse函数)连接并返回数据,但当我尝试使用Apache和mod_wsgi时,我收到错误:

('08S01', '[08S01] [unixODBC][FreeTDS][SQL Server]Unable to connect: Adaptive Server is unavailable or does not exist (20009) (SQLDriverConnect)')

我使用的是Red Hat Enterprise Linux 7、Python 3.3.5、Pyodbc 3.0.7、Django 1.7、Apache 2.4.6、Mod_WSGI 4.4.5、SQL Server 2014、FreeTDS 0.91(不使用dsn)和Django Pyodbc Azure 1.2.0


Modwsgi.conf:

<VirtualHost *:80>
    WSGIDaemonProcess xxx.xxx.xxx.xxx python-path=/path/to/mysite.com:/path/to/virtualenv/lib/python3.3/site-packages processes=2 threads=15
    WSGIProcessGroup xxx.xxx.xxx.xxx
    WSGIScriptAlias / /path/to/mysite.com/mysite/wsgi.py
    <Directory /path/to/mysite.com/mysite>
    <Files wsgi.py>
        Require all granted
    </Files>
    </Directory>
</VirtualHost>


wsgi.py:

"""
WSGI config for mysite project.
It exposes the WSGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/1.7/howto/deployment/wsgi/
"""
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()


在设置中.py:

DATABASES = {
    'default': {
        'ENGINE': 'sql_server.pyodbc',
        'HOST': 'hostname',
        'NAME': 'dbname',
        'USER': 'dbuser',
        'PASSWORD': 'dbpassword',
        'PORT': '1433',
        'OPTIONS': {
            'driver': 'FreeTDS',
            'host_is_server': True,
            'unicode_results': True,
            'extra_params': 'tds_version=7.4'
        }
    }
}


当使用manage.py runserver时,我可以在浏览器中查看数据。

从翻译我也可以做:

In [1]: import pyodbc
In [2]: conn = pyodbc.connect('DRIVER=FreeTDS;SERVER=servername;PORT=1433;DATABASE=dbname;UID=dbuser;PWD=dbpassword')
In [3]: cursor = conn.cursor()
In [4]: cursor.execute("select top 5 test_names from test_table;").fetchone()
Out[4]: ('John', )


但由于某种原因,当我尝试使用Apache时,最初的pyodbc数据库连接尝试失败了。
非常感谢在这方面的任何帮助。

你试过运行吗

sudo setsebool -P httpd_can_network_connect=1

在机器上?

相关内容

  • 没有找到相关文章

最新更新