腾讯云 CentOS 8.2 64位 django部署
2021/11/24 7:09:57
本文主要是介绍腾讯云 CentOS 8.2 64位 django部署,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
CentOS 8.2 64位
1.先更新系统文件:
yum update和yum upgrade的功能是一样的,
都是将需要更新的package更新至软件源中的最新版。
区别是 yum upgrade会删除旧版本的package,而yum update则会保留。
因此如果软件依赖旧版本的package,最好是使用 yum update,确保不会出现兼容问题。
2.更新python3相关的依赖
yum -y install python3-devel libevent-devel libjpeg-devel zlib-devel
3.更新pip
python3 -m pip install --upgrade pip
查看linux系统当前安装哪几个python版本
运行以下命令查看当前linux系统已经安装了哪几个版本的python。
ll /usr/bin/pyth*
[root@VM-0-3-centos ~]# ll /usr/bin/pyth*
lrwxrwxrwx 1 root root 25 Dec 10 2019 /usr/bin/python3 -> /etc/alternatives/python3
lrwxrwxrwx 1 root root 31 May 21 02:33 /usr/bin/python3.6 -> /usr/libexec/platform-python3.6
lrwxrwxrwx 1 root root 17 May 21 02:33 /usr/bin/python3.6-config -> python3.6m-config
lrwxrwxrwx 1 root root 32 May 21 02:33 /usr/bin/python3.6m -> /usr/libexec/platform-python3.6m
lrwxrwxrwx 1 root root 39 May 21 02:33 /usr/bin/python3.6m-config -> /usr/libexec/platform-python3.6m-config
lrwxrwxrwx 1 root root 46 May 21 02:33 /usr/bin/python3.6m-x86_64-config -> /usr/libexec/platform-python3.6m-x86_64-config
lrwxrwxrwx 1 root root 32 Nov 11 16:51 /usr/bin/python3-config -> /etc/alternatives/python3-config
改python默认版本操作步骤
查看版本
:ll /usr/bin/python*
删除有的python链接
:rm /usr/bin/python
设置新链接
:ln -s /usr/bin/python3 /usr/bin/python
4.安装uwsgi
pip install uwsgi
5.测试uwsgi 根目录创建 test.py文件
# test.py
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"] # python3
#return ["Hello World"] # python2
根目录运行 uwsgi --http :8000 --wsgi-file test.py
6.安装django(与本地环境一样) 也可以最后通过requirements.txt一同安装
此处为了测试故先安装
pip install Django==3.2.9
7.上传测试django项目
注意django项目中的 settings.py文件中的
#ALLOWED_HOSTS = []
ALLOWED_HOSTS = ['*']
命令 cd 进入项目文件夹下(有 manage.py)的那个文件夹
命令:uwsgi mysite.ini
=================上面步骤uwsgi安装好了===========================
下面开始安装MySQL 5.7
查找是否有mysql
是否有包:rpm -qa|grep mysql
是否有文件:find / -name mysql
1.正式开始安装:
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum module disable mysql
yum -y install mysql-community-server
安装完成 ,
2.启动MySQL:systemctl start mysqld.service
3.查看MySQL运行状态:systemctl status mysqld.service
4.获取root用户的密码:grep "password" /var/log/mysqld.log
命令结果为:2021-11-10T05:52:57.942841Z 1 [Note] A temporary password is generated for root@localhost: Y45DZlApsb(a
复制密码:Y45DZlApsb(a
5.进入数据库:mysql -uroot -p
进入数据库必须先改密码
修改密码:(此时密码必须够复制,mysql有要求)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '@Liyin3344520';
Query OK, 0 rows affected (0.00 sec)
6.设置密码复杂度
查看选项:
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | 1 |
+--------------------------------------+--------+
7 rows in set (0.00 sec)
7.允许密码设置简单:
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)
此时已经可以设置简单的密码了:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'liyin';
但此时还有一个问题,就是因为安装了Yum Repository,以后每次yum操作都会自动更新,需要把这个卸载掉:
[root@localhost ~]# yum -y remove mysql57-community-release-el7-10.noarch
8、mysql忽略表大小写
修改 /etc/my.cnf ;
在[mysqld]下,加入一行:
lower_case_table_names=1
重启MySQL即可
systemctl enable mysqld.service ---设置开启自启动
systemctl start mysqld.service ----开启此服务
systemctl stop mysqld.service -----关闭此服务
systemctl status mysqld.service -----查看服务状态
9.设置远程访问
登录:mysql -uroot -p
mysql> grant all privileges on *.* to 'root'@'%' identified by '密码复杂度要高' with grant option;
Query OK, 0 rows affected, 1 warning (0.00 sec)
==============mysql5.7设置完成==========================
上传项目测试
django 设置
STATIC_ROOT='/static/'
python manage.py collectstatic
生成模块导入文件
pip freeze > requirements.txt
导入模块文件
pip install -r requirements.txt
===================================================
下面开始nginx设置
安装命令:sudo yum install nginx
停止服务
sudo systemctl enable nginx
启动服务
sudo systemctl start nginx
查看服务是否在运行
sudo systemctl status nginx
ps:
调整防火墙(Firewall)
FirewallD是Centos 8中的默认防火墙解决方案。
在安装过程中,Nginx使用预定义的规则创建防火墙服务文件,以允许访问HTTP(80)和HTTPS(443)端口。
使用以下命令永久打开必要的端口:
$ sudo firewall-cmd --permanent --zone=public --add-service=http
$ sudo firewall-cmd --permanent --zone=public --add-service=https
$ sudo firewall-cmd --reload
nginx配置
文件: /etc/nginx/nginx.conf
#在server节点下添加新的location项,指向uWSGI的ip与端口(即8000端口)。
server {
...
location / {
uwsgi_pass 127.0.0.1:8000; #将请求转发重定向到127.0.0.1的8000端口
include /etc/nginx/uwsgi_params;#将所有的参数转到uwsgi下
}
...
}
Nginx配置静态文件路径
上面我们讲到 Nginx 可以实现动静分离,这个时候也需要配置,可以按照如下所示进行操作,可以在 /home/feng 录下新建一个 Book_static 目录与 static 目录,它们两者是前者包含后者的关系,然后在 settings.py 文件中进行如下配置:
STATIC_ROOT='/home/feng/Book_static/static'
配置完成成后在项目的 manage.py 文件下执行下述命令,收集静态文件:
python3 manage.py collectstatic
收集完成后修改 Nginx 配置文件,在上述 server 中新添加 location /static 静态文件路由配置,重定向到指定的绝对路径:
server {
...
location /static {
static /home/feng/Book_static;
文件夹所在绝对路径,示例如下:
# 重定向,自动找到static目录
}
}
nginx 命令
接下来就是启动 Nginx 服务,使用如下命令进行启动:
$ sudo /etc/init.d/nginx start|stop|restart|status
# 或者
$ sudo service nginx start|stop|restart|status
uwsgi 重启
修改后需要先停止 uWSGI 再重新启动它,如下所示:
$ sudo uwsgi --stop uwsgi.pid
$ sudo uwsgi --ini uwsgi.ini
# uwsgi.ini file
[uwsgi]
# Django-related settings
# django项目运行的端口号
socket = 127.0.0.1:8001
# django项目的根目录,同名目录的外层
# the base directory (full path)
# chdir = /home/mysite/mysite
chdir = /root/mysite
# django项目同名目录内层自动生成的wsgi.py的路径,如果你的项目叫taobao,就填taobao.wsgi
# Django s wsgi file
module = mysite.wsgi
# 开启主进程
# process-related settings
# master
master = true
# 最大进程数量
# maximum number of worker processes
processes = 20
# 停止uwsgi时自动清理
# ... with appropriate permissions - may be needed
# chmod-socket = 664
# clear environment on exit
vacuum = true
# 指定后台输出日志信息的文件,如果遇到不能正常使用,可以使用cat /root/mysite/log/uwsgi_log.log查看报错信息
daemonize = /root/mysite/log/uwsgi_log.log
# 指定运行时候的pid文件,也可以用来停止进程, uwsgi --stop /root/mysite/log/uwsgi_pid.log
pidfile = /root/mysite/log/uwsgi_pid.log
# 指定虚拟环境,如果没有使用虚拟环境可以不用指定
;home = /usr/local/django2.2
static-map = /static=/root/mysite/static
http = 0.0.0.0:8000
这篇关于腾讯云 CentOS 8.2 64位 django部署的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23MongoDB身份认证机制揭秘!
- 2024-11-20MongoDB教程:从入门到实践详解
- 2024-11-17执行 Google Ads API 查询后返回的是空数组什么原因?-icode9专业技术文章分享
- 2024-11-17google广告数据不同经理账户下的凭证可以获取对方的api数据吗?-icode9专业技术文章分享
- 2024-11-15SendGrid 的 Go 客户端库怎么实现同时向多个邮箱发送邮件?-icode9专业技术文章分享
- 2024-11-15SendGrid 的 Go 客户端库怎么设置header 和 标签tag 呢?-icode9专业技术文章分享
- 2024-11-12Cargo deny安装指路
- 2024-11-02MongoDB项目实战:从入门到初级应用
- 2024-11-01随时随地一键转录,Google Cloud 新模型 Chirp 2 让语音识别更上一层楼
- 2024-10-25Google Cloud动手实验详解:如何在Cloud Run上开发无服务器应用