寒窗苦讀十年書,聞雞起舞自奮發
最近剛學了linux,需要進行Django部署環境,摸索了好長時間,功夫不負有心人,整理出了一套完整的操作流程,希望能給大家帶來一些便利.
一. 在Linux 下開啓服務, 我用的是CentOS 6.10版本
-
開啓網絡
-
vi /etc/sysconfig/network-script/ifcfg-eth0
-
退出保存
onboot=yes
-
重啓網絡服務
service network restart
-
試啓動
ping www.bai.com
安裝一些基礎庫,一般編譯軟件的時候需要,個人習慣裝完系統就安裝一下
yum -y install gcc gcc-c++ openssl-devel zlib-devel pcre pcre-devel
安裝python3.5.3
-
下載Pyhton3到/usr/local 目錄yum install wget
-
解壓cd /usr/local wget https://www.python.org/ftp/python/3.5.3/Python-3.5.3.tgz
-
進入 Python-3.5.3tar -zxvf Python-3.5.3.tgz
-
編譯安裝到指定路徑cd Python-3.5.3
-
安裝python3./configure --prefix=/usr/local/python3 --enable-shared
-
安裝完成之後 建立軟鏈接 添加變量 方便在終端中直接使用python3make && make install
-
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
-
python3 -v
python3.5安裝報錯
python3.5: error while loading shared libraries: libpython3.5m.so.1.0: cannot open shared object file: No such file or directory
原因是因爲python運行時沒有加載到libpython3.5m.so.1.0 這個庫文件 將其複製到響應目錄OK
解決方法:
[root@www Python-3.5.0]# cd /root/test/Python-3.5.0 進入解壓後的編譯目錄
[root@www Python-3.5.0]# cp libpython3.5m.so.1.0 /usr/local/lib64/
[root@www Python-3.5.0]# cp libpython3.5m.so.1.0 /usr/lib/ [root@www Python-3.5.0]# cp libpython3.5m.so.1.0 /usr/lib64/
安裝setuptools
-
wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26
-
tar -zxvf setuptools-19.6.tar.gz
-
cd setuptools-19.6
-
python3 setup.py build
-
python3 setup.py install
-
(如有報錯: RuntimeError: Compression requires the (missing) zlib module,則需要安裝yum install zlib-devel,安裝後要重新編譯 python3.5: make && make install)
安裝pip3
-
wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb
-
tar -zxvf pip-8.0.2.tar.gz
-
cd pip-8.0.2
-
python3 setup.py build
-
python3 setup.py install
-
使用pip安裝包測試: 如報錯,則缺少yum install openssl-devel,安裝完成後一樣需要重新編譯python3.5(make&&make install)
-
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
更新pip3
-
pip3 install --upgrate pip
安裝virtualenv ,建議大家都安裝一個virtualenv,方便不同版本項目管理。
-
安裝virtualenv
pip3 install virtualenv
-
建立軟鏈接
ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv
-
安裝成功在根目錄下建立兩個文件夾,主要用於存放env和網站文件的。(個人習慣,其它人可根據自己的實際情況處理)
mkdir -p /data/env mkdir -p /data/wwwroot
-
切換到/data/env/下,創建指定版本的虛擬環境。
virtualenv --python=/usr/bin/python3 pyweb
-
然後進入/data/env/pyweb/bin 啓動虛擬環境:
source activate
虛擬環境裏用python3安django和uwsgi
安裝django
pip3 install django==2.1.1
安裝uwsgi:
export LDFLAGS="-Xlinker --no-as-needed"
$ pip3 install uwsgi
建立軟連接
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi3
安裝:pip install uwsgi
-
啓動:uwsgi -x 'uwsgi.xml' 報錯:uwsgi: invalid option -- 'x' 原因:centos下,在沒有安裝libxml2時,pip安裝的uwsgi無法支持xml格式的配置文件 解決: rm ~/.cache/pip pip yum install libxml* pip uninstall uwsgi pip install uwsgi 注意刪除 ~/.cache/pip pip安裝緩存文件
關閉防火牆 或者 放開80端口
-
service iptables stop
-
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
測試uwsgi是否可用
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"]
-
uwsgi --http :9001 --wsgi-file app.py
將你的django項目放到你想放的路徑下,例如/home/www/,假設我們的Django項目名爲"myproject",裏面有一個應用叫"myapp" 在你的django項目下myproject中新建 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>
安裝nginx和配置nginx.conf文件
wget http://nginx.org/download/nginx-1.13.7.tar.gz
tar -zxvf nginx-1.13.7.tar.gz
./configure
make && make install
nginx一般默認安裝好的路徑爲/usr/local/nginx
在/user/local/nginx/conf/中打開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/; #項目靜態路徑設置
}
}
wq保存後進入/usr/local/nginx/sbin/目錄
執行./nginx -t命令先檢查配置文件是否有錯,沒有錯就執行以下命令:
./nginx
終端沒有任何提示就證明nginx啓動成功,可以通過鏈接查看nginx是否啓動成功:
http://192.168.1.111 (請將該ip替換成你的服務器ip)
訪問項目頁面
進入你的django項目路徑,執行以下命令:
uwsgi3 -x myproject.xml
# 以上步驟都沒有出錯的話,打開你的瀏覽器,輸入以下鏈接,記得關閉系統防火牆或者開放8996端口
# 出錯的話回到安裝uwsgi處 ,有解決方法
http://192.168.1.111:8996 (請將該ip替換成你的服務器ip)
網站訪問成功!