apache 无法在Ubuntu VM的Docker容器中正确运行mod_wsgi

htrmnn0y  于 2023-08-07  发布在  Apache
关注(0)|答案(1)|浏览(130)

首先,我在Windows 10中安装了Docker v4.20.1。
我可以在Windows Docker容器环境中成功运行Web应用程序。但是当我试图拉取我的映像并在Ubuntu VM(22.04)中运行时,它失败了。Apache 2的配置和文件结构是相同的。
如果我运行django测试服务器:

python /usr/src/app/caravan/manage.py runserver 0.0.0.0:8000

字符串
它可以成功运行并浏览页面(端口:8000).

但是如果我试图浏览由apache(port:80).它失败并显示“内部服务器错误”(500)

我已经检查了mod_wsgi包,它已经安装并且我启用了它:

sudo a2enmod wsgi



下面是apache 2配置:

<VirtualHost *:80>
    ServerName localhost
    ServerAdmin xxx@gmail.com

    <Directory /usr/src/app/caravan/static>
        Require all granted
    </Directory>

    <Directory /usr/src/app/caravan>
        AddHandler wsgi-script .py
        Options +ExecCGI
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>

    # Static path
    Alias /caravan/static/ /usr/src/app/caravan/static/

    # wsgi settings
    WSGIDaemonProcess site_caravan python-path=/usr/src/app/caravan:/home/ubuntu/my_env/lib/python3.10/site-packages
    WSGIScriptAlias /caravan /usr/src/app/caravan/caravan/wsgi.py process-group=site_caravan application-group=%{GLOBAL}
</VirtualHost>


和docker状态:

CONTAINER ID   IMAGE                  COMMAND                  CREATED       STATUS       PORTS                                                                          NAMES
f7e9e00d653a   phpmyadmin   "/docker-entrypoint.…"   3 hours ago   Up 2 hours   8080/tcp, 0.0.0.0:8080->80/tcp, :::8080->80/tcp                                phpmyadmin
14c291e12362   web          "./entrypoint.sh"        3 hours ago   Up 2 hours   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:8000->8000/tcp, :::8000->8000/tcp   web
d71ffa8be50a   db           "docker-entrypoint.s…"   3 hours ago   Up 2 hours   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp                           db


并且mod_wsgi. so确实存在并已加载。


x1c4d 1x的
我真的不知道为什么会出现这样的错误...因为我的Windows docker容器和Ubuntu VM docker容器的环境是完全一样的。救命啊!如果有人知道原因的话非常感谢!!

l7wslrjt

l7wslrjt1#

好吧我终于知道为什么了因为当Web应用尝试写入日志时存在权限问题,并且失败。

的数据
在我运行chmod 777到日志文件后,它现在可以正常工作了。

相关问题