当前位置:   article > 正文

[更新中]centos7.9安装python3.8,virtual,flask,uwsgi,nginx_centos7.9 python3.8

centos7.9 python3.8

文件框架

1,代码存放位置:/source
2,安装包文件存放目录:/data
3,虚拟环境存放位置:/envs
4,服务器端口:flask测试:84;uwsgi测试:85,nginx测试:86,nginx+uwsgi测试:88
5,参考: CentOS7.9系统部署(nginx+uwsgi+flask)项目

1、cetnos7.9下安装python3.8

1.1 安装gcc

yum install gcc -y

1.2 安装相关依赖

yum install zlib zlib-devel bzip2 bzip2-devel openssl openssl-devel xz lzma zx-devel ncurses ncurses-devel sqlite sqlite-devel readline readline-devel gdbm gdbm-devel tk tk-devel mysql mysql-devel python-devel libffi libffi-devel gcc make

1.3 下载python3.8源码并编译安装

cd /
mkdir data
cd data
wget wget https://www.python.org/ftp/python/3.8.16/Python-3.8.16.tgz
tar -zxvf Python-3.8.16.tgz
cd Python-3.8.16
./configure
make&&make install

1.4 pip升级

python3 -m pip install --upgrade pip

1.5 测试

pip3 -V #查看pip3版本
python3 -V:#查看python版本

2、virtualenv安装与使用

2.1 virtualenv安装

pip3 install virtualenv

2.2 创建虚拟环境(python3.8)

virtualenv /envs/flask_test --python=3.8
cd /envs/flask_test
ls
#如下所示,则表示virtualenv已经创建完成

2.3 激活虚拟环境

source /envs/flask_test/bin/activate

2.4 退出虚拟环境

deactivate

3、flask安装与使用

3.1 进入虚拟环境

source /envs/flask_test/bin/activate

3.2 在虚拟环境中安装flask

pip install flask

3.3 创建flask文件并测试

#使用xftp将app.py文件放入服务器,app.py文件如下:
  1. from flask import Flask
  2. app = Flask(__name__)
  3. @app.route('/')
  4. def hello_world():
  5. return 'Hello ,这是一个Flask测试!'
  6. if __name__ == '__main__':
  7. app.run(host="0.0.0.0", port=84)
cd /source/flask_test_code
python app.py #注意,这里使用python也可以,是因为这是在虚拟环境
说明flask安装成功

4、uwsgi安装与使用

4.1 进入虚拟环境

source /envs/flask_test/bin/activate

4.2 在虚拟环境中安装uwsgi

pip install uwsgi

4.3 添加uwsgi软连接

find / -name uwsgi
ln -s /envs/flask_test/bin/uwsgi /usr/bin/uwsgi

4.4 编辑uwsgi配置文件

vim /source/flask_test_code/uwsgi.ini
  1. [uwsgi]
  2. # 主进程
  3. master=true
  4. # 进程数
  5. processes=1
  6. # 线程数
  7. threads=20
  8. #配置工程目录
  9. chdir =/source/flask_test_code/
  10. # flask项目app文件所在的位置
  11. wsgi-file=app.py
  12. # app实例的名字
  13. callable=app
  14. # 是否启用多线程
  15. enable-threads=True
  16. # socket文件指定的位置
  17. socket = /source/flask_test_code/uwsgi.sock
  18. # 监听地址
  19. http = 0.0.0.0:85
  20. # 给权限
  21. chmod-socket = 777
  22. # 结束pid的时候自动清理pid和sock文件
  23. vacuum = true
  24. # 指定python虚拟环境位置
  25. virtualenv = /envs/flask_test/
  26. # 守护和日志
  27. daemonize=/source/flask_test_code/uwsgi.log
  28. # pid进程保存目录
  29. pidfile=/source/flask_test_code/uwsgi.pid
  30. # 每个进程单独价值flask
  31. lazy-apps = true
  32. # 禁用访问日志
  33. disable-logging = true
  34. # 一个进程处理多少个请求后重启一次
  35. max-requests = 1000
  36. # 日志最大容量多少
  37. log-maxsize = 5000000
  38. gid = root
  39. uid = root

4.5 uwsgi启动及其他操作

cd /source/flask_test_code
uwsgi --ini ./uwsgi.ini
ls
生成了uwsgi.log、uwsgi.pid和uwsgi.codk文件,说明uwsgi启动成功了
这3个文件均可手动删除
rm uwsgi.log
rm uwsgi.pid
rm uwsgi.sock
vim uwsgi.log #查看uwsgi启动过程中是否存在错误
# 其他操作
uwsgi --ini ./uwsgi.ini #启动
uwsgi --reload uwsgi.pid # 重启
uwsgi --stop uwsgi.pid # 关闭
ps -ef | grep uwsgi #查看uwsgi进程
kill -9 xxx #杀死uwsgi进程

4.6 uwsgi+flask测试

netstat -tnpl #如下图所示,说明uwsgi已经运行,且在监听85端口
vim /source/flask_test_code/app.py
修改:app.run(host="0.0.0.0", port=84) 为 app.run()
浏览器访问,如下所示,说明uwsgi和flask已经运行起来了

5、nginx安装与使用

5.1 编译安装nginx

1,激活虚拟环境 source /envs/flask_test/bin/activate
2,到nginx官网,获得稳定版下载地址http://nginx.org/download/nginx-1.22.1.tar.gz
3,
cd /data/
wget wget http://nginx.org/download/nginx-1.22.1.tar.gz
tar xf nginx-1.22.1.tar.gz
cd nginx-1.22.1
./configure --prefix=/usr/local/nginx #安装nginx,并指定安装目录
make && make install

5.2 设置nginx为系统服务

vim /usr/lib/systemd/system/nginx.service
  1. [Unit]
  2. Description=nginx - high performance web server
  3. After=network.target remote-fs.target nss-lookup.target
  4. [Service]
  5. Type=forking
  6. PIDFile=/usr/local/nginx/logs/nginx.pid
  7. ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
  8. ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
  9. ExecReload=/bin/kill -s HUP $MAINPID
  10. ExecStop=/bin/kill -s QUIT $MAINPID
  11. PrivateTmp=true
  12. [Install]
  13. WantedBy=multi-user.target
# 赋予脚本执行权限
chmod +x /usr/lib/systemd/system/nginx.service
# 设置nginx.service为系统服务
systemctl enable /usr/lib/systemd/system/nginx.service

5.2 添加niginx为软连接

ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

5.3 nginx常见操作命令

##通过系统服务操作nginx
systemctl start nginx.service
systemctl reload nginx.service
systemctl restart nginx.service
systemctl stop nginx.service
systemctl start nginx
systemctl reload nginx
systemctl restart nginx
systemctl stop nginx
systemctl status nginx # 查看nginx服务状态
nginx -t#测试nginx.conf配置文件是否正确

5.4 nginx测试

vim /usr/local/nginx/conf/nginx.conf
修改:listen 80; 为:listen 88;
nginx -t
提示:nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful,说明配置文件正确
systemctl stop nginx
systemctl start nginx
访问公网ip:88,出现欢迎界面,说明nginx配置成功

5.5 修改uwsgi的配置文件

vim /source/flask_test_code/uwsgi.ini
修改:http = 0.0.0.0:85 为:socket =127.0.0.1:3001

uwsgi --stop /source/flask_test_code/uwsgi.pid
uwsgi --ini /source/flask_test_code/uwsgi.ini

5.6 增加示例静态文件

cd /source/flask_test_code
mkdir static
用xftp向/source/flask_test_code中,放入名为:huoying.jpg的图片,以及huoying.pdf的pdf文件
vim index.html
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>静态文件测试</title>
  5. <meta charset="utf-8">
  6. </head>
  7. <body>
  8. <h1>这是一个静态文件</h1>
  9. </body>
  10. </html>

5.7 修改nginx的配置文件

vim /usr/local/nginx/conf/nginx.conf
  1. 修改:
  2. location / {
  3. root html;
  4. index index.html index.htm;
  5. }
  6. 为:
  7.     location /{
  8. include uwsgi_params;
  9. uwsgi_pass 127.0.0.1:3001;
  10. }
  11. location /static{
  12. alias /source/flask_test_code/static/;
  13. index index.html;
  14. }

5.8 nginx+uwsgi+flask测试

ps -ef|grep nginx
ps -ef|grep uwsgi
1,确保nginx和uwsgi均已正确运行
2,确保当前虚拟环境被激活
netstat -tnpl
1,确保nginx在监听88端口,uwsgi在监听127.0.0.1:3001
公网访问:公网ip:88,出现如下界面,说明可以通过nginx访问uwsgi了
公网访问:公网IP:88/static,出现如下界面,说明可以通过nginx访问静态文件
公网访问:公网IP:88/static/huoying.jpg,则会显示图片
公网访问:公网IP:88/static/huoying.pdf,则会下载文件

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/704582
推荐阅读
相关标签
  

闽ICP备14008679号