赞
踩
最近自己买了个云服务玩,突然就想把自己写的小项目部署到云服务器上,这样就可以实现公网访问了。以下是整个部署过程和遇到的各种问题的解决方案,有想自己部署自己功能的,可以参考着进行哦。
先给你的云服务设置一个密码登录,方便用shh远程登录操作
设置好后用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的工具,将他们直接上传到服务器上,相关的工具很多,大家根据自己的习惯自己下载使用即可。最终的目的是实现将自己的代码上传到服务器上。
安装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
- pip install virtualenv
- virtualenv /envs/bom --python=python3.9
激活虚拟环境
source /envs/bom/bin/activate
从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等远程连接工具,就可以连接了。
根据你的数据库情况,设置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,即可顺利访问
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。