腾讯云服务器部署个人Django web项目
程序员文章站
2022-06-11 11:30:15
...
云服务器部署个人web项目
购买服务器
腾讯云服务器,Centos 7.6
工具选择
连接服务器工具:Putty.exe, 传输文件工具:WinSCP(本机为windows系统)
配置系统环境
(非root用户加sudo,root用户不需要)
1. 更新系统,命令: sudo yum update
2. 更新python:
-
查看版本: python -V(大写"V")
-
查看是否已经安装python: whereis python(我的已安装)
我需要使用的是python3.6,切换默认Pythonmv /usr/bin/python /usr/bin/python.bak ln -s /usr/local/bin/python3.7 /usr/bin/python
-
附:在切换python3.6后,使用yum命令报错,网上搜索原因:yum基于python2编写的,会出现语法兼容问题。
解决方法:
修改yum配置文件,将python版本指向以前的旧版本:# vi /usr/bin/yum #!/usr/bin/python2.7
修改urlgrabber-ext-down文件,更改python版本:# vi /usr/libexec/urlgrabber-ext-down #!/usr/bin/python2.7
-
检查是否有pip: whereis pip
(我的已经有pip3.6 和 pip2.7)切换默认pip:mv /usr/bin/pip /usr/bin/pip.bak ln -s /usr/local/bin/pip3.7 /usr/bin/pip
3. 安装MySQL:
- 检查是否安装Mysql: rpm -qa | grep mysql
- 下载安装repo源: wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
安装: sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
安装后会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo - 安装MySQL:sudo yum install mysql-server
- 修改编码:
查看:show variables like “%char%”;
修改:set names utf8; - 重置密码:刚安装时默认密码为空
- 登录: mysql -u root -p (如果权限不足报错,可以修改文件用户组:“chgrp 组名 文件或目录”到当前用户组下, 可用:“groups 用户名”查看当前用户所属用户组)
- 命令:
mysql > use mysql; mysql > update user set password=password('新密码') where user='root'; mysql > exit;
- 重启mysql: service mysqld restart
- 为用户(root)添加远程访问权限:
GRANT ALL PRIVILEGES ON . TO [email protected]"%" IDENTIFIED BY “远程访问密码”;
附: 本机远程连接失败原因:mysql是开启了3306端口,但是服务器防火墙未开放3306端口,开启端口后即可远程访问。
4. 防火墙管理:
查看防火墙状态, 开启端口:
// 查看防火墙状态
systemctl status firewalld
// 没开启防火墙:
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
// 开启防火墙:
systemctl start firewalld
// 关闭防火墙:
systemctl stop firewalld
// 开放默认端口(3306):
firewall-cmd --permanent --zone=public --add-port=3306/tcp (临时)
firewall-cmd --permanent --zone=public --add-port=3306/tcp --permanent(永久)
// 开启后会提示 success
// 再次查看状态有:Warning: ALREADY_ENABLED: 3306:tcp 说明端口已经开启。
5. 项目部署
将win10上的django项目部署到服务器上
- 修改setting.py 文件,生成venv配置文件(我之前的项目,没有使用pipenv):
数据库连接修改为服务器对应的数据库ALLOWED_HOSTS = ['127.0.0.1', 'localhost ', '你的服务器的公网IP','域名(如果有的话)']
生成依赖文件,在cmd中或pycharm使用终端标签项切换到django的项目根目录:DATABASES = []
pip freeze > requirements.txt
- 代码拷贝:方式WinSCP,直接选择复制即可
- 环境安装及运行:
- 运行安装依赖文件:此步可能会出现很多错误,查看报错信息,网上都可以找到对应解决方案
pip install -r requirements.txt
- 运行项目:
提示以下内容说明项目启动成功:python manage.py runserver 0.0.0.0:8000 // 说明: // 8000:开通访问权限的端口号,这样外网才能访问 // python:我之前将默认python指向python3.6,此处直接使用python即可,没有需要使用python3.n
Watching for file changes with StatReloader Performing system checks... System check identified no issues (0 silenced). August 24, 2020 - 13:55:40 Django version 2.2, using settings 'MiniProjectCommunication.settings' Starting development server at http://0.0.0.0:8000/ Quit the server with CONTROL-C.
6. 总结:
到此,已经完成基本可供外部访问的Django项目配置,但还存在很多问题,后续会持续更新,并分享部署过程中遇到的问题,作为记录和分享。
推荐阅读