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