欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

腾讯云服务器部署个人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:

  1. 查看版本: python -V(大写"V")

  2. 查看是否已经安装python: whereis python(我的已安装)
    我需要使用的是python3.6,切换默认Python

    mv /usr/bin/python /usr/bin/python.bak
    ln -s /usr/local/bin/python3.7 /usr/bin/python
    
  3. 附:在切换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

  4. 检查是否有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:

  1. 检查是否安装Mysql: rpm -qa | grep mysql
  2. 下载安装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
  3. 安装MySQL:sudo yum install mysql-server
  4. 修改编码:
    查看:show variables like “%char%”;
    修改:set names utf8;
  5. 重置密码:刚安装时默认密码为空
    1. 登录: mysql -u root -p (如果权限不足报错,可以修改文件用户组:“chgrp 组名 文件或目录”到当前用户组下, 可用:“groups 用户名”查看当前用户所属用户组)
    2. 命令:
    mysql > use mysql;
    mysql > update user set password=password('新密码') where user='root';
    mysql > exit;
    
    1. 重启mysql: service mysqld restart
  6. 为用户(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项目部署到服务器上

  1. 修改setting.py 文件,生成venv配置文件(我之前的项目,没有使用pipenv):
    ALLOWED_HOSTS = ['127.0.0.1', 'localhost ', '你的服务器的公网IP','域名(如果有的话)']
    
    数据库连接修改为服务器对应的数据库
    DATABASES = [] 
    
    生成依赖文件,在cmd中或pycharm使用终端标签项切换到django的项目根目录:
    pip freeze > requirements.txt
    
  2. 代码拷贝:方式WinSCP,直接选择复制即可
  3. 环境安装及运行:
    1. 运行安装依赖文件:此步可能会出现很多错误,查看报错信息,网上都可以找到对应解决方案
    pip install -r requirements.txt
    
    1. 运行项目:
    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项目配置,但还存在很多问题,后续会持续更新,并分享部署过程中遇到的问题,作为记录和分享。