centos7.4+mysql5.6+virtualenv+python3.6+nginx+uwsgi+django生產環境搭建

一 更新yum

# yum update

二 安裝gcc  lrzsz軟件

# yum install gcc   用來編譯python3.6源碼
# yum install lrzsz   用來上傳文件

三 安裝mysql5.6

3.1 下載mysql的repo源

# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

3.2 安裝mysql-community-release-el7-5.noarch.rpm包

# sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm

3.3 安裝mysql

# sudo yum install mysql-server

3.4 設置  /var/lib/mysql的訪問權限問題

# chown root /var/lib/mysql/
  重啓服務
# service mysqld restart

3.5 登陸重置密碼:

# mysql -u root -p (回車 無密碼登陸)
# mysql > use mysql;
# mysql > update user set password=password('123456') where user='root';
# mysql > exit;
 
  重啓mysql服務後才生效 
# service mysqld restart

3.6 設置遠程訪問

  前提,在阿里雲服務器上開通3306端口
mysql>use mysql;
mysql>GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";

3.7 設置utf-8字符集

  修改mysql配置文件 /etc/my.cnf   添加:
[client]
default-character-set=utf8
 
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
 

  重啓mysql服務後才生效javascript

service mysqld restart

  查看字符集php

show variables like 'character%';

四 安裝python3.6

4.1 安裝依賴環境

# yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

4.2 下載 python3

  包安裝在/usr/local/Python3
  建立目錄
# mkdir -p /usr/local/Python3
  下載
# wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz

4.3 安裝 python3

# tar -zxvf Python-3.6.1.tgz
# cd Python-3.6.5
# ./configure --prefix=/usr/local/Python3
# make
# make install

4.4 建立軟鏈接

# ln -s /usr/local/Python3/bin/python3 /usr/bin/python3

4.5 添加環境變量

# vim ~/.bash_profile
  在 .bash_profile 文件中添加 :
PATH=$PATH:$HOME/bin:/usr/local/Python3/bin
  注意:要添加到export PATH前
  生效修改內容:
# source ~/.bash_profile

4.6 檢查

檢查Python3及pip3是否正常可用:
# python3 -V
# pip3 -V

4.7 升級pip3 

# pip3 install —-upgrade pip

五 安裝virtualenv虛擬環境

5.1 安裝virtualenv

# pip3 install virtualenv

5.2 建立虛擬環境目錄

# mkdir -p /data
# mkdir -p /data/pyenv
# virtualenv -p /usr/local/Python3/bin/python3 /data/pyenv/

5.3 建立軟連接

# ln -s /data/pyenv/bin/activate /usr/bin/activate

5.4 啓動虛擬環境

# source  activate

5.5 退出虛擬環境

# deactivate

六 運行django項目

測試django項目是否能正常運行 

# mkdir -p /data/wwwroot 用來存放項目文件
# pip3 install Django
3 pip3 install pymysql
  導入已經寫好的django項目,利用django自帶的服務器,啓動項目,測試項目是否可以正常啓動
# python3 manage.py makemigrations
# python3 manage.py migrate
# python3 mange.py runserver 0.0.0.0:80

七 安裝部署uwsgi

7.1 安裝uwsgi

# pip3 install uwsgi
 
  命令測試 uwsgi 是否安裝成功(注意:必定要在項目的跟目錄下執行下面的命令)
# uwsgi --http 0.0.0.0:80 --file maci_proj/wsgi.py --static-map=/static=static

7.2 配置文件啓動

  建立配置文件路徑,通常跟你的django項目的根目錄放在同一級目錄下
# cd /data/wwwroot/
# mkdir maci  建立項目目錄
# cd maci
# mkdir script
# cd script  
# vim uwsgi.ini

  編寫啓動文件:css

[uwsgi]
# 項目目錄
chdir=/data/wwwroot/maci/maci_proj
# 指定項目的application
module=軍民.wsgi:application
# 指定sock的文件路徑
socket=/data/wwwroot/maci/script/uwsgi.sock
# 進程個數
workers=5
pidfile=/data/wwwroot/maci/script/uwsgi.pid
# 指定IP端口
http=172.18.43.213:8000
#http=47.106.128.221:80
# 指定靜態文件
#static-map=/static=/data/wwwroot/smcic/smcic_pro/static
static-map=/static=/data/wwwroot/maci/maci_proj/static
# 啓動uwsgi的用戶名和用戶組
uid=root
gid=root
# 啓用主進程
master=true
# 自動移除unix Socket和pid文件當服務中止的時候
vacuum=true
# 序列化接受的內容,若是可能的話
thunder-lock=true
# 啓用線程
enable-threads=true
# 設置自中斷時間
harakiri=30
# 設置緩衝
post-buffering=4096
# 設置日誌目錄
daemonize=/data/wwwroot/maci/script/uwsgi.log

7.3 經常使用命令

啓動:uwsgi —ini 啓動文件名.ini
中止:uwsgi —stop 啓動文件名.pid

八 安裝部署nginx

 8.1 配置yum源

# vim /etc/yum.repos.d/nginx.repo
  輸入一下內容:
[nginx]
name=nginx repo
# 下面這行centos根據你本身的操做系統修改 好比:OS/rehel
# 7是你本身Linux系統的版本,能夠經過URL查看路徑是否正確
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enable=1

8.2 安裝nginx

# yum -y install nginx
  測試安裝是否成功
# nginx
  瀏覽器訪問本機ip,出現以下畫面,成功!

8.3 配置nginx,添加本身項目的配置文件

# cd /etc/nginx/conf.d/
  建立xxx.conf文件,xxx本身命名,通常爲項目名稱。
# vim xxx.conf
  文件內容以下:
server { # 這個server標識我要配置了
    listen 80; # 我要監聽那個端口
    server_name 47.106.128.221 ; # 你訪問的路徑前面的url名稱
    access_log /var/log/nginx/access.log main; # Nginx日誌配置
    charset utf-8; # Nginx編碼
    gzip_types text/plain application/x-javascript text/css text/javascript application/x-httpd-php application/json text/json   image/jpeg image/gif image/png application/octet-stream; # 支持壓縮的類型
 
    error_page 404 /404.html; # 錯誤頁面
    error_page 500 502 503 504 /50x.html; # 錯誤頁面
 
    # 指定項目路徑uwsgi
    location / { # 這個location就和我們Django的url(r'^admin/', admin.site.urls),
        include uwsgi_params; # 導入一個Nginx模塊他是用來和uWSGI進行通信的
        uwsgi_connect_timeout 30; # 設置鏈接uWSGI超時時間
        uwsgi_pass unix:/data/wwwroot/maci/script/uwsgi.sock; # 指定uwsgi的sock>文件全部動態請求就會直接丟給他
    }
  # 指定靜態文件路徑
    location /static/ {
        alias /data/wwwroot/maci/maci_proj/static/;
        #index index.html index.htm;
    }
}

8.4 經常使用命令

# nginx                                       啓動 
# systemctl start nginx.service      啓動
# systemctl enable nginx.service   開機自啓動
# nginx -s reload                         更新配置文件

使用連接

相關文章
相關標籤/搜索