赞
踩
系统一般选择CentOs7
注意区分公网ip与私网ip
使用ssh root@公网ip
进行连接
或者直接在xshell中建立对话框
关于端口
IP地址——> 电脑
端口——>程序
使用IP来区分电脑,使用端口来区分程序
22端口为ssh连接的端口
公网ip:22
3306 为mysql端口
6379为Redis端口
云服务的安全组可以自定义允许访问的端口号
安装git
yum install git
首次配置
cd /data/
mkdir www
cd /data/www/
git clone 仓库地址
>>> 码云账号+密码
更改代码
cd /data/www/demo/
git pull origin master
传统基于账号密码登录较为麻烦
基于SHH免密登录
1.在主机上生成公钥和私钥
存储在~/.ssh目录下 id_rsa私钥 id_rsa.pub公钥
ssh-keygen
回车三次2.将公钥内容设置到gitee中
cat ~/.ssh/id_rsa.pub
获取公钥3.git本地中配置ssh地址
git remote add origin ssh分享地址
- python 3.9.5
- 虚拟环境(virtualenv):不同环境进行隔离
- uwsgi: 接收用户请求(处理静态文件较差,处理python文件)
- Nginx:将请求划分为python文件(传给uwsgi)和静态文件
1.安装gcc
yum install gcc -y
2.安装Python依赖
yum install zlib zlib-devel -y
yum install bzip2 bzip2-devel -y
yum install ncurses ncurses-devel -y
yum install readline readline-devel -y
yum install xz lzma xz-devel -y
yum install sqlite sqlite-devel -y
yum install gdbm gdbm-devel -y
install tk tk-devel -y
yum install mysql-devel -y
yum install python-devel -y
yum install libffi-devel -y
下载openssl 1.1.1
1. 依赖包 安装编译 OpenSSL 所需的包,包括 gcc、make、perl 和 zlib-devel。可以通过运行以下命令完成: yum install -y gcc make perl zlib-devel 2. 安装包下载 下载 OpenSSL 1.1.1 的源码包,可以从 OpenSSL 官网下载(https://www.openssl.org/source/openssl-1.1.1.tar.gz)或使用以下命令下载: wget https://www.openssl.org/source/openssl-1.1.1.tar.gz 3. 解压 解压源码包并进入解压后的目录: tar -zxvf openssl-1.1.1.tar.gz cd openssl-1.1.1 4.初始化并编译、安装 运行以下命令编译 OpenSSL: ./config --prefix=/opt/openssl-1.1.1 make make install 5. 添加环境变量 vim /etc/profile export PATH=/opt/openssl-1.1.1/bin:$PATH export LD_LIBRARY_PATH=/opt/openssl-1.1.1/lib:$LD_LIBRARY_PATH source /etc/profile 这会在系统中安装新的 OpenSSL 版本。可以通过运行以下命令检查 OpenSSL 版本: openssl version 如果输出结果中的版本号为 1.1.1 或更高版本,则说明 OpenSSL 已成功升级。 6. 做软连接 如果还是原来的版本,没变成新版本,可以做软连接使其挂用新版本 将原来的openssl,做备份 mv /usr/bin/openssl /usr/bin/openssl_20230525bak mv /usr/lib64/openssl /usr/lib64/openssl_20230525bak 然后将新安装的OpenSSL做软连接到这个路径 ln -s /opt/openssl-1.1.1/bin/openssl /usr/bin/openssl ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1 ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1 7.重启机器 reboot 8.再执行以下命令检查 OpenSSL 版本: openssl version
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
3.下载源码 Python3.9.5
yum install wget -y
cd /data/
wget https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz
4.解压 & 编译 & 安装
tar -xvf Python-3.9.5.tgz
cd Python-3.9.5
./configure
make all
make install
5.配置腾讯源
pip3 config set global.global,index-url http://mirrors.cloud.tencent.com/pypi/simple
1.安装virtualenv
pip3 install virtualenv
2.创建虚拟环境
代码:/data/www/django_project
环境:/envs/nb
cd
mkdir /envs
virtualenv /envs/dj1 --python=python3.9
3.激活虚拟环境
source /envs/dj1/bin/activate
4.运行python文件
1.激活虚拟环境
source /envs/dj1/bin/activate
2.进入项目目录
cd /data/www/django_project
3.运行文件
python app.py
1、查看系统中是否自带安装mysql yum list installed | grep mysql 2、删除系统自带的mysql及其依赖(防止冲突) yum -y remove mysql-libs.x86_64 3、安装wget命令 yum install wget -y 4、给CentOS添加rpm源,并且选择较新的源 wget -i -c https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm 5、安装下载好的rpm文件 yum install mysql80-community-release-el7-3.noarch.rpm -y 6、使用yum安装mysql yum -y install mysql-community-server --nogpgcheck
启动
systemctl start mysqld.service
systemctl status mysqld.service
systemctl stop mysqld.service
systemctl enable mysqld.service
1、获取mysql的临时密码 grep "password" /var/log/mysqld.log 2、使用临时密码登录 mysql -uroot -p #输入密码 3、修改密码 #密码要符合mysql安全规则,否则修改不成功 ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root123@@'; 4、修改远程访问权限 create user 'test'@'%' identified by 'Test123@@'; grant all privileges on *.* to 'test'@'%' with grant option; flush privileges; 5、创建表 create database test default charset utf8 collate utf8_general_ci;
pip3 install uwsgi==2.0.20
uwsgi要安装两次,先在系统里安装一次,然后进入对应的虚拟环境安装一次。
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
注意uwsgi与python版本的关系
基本步骤
- 创建该项目的虚拟环境
- 安装项目依赖,运行项目
- 更改该项目的setting.py
- 安装uwsgi和配置uwsgi.ini
- 安装nginx和配置nginx.conf
- 开启端口防火墙
- 公网ip访问
1.创建
cd /envs
virtualenv /envs/dj1 --python=python3.9
2.激活虚拟环境
source /envs/dj1/bin/activate
3。安装需要的依赖
pip install django==3.2.3
pip install mysqlclient
pip install openpyxl
pip install pillow
...
...
...
cd /data/www/djangoProject03/djangoProject03/
vim setting.py
改变内容为:
DEBUG = True ——> DEBUG = False
ALLOWED_HOSTS = [] ——> ALLOWED_HOSTS = ['*'] 表示任何IP都可以访问网站
1.构建表
python3 manage.py makemigrations
python manage.py migrate
2.项目启动
python3 manage.py runserver
正常运行后对uwsgi进行安装
pip3 install uwsgi==2.0.20
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
cd /etc/systemd/system/ vim server_uwsgi.service ####################################### server_uwsgi.service内容为: [Unit] Description=HTTP Interface Server After=syslog.target [Service] KillSignal=SIGQUIT ExecStart=/usr/bin/uwsgi --ini /path/uwsgi.ini Restart=always Type=notify NotifyAccess=all StandardError=syslog [Install] WantedBy=multi-user.target ################################################ 将服务加入到systemd中自动启动 cd /etc/systemd/system/ systemctl enable server_uwsgi.service
在项目的根目录中(manage.py所在位置) 创建uwsgi.ini文件
[uwsgi] #配置和nginx连接的socket连接 端口随意要记住,与nginx一致 socket=127.0.0.1:8001 #配置项目路径,项目的所在目录 chdir=/data/www/djangoProject03/ #配置wsgi接口模块文件路径,也就是wsgi.py这个文件所在的目录名 wsgi-file=djangoProject03/wsgi.py #配置启动的进程数 processes=4 #配置每个进程的线程数 threads=2 #配置启动管理主进程 master=True #配置存放主进程的进程号文件 pidfile=uwsgi.pid #配置dump日志记录 daemonize=uwsgi.log`
[uWSGI] getting INI configuration from uwsgi.ini
表明uwsgi运行成功
# 启动uwsgi
uwsgi --ini uwsgi.ini
#停止运行uwsgi,通过包含主进程编号的文件设置停止项目
uwsgi --stop uwsgi.pid
#重启uwsgi
uwsgi --reload uwsgi.pid
1.安装
1.下载安装包
cd /data
wget http://nginx.org/download/nginx-1.13.7.tar.gz
2.解压
tar -zxvf nginx-1.13.7.tar.gz
3.安装
cd nginx-1.13.7
./configure
make
make install
2.配置
nginx一般默认安装好的路径为/usr/local/nginx
nginx.conf一般在/usr/local/nginx/conf/
中
删除 rm nginx.conf
新建 vim nginx.conf
文件内容为:: events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; server { listen 80; server_name 127.0.0.1:80; #改为自己的域名,没域名修改为127.0.0.1:80 charset utf-8; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8001; #端口要和uwsgi里配置的一样 uwsgi_param UWSGI_SCRIPT djangoProject03.wsgi; #wsgi.py所在的目录名+.wsgi uwsgi_param UWSGI_CHDIR /data/www/djangoProject03/; #项目路径 } location /static/ { alias /data/www/djangoProject03/app01/static/; #静态资源路径 } } }
1.判断配置文件是否有错
cd /usr/local/nginx/sbin/
./nginx -t
2.启动
./nginx -t
3.启动
1.启动 cd /usr/local/nginx/sbin/ ./nginx 2.重启 cd /usr/local/nginx/sbin/ ./nginx -s reload 3.自启动 cd /lib/systemd/system/ vim nginx.service 文件内容如下: [Unit] Description=nginx After=network.target [Service] Type=forking ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s quit PrivateTmp=true [Install] WantedBy=multi-user.target cd /lib/systemd/system/ systemctl enable nginx.service
留意:
一定要注意Uwsgi和Nginx配置文件里的项目路径和静态资源路径,填写正确了才能成功访问。不然会出现502错误。还有就是,修改Django文件和其它配置文件之后,一定要重启Uwsgi和Nginx,不然不生效。
然后在浏览器里访问服务器地址(域名),就能查看到项目。
如果想使用域名访问项目,先在域名管理后台把域名解析到服务器IP上来,之后在Nginx配置文件里绑定域名。然后在浏览器里通过绑定的域名访问项目。
关于线上部署admin后台样式没有生效的问题:
方法一:
1、在settings.py尾部:
STATIC_ROOT = os.path.join(BASE_DIR, 'static')#指定样式收集目录
#或
STATIC_ROOT = '/data/www/djangoProject03/static' #指定样式收集目录
2、收集CSS样式,在终端输入:
python manage.py collectstatic
运行这个命令之后,就会自动把后台CSS样式收集到/static/目录下。刷新页面就能恢复样式!
方法二:
在Python安装目录下(如果使用虚拟环境,则在虚拟环境目录下)找到\Lib\site-packages\django\contrib\admin\templates目录,把里面的admin目录复制到指定目录即可。
注意:收集或复制前一定先在settings里配置并指定STATIC_ROOT路径,static/ 个目录可以自己定。指定的时候一定要在settings.py和nginx里指定新的路径。不然无法生效。
有些服务器外网默认是无法访问的,因为防火墙不允许,所以要开启防火墙,让其可以访问需要访问的端口号。
1、运行命令:
firewall-cmd --get-active-zones
运行完成之后,可以看到zone名称。
2、执行下面命令打开需要打开的端口,以80端口为例
firewall-cmd --zone=public --add-port=80/tcp --permanent
3、重启防火墙
firewall-cmd --reload
4、查看端口号是否开启
firewall-cmd --query-port=80/tcp
1.列出某端口的进程
lsof -i:8000
2.kill -9 PID PID(待删除进程的pid)
#查看Uwsgi进程
ps -ef|grep uwsgi
#用kill方法把uwsgi进程杀死,然后启动uwsgi
killall -9 uwsgi
#启动方法
uwsgi -x mysite.xml
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。