将自己的django项目部署到云服务器(腾讯云centos)

2023-12-13 15:36:20

最近自己买了个云服务玩,突然就想把自己写的小项目部署到云服务器上,这样就可以实现公网访问了。以下是整个部署过程和遇到的各种问题的解决方案,有想自己部署自己功能的,可以参考着进行哦。

1、设置好腾讯云的远程登录代码

先给你的云服务设置一个密码登录,方便用shh远程登录操作

2、拉取仓库中的代码

设置好后用shh工具远程登录后,创建一个文件夹存放你的django项目文件

mkdir /data
cd data
mkdir www
cd /data/www

安装git ,方便从gitee上拉取代码

yum install git -y

拉取代码

git clone https://gitee.com/... ... ---这个地方是自己的仓库地址

拉取的时候会需要输入gitee的账户和密码

拉取成功后,在www下面会增加代码的文件夹,这里的bom就是我的项目文件

当然,如果你的代码并没有托管到远程仓库上,一直在本地,你也可以使用shh的工具,将他们直接上传到服务器上,相关的工具很多,大家根据自己的习惯自己下载使用即可。最终的目的是实现将自己的代码上传到服务器上。

3、配置python环境

安装gcc

yum install gcc -y

安装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 openssl openssl-devel -y
yum install xz lzma xz-devel -y
yum install sqlite sqlite-devel
yum install gdbm gdbm-devel -y
yum install tk tk-devel -y
yum install mysql-devel -y
yum install python-devel -y
yum install libffi-devel -y
yum install?libffi libffi-devel?-y 

下载wget

yum install wget -y

Python 安装包路径:(就是python官网上找自己需要的版本,最好不要找太新的,很多相应的服务器上的匹配都没有那么新,我用的是3.9,已经算很新啦)

https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz

wget https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz

解压&编译&安装

在压缩包所在的目录下,依次执行以下语句

tar -xvf Python-3.9.5.tgz 
cd Python-3.9.5/
./configure
make all
make install

4、安装虚拟环境

pip install virtualenv
virtualenv /envs/bom --python=python3.9

激活虚拟环境

source  /envs/bom/bin/activate

5、安装mysql

从mysql官网上下载仓库

wget  https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm

下载后可以查看是否下载成功

yum repolist|grep mysql

执行命令后能看到如下代码

(bom) [r data]# yum repolist|grep mysql
mysql-connectors-community/x86_64    MySQL Connectors Community              178
mysql-tools-community/x86_64         MySQL Tools Community                    85
mysql80-community/x86_64             MySQL 8.0 Community Server              395

默认安装的是mysql8.0的,我们需要安装mysql5.7版本的,这里需要我们修改配置

 vim /etc/yum.repos.d/mysql-community.repo

请参照截图修改

然后执行安装语句

 yum install mysql-community-server

设置mysql开机自启动

systemctl enable mysqld
systemctl start mysqld

查看一下是否启动成功

ps -aux|grep -v grep|grep mysql

查看mysql的版本

mysql --version

安装好后默认是不需要密码登录,这是因为在服务器上有特殊的账号配置

输入:

mysql -u root -p

回车不用输入密码即可登录

创建database

create database bom default charset utf8 collate utf8_general_ci;

创建账号admin,密码12345678

insert into mysql.user(user,host,password) values('admin','%',password('12345678'));

刷新权限

flush privileges;

授权各个ip均可访问(实际使用中要谨慎,一般都会设定固定的ip和对应操作权限,不会像自己学习的时候给这么大权限,设置完毕后要手动刷新)

grant all privileges on bom.* to admin@'%';
flush privileges;

这个时候如果用navicat去远程连接,基本上都是连不上的,这是因为防火墙的原因。你需要开通3306端口,如果你也是买的云服务器,你除了命令行操作以外,你还需要去服务器的安全组(或者防火墙上开通3306端口)

(bom) []# systemctl start firewalld.service
(bom) []# firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
(bom) []# firewall-cmd --reload
success

这个时候你再用navicat等远程连接工具,就可以连接了。

6、更改django项目中的配置

根据你的数据库情况,设置setting中的配置

关闭DEBUG模式

DEBUG = False

添加对静态文件的配置

7、开发django应用的端口,运行程序

开放9999端口

firewall-cmd --zone=public --add-port=9999/tcp --permanent
firewall-cmd --reload

别忘了在腾讯云上开发端口

在manage.py所在的目录下执行

python manage.py runserver 0.0.0.0:9999

在服务器里输入公网ip,即可顺利访问

文章来源:https://blog.csdn.net/xiaodaimu00/article/details/134968325
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。