使用在带有 ODBC17 的 apache Web 服务器上运行的 django 应用程序连接到 MSSQL 数据库时出错

Error while connecting to MSSQL db using django application running on apache web server with ODBC17

提问人:Alessio 提问时间:11/7/2023 更新时间:11/7/2023 访问量:12

问:

我尝试使用 django 4.2.4 连接到 MSSQL2012 db,该应用程序正在使用 debian12 上运行的 mod_wsgi 在 Apache2 Web 服务器上运行。我收到 followinf 错误

“('08001', '[08001] [Microsoft] [ODBC Driver 17 for SQL Server]SSL 提供程序:[error:0A00014D:SSL routines::legacy sigalg disallowed or unsupported] (-1) (SQLDriverConnect)')”。

settings.py 中的数据库配置:

DATABASES = {
         'default': {
                'ENGINE': 'mssql',
                'NAME': '****',
                'USER': '****',
                'PASSWORD': '****',
                'HOST': '192.168.50.20',
                'PORT': '1433',
                'OPTIONS': {
                    "driver": "ODBC Driver 17 for SQL Server",
                    "MARS_Connection": "True",
                },
         },
}

wsgi.py

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'PortaleScot.settings')

application = get_wsgi_application()

Apache 虚拟主机

<VirtualHost *:443>

        DocumentRoot /var/www/PortaleScot/
        ServerName *****.it

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        WSGIDaemonProcess PortaleScot python-path=/var/www/PortaleScot/ python-home=/var/www/PortaleScot/venv/
        WSGIProcessGroup PortaleScot
        WSGIScriptAlias / /var/www/PortaleScot/PortaleScot/wsgi.py

        <Directory /var/www/PortaleScot/>
                Require all granted
        </Directory>

        Alias /static/ /var/www/PortaleScot/scotHub/static/

        <Directory /var/www/PortaleScot/scotHub/static/>
                Require all granted
        </Directory>

        <IfModule mod_ssl.c>
                SSLEngine on
                SSLCertificateFile /etc/letsencrypt/live/portalescotsrl.it/fullchain.pem
                SSLCertificateKeyFile /etc/letsencrypt/live/portalescotsrl.it/privkey.pem  
                SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+EXP
        </IfModule>
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>

驱动程序安装正确,当使用 runserver 在本地运行或尝试从 cli 使用 tsql 访问它时 manage.py 一切正常,但它不适用于 apache。我认为这可能是 wsgi/apache 未正确配置的问题,但我尝试过的任何东西似乎都不起作用。

Django Apache WSGI

评论


答: 暂无答案