美文网首页Python3
ubuntu 云服务器部署Apache+Django 坑1

ubuntu 云服务器部署Apache+Django 坑1

作者: 鱼小莘 | 来源:发表于2019-04-08 23:36 被阅读0次

环境:腾讯云服务器、ubuntu16、Apache2、MySQL5.7、Django2.2、python3.5(ubuntu自带)

照着网上流程部署了Django网站,然而在自己电脑输入云服务器的公网ip却总是Apache的error页面,在ubuntu输入

cat /var/log/apache2/error.log

显示的是 wsgi.py 文件里出错,ImportError: No module named 'django';我一直以为是/etc/apache2/sites-available/mysite.conf出错了,一直搜索办法,一直改,然而一天都还没解决,甚至重装系统,换python版本。。。



/etc/apache2/sites-available/mysite.conf

<VirtualHost *:80>
ServerName 129.28.68.126
ServerAlias www.floprobe.com
ServerAdmin 1696662197@qq.com

WSGIScriptAlias / /home/ubuntu/mysite/mysite/wsgi.py

Alias /media/ /home/ubuntu/mysite/media/
Alias /static/ /home/ubuntu/mysite/collected_static/

<Directory /home/ubuntu/mysite/media>
    Require all granted
</Directory>

<Directory /home/ubuntu/mysite/collected_static>
    Require all granted
</Directory>

<Directory /home/ubuntu/mysite/mysite>
<Files wsgi.py>
    Require all granted
</Files>
</Directory>
</VirtualHost>

检查错误方法有:

1、apachectl configtest 命令
2、运行python3 manage.py runserver
3、在控制台检查django包是否存在


image.png

这时我发现Apache配置没问题,工程没问题,Django包也存在,但是就是显示ImportError: No module named 'django'

最终在StackOverflow上找到答案:原来是django等包安装路径错了,导致权限不够。我一开始安装用pip3 install django,用pip3 show django发现Django在/home/ubuntu/.local/lib/python3.5/site-packages,所以我就入坑了。正确安装是用sudo pip3 install django,其他包也是要加上sudo的,这样安装路径就是/usr/local/lib/python3.5/dist-packages。

总结

1、cat /var/log/apache2/error.log命令很有用的,可以知道错误信息。
2、直接用ubuntu自带的python3.5没问题的,没必要换3.6或3.7,如果要换版本也没问题,只不过折腾久一点。
3、部署Django可以不用虚拟环境,那样只会更加折腾自己。
4、云服务器如果是ubuntu系统,远程桌面就不要想了,只会浪费时间,就算成功,得到也是黑漆漆的界面。逼着自己用纯控制台吧。如果云服务器系统是window就可以远程桌面了。

相关文章

网友评论

    本文标题:ubuntu 云服务器部署Apache+Django 坑1

    本文链接:https://www.haomeiwen.com/subject/bqxibqtx.html