為了建立一個工作站,也是麻煩了....
感謝該博主:
https://www.cnblogs.com/levelksk/p/7921066.html
1.安裝centos 后首先安裝python,下載解壓安裝和以前一樣,但是注意 python3.7使用起來在 pycharm下建立django遇到bug,可能是我的pycharm版本不夠高的原因吧。
后來重新安裝python3.6,故障解除。
2.
(nginx+uwsgi+python3+django) 使用該方式,注意盡量開啟root來配置,不然會出現各種問題
在早期使用ubuntu遇到眾多問題,無奈放棄,轉到centos,ubuntu用起來也不夠穩定,亟待加強.
3.來源於該博主文章,是一個可靠的博文,沒有遇到其他異常狀況
1、安裝各類基礎模塊
yum gcc-c++
注:此命令我沒有運行成功
(為centos系統增加編譯功能)
yum install wget openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel
注:此命令正常
(安裝這些模塊都是為了成功編譯安裝python3,防止出現各種異常)
yum install libxml*
注:此命令正常
(安裝這個模塊是為了讓uwsig支持使用“-x"選項,能通過xml文件啟動項目)
2、編譯安裝python3(我已經安裝好了python3.6所以跳過此步驟)
進入home路徑(本人喜歡把東西都下載到這里),執行以下命令:
wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
下載完成后,執行解壓命令:
tar -zxvf Python-3.6.3.tar.gz
進入解壓后的Python-3.6.3文件夾,依次執行以下命令
./configure --prefix=/usr/local/python3
(將python3安裝到/usr/local/python3/路徑下)
make -j2 make install -j2 ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
注:此命令正常
(以上兩個ln命令是為了方便在終端中直接使用python3和pip3命令 )
3、給python3安裝django和uwsgi以及配置啟動項目的xml文件
pip3 install django pip3 install uwsgi
注:此命令正常
為了在終端中使用uwsgi命令,執行以下命令
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi3
將你的django項目放到你想放的路徑下,例如/home/www/,假設我們的Django項目名為"myproject",里面有一個應用叫"myapp"
在你的django項目下新建 myproject.xml,內容如下:
<uwsgi> <socket>127.0.0.1:8997</socket><!-- 內部端口,自定義 --> <chdir>/home/www/myproject</chdir><!-- 項目路徑 --> <module>myproject.wsgi</module> <processes>4</processes> <!-- 進程數 --> <daemonize>uwsgi.log</daemonize><!-- 日志文件 --> </uwsgi>
wq保存
注:此命令正常,對於用不慣Vm的人來說,gedit是個好的選擇,注意打開文件要用 root不然提示沒有權限。其中有很多命令都需要root,如果狐仙莫名其妙的問題
請開啟root
4、安裝nginx和配置nginx.conf文件
進入home目錄,執行以下命令:
wget http://nginx.org/download/nginx-1.13.7.tar.gz
注:此命令正常
下載完成后,執行解壓命令:
tar -zxvf nginx-1.13.7.tar.gz
注:此命令正常
進入解壓后的nginx-1.13.7文件夾,依次執行以下命令:
注意要進入nginx-1.13.7文件夾執行以下命令
cd nginx-1.13.7
./configure
make&make install
注:此命令正常 ,注意要root權限
nginx一般默認安裝好的路徑為/usr/local/nginx
在/usr/local/nginx/conf/中打開nginx.conf,加入以下內容
cd /usr/local/nginx/conf/
server { listen 8996; #暴露給外部訪問的端口 server_name localhost; charset utf-8; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8997; #外部訪問8996就轉發到內部8997 } location /static/ { alias /home/www/myproject/myapp/static/; #項目靜態路徑設置 } }
(以上內容請保證在默認內容的大括號內)
注:此命令正常,nginx.conf 文件下面就有這幾行你解注釋就好了
有必要說明這種
nginx+uwsgi
工作原理:
nginx負責建立一個本地的工作環境,就是本地服務器,類似於pycharm的 run調試django一樣,可以打開一個 http:127.0.0.1的本地服務頁面
並開啟一個可使用的端口。
uwsgi 負責轉發,將外網發過來的請求轉發給 nginx,nginx就像處理內部訪問一樣來處理請求。(所以他們的端口明顯不一樣)
wq保存后進入/usr/local/nginx/sbin/目錄
執行
cd /usr/local/nginx/sbin/
./nginx -t
此命令需要root不然報錯
命令先檢查配置文件是否有錯,沒有錯就執行以下命令:
./nginx
終止
pkill -9 nginx
終端沒有任何提示就證明nginx啟動成功,可以通過鏈接查看nginx是否啟動成功:
http://192.168.1.111 (請將該ip替換成你的服務器ip)
注:你可以輸入來避免輸入ip
localhost
5、訪問項目頁面
進入你的django項目路徑,執行以下命令:
uwsgi3 -x myproject.xml
注:執行該xml后django就算是啟動了,內部的nginx服務也將被啟動,uwsgi將能夠連接到nginx的服務了,此時網絡應該是通暢的了。
以上步驟都沒有出錯的話,打開你的瀏覽器,輸入以下鏈接,記得關閉系統防火牆或者開放8996端口
http://192.168.1.111:8996 (請將該ip替換成你的服務器ip)
網站訪問成功!
localhost:8996
注:你可以輸入來避免輸入ip,此時將能夠訪問Django的網頁了,enjoy yourself
釋疑:localhost 在本地就是沒有特別的意義,一旦搖了服務器,我們就可以輸入服務器地址訪問了