Apache 部署 Django 的一个小坑

最近写了个 懒癌版淘宝客网站,尝试部署了一下,没想到真的是 “开发一时爽,部署火葬场”。

现象

apache+mod_wsgi 部署 django,浏览器尝试进入,十分钟首页都出不来,curl 也是如此。但是同台服务器上的 php 网站却很溜。

解决

确定是不是代码的问题: 使用 manage.py runserver,正常。

防火墙什么的肯定都开了啊,从来不知道防火墙是个什么样的存在。

搜索了半天,最后发现 这个帖子:网站里面是不是拿 Python 调用了 C?比如 Numpy 什么的?

对啊,为了做数据导入,懒癌一般地使用了 Pandas 和 Numpy…… 看看,被坑到了把?

解决办法是在 apache 的 site conf 里面加入 WSGIApplicationGroup %{GLOBAL}

结束

毕设的网站也是部署失败里面用了各种 Numpy、Scikit-Image、Scikit-Learn、DLib……

最后拿 manage.py runserver+apache 反代临时解决的。

最后一个广告:欢迎 来这里买买买

附件:一个 Django 的部署 demo

<VirtualHost *:80>
    #ServerName buy.buy.buy
    #ServerAdmin buy@buy.buy

    Alias /static /var/www/Canteen/static
    <Directory /var/www/Canteen/static>
        Options FollowSymLinks
        Require all granted
    </Directory>

    #Alias /media /var/www/Canteen/media
    #<Directory /var/www/Canteen/media>
    #    Require all granted
    #</Directory>

    #Alias /.well-known /var/www/Canteen/.well-known
    #<Directory /var/www/Canteen/.well-known>
    #    Options FollowSymLinks
    #    Require all granted
    #</Directory>

    WSGIApplicationGroup %{GLOBAL}
    WSGIScriptAlias / /var/www/Canteen/Canteen/wsgi.py
    WSGIDaemonProcess buy.buy.buy python-path=/var/www/Canteen
    WSGIProcessGroup buy.buy.buy

    <Directory /var/www/Canteen/Canteen>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>
</VirtualHost>

参考资料

留下评论