CentOS7 + Python3 + Django(rest_framework) + MySQL + nginx + uwsgi 部署 API 開發環境, 記坑篇

 

CentOS7 + Python3 + Django(rest_framework) + MySQL + nginx + uwsgi 部署 API 開發環境html

Python環境搭建

Python2 3共存

python -V 查看Python版本python

安裝Python3

下載安裝相關包mysql

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc makenginx

備份sql

cd /usr/bin
mv python python.bakdjango

安裝vim

wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tar.xzcentos

解壓api

tar -xvJf Python-3.6.3.tar.xz瀏覽器

切換進入

cd Python-3.6.3

編譯安裝

./configure prefix=/usr/local/python3
make && make install

Python 2 3共存

添加Python3軟鏈

rm /usr/bin/python
ln -s /usr/local/python3/bin/python3 /usr/bin/python
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

升級pip3到最新版本

pip3 install –upgrade pip

這時候在執行命令python -v和python2 -V,應該就能看到python3和python2的版本了。
由於執行yum須要python2版本,因此咱們還要修改yum的配置,執行:

vi /usr/bin/yum
把#! /usr/bin/python修改成#! /usr/bin/python2
vi /usr/libexec/urlgrabber-ext-down
文件裏面的#! /usr/bin/python 也要修改成#! /usr/bin/python2

MySQL環境搭建

下載MySQL源安裝包, 仍是用57吧

wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

安裝MySQL源

yum localinstall mysql57-community-release-el7-8.noarch.rpm
yum install mysql-devel

安裝MySQL

yum install mysql-community-server

進入MySQL目錄

cd /usr/bin

啓動MySQL

systemctl start mysqld

查看MySQL狀態

systemctl status mysqld

設置MySQL開機啓動

systemctl enable mysqld

修改root本地登陸密碼(密碼必須包含:大小寫字母、數字和特殊符號,而且長度不能少於8位)

grep ‘temporary password’ /var/log/mysqld.log
mysql -uroot -p
set password for ‘root’@’localhost’=password(‘!2Qw32sd’);

uwsgi安裝配置

uwsgi 安裝

使用pip3安裝

pip3 install uwsgi

建立uwsgi軟連接

ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi3

測試uwsgi是否可用

  1. 創建測試腳本test.py
def application(env, start_response):
start_response( '200 OK', [( 'Content-Type', 'text/html')])
return [b "Hello uwsgi!"]
  1. 運行腳本

uwsgi –http :8000 –wsgi-file test.py
瀏覽器輸入IP:端口: 若是能夠看到 ‘hello uwsgi’, 配置完成

uwsgi 設置

進入項目目錄

cd /var/www/myproject

建立編輯 uwsgi 配置文件(文件名自起)
vim uwsgiset.xml

內容以下

<uwsgi>
<socket>127.0.0.1:8997</socket> <!-- 內部端口,自定義 -->
<chdir>/var/www/myproject</chdir><!-- 項目目錄 -->
<module>myproject.wsgi</module><!-- wsgi 啓動文件 -->
<processes>4</processes> <!-- 進程數 -->
<daemonize>uwsgi.log</daemonize><!-- 日誌文件路徑 -->
<pidfile>uwsgi.pid</pidfile><!-- uwsgi 管理文件路徑,用來重啓 uwsgi -->
</uwsgi>

在項目目錄( /var/www/myproject )下啓動:

uwsgi3 -x uwsgiset.xml

提醒 [uWSGI] parsing config file myproject.xml 則啓用成功
注意僅僅是啓用成功

Nginx安裝配置

Ngxin安裝

直接下載.tar.gz安裝包,地址:https://nginx.org/en/download.html
推薦選擇穩定版下載 : 當前版本 1.12.2

wget -c https://nginx.org/download/nginx-1.12.2.tar.gz

解壓

tar -zxvf nginx-1.12.2.tar.gz

編譯前初始化配置

cd nginx-1.12.2 # 進入nginx目錄
./configure # 使用默認配置

編譯安裝

make
make install

查找安裝路徑

[root@Ryoma nginx-1.12.2]#whereis nginx
nginx: /usr/local/nginx

啓動、中止 nginx

cd /usr/local/nginx/sbin/ # 進入 nginx sbin 目錄
./nginx # 啓動 nginx
./nginx -s quit # 此方式中止步驟是待 nginx 進程處理任務完畢進行中止
./nginx -s stop # 此方式至關於先查出 nginx 進程id再使用kill命令強制殺掉進程
./nginx -s reload # 從新加載

查詢 nginx 進程:

ps aux|grep nginx

配置Nginx文件

cd /usr/local/nginx/conf/
vim nginx.conf

server {
listen 80;
server_name 127.0.0.1;
index index.py index.html;
# 項目根目錄
root /home/myapp/sjk-qasystem/admin-api/QAadmin/qaproject;
#charset koi8-r;
 
#access_log logs/host.access.log main;
 
location / {
include uwsgi_params;
# 這裏的端口號要和uwsgi配置文件裏相同
uwsgi_pass 127.0.0.1:8997;
}

保存nginx.conf執行

nginx -t 命令檢查配置文件是否有錯 ./nginx -s reload 重啓Nginx

相關文章
相關標籤/搜索