環(huán)境:騰訊云服務器眯分、ubuntu16拌汇、Apache2、MySQL5.7弊决、Django2.2噪舀、python3.5(ubuntu自帶)
照著網(wǎng)上流程部署了Django網(wǎng)站,然而在自己電腦輸入云服務器的公網(wǎng)ip卻總是Apache的error頁面飘诗,在ubuntu輸入
cat /var/log/apache2/error.log
顯示的是 wsgi.py 文件里出錯与倡,ImportError: No module named 'django';我一直以為是/etc/apache2/sites-available/mysite.conf出錯了昆稿,一直搜索辦法纺座,一直改,然而一天都還沒解決溉潭,甚至重裝系統(tǒng)净响,換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包是否存在
這時我發(fā)現(xiàn)Apache配置沒問題,工程沒問題,Django包也存在犹芹,但是就是顯示ImportError: No module named 'django'
最終在StackOverflow上找到答案:原來是django等包安裝路徑錯了崎页,導致權限不夠。我一開始安裝用pip3 install django羽莺,用pip3 show django發(fā)現(xiàn)Django在/home/ubuntu/.local/lib/python3.5/site-packages实昨,所以我就入坑了。正確安裝是用sudo pip3 install django盐固,其他包也是要加上sudo的,這樣安裝路徑就是/usr/local/lib/python3.5/dist-packages丈挟。
總結(jié)
1刁卜、cat /var/log/apache2/error.log命令很有用的,可以知道錯誤信息曙咽。
2蛔趴、直接用ubuntu自帶的python3.5沒問題的,沒必要換3.6或3.7例朱,如果要換版本也沒問題孝情,只不過折騰久一點。
3洒嗤、部署Django可以不用虛擬環(huán)境箫荡,那樣只會更加折騰自己。
4渔隶、云服務器如果是ubuntu系統(tǒng)羔挡,遠程桌面就不要想了,只會浪費時間间唉,就算成功绞灼,得到也是黑漆漆的界面。逼著自己用純控制臺吧呈野。如果云服務器系統(tǒng)是window就可以遠程桌面了低矮。