學(xué)習(xí)記錄:(一)在AWS的EC2上搭建apache+django

兩個月前申請了亞馬遜免費的AWS賬戶,當時很多東西都沒學(xué)習(xí),不知道什么跟什么,瞎鼓搗一番后就丟一邊了。
兩個月后,因為面試需要,想找個服務(wù)器放上一點作品,于是想起之前申請的AWS。
這回對云服務(wù)器有了點概念,在網(wǎng)上搜索了一點教程,終于知道實例指的是一個虛擬服務(wù)器,可以在這臺服務(wù)器上像對待自己的主機一樣進行各種安裝和設(shè)置。
我申請的EC2實例是運行在windows系統(tǒng)上的,首先要先用終端連接上實例,從windows的附件里選擇遠程桌面連接,用申請時獲得的密鑰在EC2實例的控制面板上得到登錄密碼,順利登錄。
登錄上后看著空空如也的桌面,一時無從下手,各種選項點擊了遍,大概摸清了這系統(tǒng)的情況,有個C盤目錄,有瀏覽器,有命令行工具。
搞清楚后打算開始安裝apache,這才發(fā)現(xiàn)一個問題,這系統(tǒng)里面沒有apache,需要下載,于是搜索了一下,發(fā)現(xiàn)可以將本地磁盤掛載到終端上,直接在磁盤間復(fù)制粘貼文件。


遠程桌面掛載磁盤

接下來就是用網(wǎng)頁下載和磁盤復(fù)制的方法,將需要的軟件下載到系統(tǒng)中,需要注意的一點是下載軟件時要版本對應(yīng):

都下載好后,先安裝vc2015,接著安裝python,裝好python后用pip安裝django,mod_wsgi,然后找一個目錄新建一個django項目。
接下來是apache的配置和安裝,這里碰到第一個難題:
1、apache安裝好后從外網(wǎng)怎么都訪問不了,后來搜索了一下說是國內(nèi)用80端口不能備案,所以aws不能用80端口,于是在實例的控制面板里向安全組新增一條規(guī)則開放8888端口,然后再在apache設(shè)置里修改監(jiān)聽此端口,這樣apache就能成功訪問了。
接著要配置apache的django模塊,這里碰到第二個難題,折騰了我一個早上的時間:
2、根據(jù)網(wǎng)上搜索的教程在apache配置文件里添加如下行:

LoadModule wsgi_module "C:/Program Files/Python/Python36/Lib/sitepackages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
WSGIPythonHome "C:/Program Files/Python/Python36"
WSGIScriptAlias / C:/pythonspace/mysite/mysite/wsgi.py
WSGIPythonPath C:/pythonspace/mysite
<Directory C:/pythonspace/mysite/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

這里就開始出問題了,apache服務(wù)怎么都啟動不了,也不顯示錯誤信息,根據(jù)排查法知道是第一句運行有問題,但是就是不知道有什么問題,在網(wǎng)上一直搜索都沒有頭緒,偶然看到有個回復(fù)提到可以查看windows event log,受此啟發(fā)在系統(tǒng)里查看了windows application error log(在命令行輸入Eventvwr.msc命令),終于看到錯誤信息:
大意就是說the specified module could not be found,識別不了wsgi模塊
想了想,因為網(wǎng)上很多教程用的是舊的版本,模塊文件都是以so為后綴名的,這次這個新版用了pyd,是不是因此就不能認啊,繼續(xù)搜索答案,終于在文章里發(fā)現(xiàn)一條說明需要先在命令行運行:

mod_wsgi-express module-config

然后出現(xiàn)以下內(nèi)容:


如圖

對比了一下發(fā)現(xiàn)少了一條:

LoadFile "c:/program files/python/python36/python36.dll"

于是在apache的LoadModule語句上面加上該條,啟動,成功了!
然后配置一下django,從外網(wǎng)訪問,也成功了!
這真的很奇怪啊,在實例服務(wù)器上需要加上LoadFile才能成功啟動,但是在我自己的機子上的配置文件里沒有加上這條也能順利啟動,不知道是哪里的問題。
總之不管怎樣,django終于能順利在apache上跑了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容