部署Django项目到华为云服务器教程
Ubuntu 20.04 + Python3.7 + mysql5.7 + Django4.1.3 + 宝塔Linux面板django项目部署到华为云服务器
Ubuntu 20.04 + Python3.7 + mysql5.7 + Django4.1.3 + 宝塔Linux面板
文章目录
1、连接华为云服务器
2、安装宝塔linux面板
在命令行中输入Ubuntu的安装脚本:
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
安装成功后会出现一下信息:可以看到外网和内网的访问面板,我们在Windows端使用外网面板地址即可访问,然后输入对应的username和password。
如果第二次登录宝塔忘记宝塔界面ip或者密码,在命令行输入bt
即可查看宝塔界面信息
这里我先安装了MySQL5.7,因为别的软件暂时用不到,我就没有安装。安装成功后可以到面板左下角有个软件商店查看。
3、安装项目对应的python版本
输入python -V 查看服务器python版本。
这里我用的是3.7版本,大家可以按照自己django项目的python版本进行安装。
# 在开始安装Python之前,请在系统上安装一些必需的软件包。登录到您的Ubuntu系统并执行以下命令:
sudo apt update
sudo apt install software-properties-common
# 使用Apt-Get安装Python 3.7
# Apt软件包管理器提供了在Ubuntu系统上安装Python 3.7的简单方法。请按照以下步骤操作:
# 打开系统上的终端,然后为系统配置Deadsnakes PPA。
sudo add-apt-repository ppa:deadsnakes/ppa
# 在Ubuntu系统上添加ppa后,更新apt缓存并在Ubuntu上安装Python 3.7
sudo apt update
sudo apt install python3.7
# 等待安装完成。通过执行以下命令检查Python版本:
python3.7 -V
# 至此,Python 3.7已安装在Ubuntu系统上并可以使用。
创建软链接:
# 重新指定python为python3的软连接
sudo ln -s /usr/bin/python3.7 /usr/bin/python
查看最后是否安装成功:
pyhton -V
4、安装虚拟环境(防止意外发生导致系统奔溃):
apt-get update
apt-get upgrade
pip install virtualenv
cd ~
cd /home
virtualenv django #在django文件夹下创建虚拟环境
cd django
source bin/activate #激活虚拟环境
如下图左端有(django)标识,则表示创建成功
5、安装mysqlclient
这里因为我们在最开始宝塔界面创建时就选中了mysql5.7的安装,所以这部分可以跳过。
但注意mysql在宝塔中安装后,它的默认密码需要自己找并可以修改,如下图。
6、将Django项目文件上传至华为云服务器
有两种上传文件的方式:
- 使用宝塔自带的文件传输功能(但单次只能上传1000个文件)。(在宝塔页面左侧栏)
- 使用xftp软件传输
这里由于我的项目文件数量超过1000,所以选择使用了xftp传输,如下图。
7、本地数据库上传到服务器
我平时使用的数据库软件是navicat,用它把数据库文件导出->test1.sql
然后将数据库文件上传至服务器,方法同上,用xftp传输。
Django文件和sql文件均放到:/home/django/
进入到sql文件目录下:
cd /home/django
登录数据库:
mysql -u root -p
然后输入刚在宝塔界面修改的数据库密码后登录,如下图,显示登录成功
运行刚上传进来的sql文件,将具体数据上传到服务器中
(注意:在运行sql文件前,现在数据中创建与sql文件名字相同的数据库,我这里是test1)
create databses test1;
use test1;
source test1.sql;
show tables;
8、修改上传到服务器的django文件中的seeting.py文件
这一操作可直接在宝塔面板中进行进行:找到文件 —> 双击修改
目的:
-
使得其他ip也能够访问Django项目
-
修改mysql配置的账号密码
9、安装Django项目的依赖库
(注:这一步要在之前的虚拟环境中进行,即命令行前带有“(django)”标识,详情见第4步)
-
在本地的Django项目中导出相关依赖库:
pip freeze > requirements.txt
导出文件后上传至服务器/home/django路径下 -
进入到服务器requirements.txt文件的目录下
cd /home/Django
查看依赖库
cat requirenment.txt
(注:若文件中有不是“xxx==xxx”的内容,把它们全部删掉,我之前导出的文件中有大量其他内容,导致无法正常运行,删掉无关内容后即可,如上图) -
读取安装依赖库
pip install -r requirements.txt
若安装报错,可参考下文:
/usr/bin/ld: cannot find -lssl
/usr/bin/ld: cannot find -lcrypto
collect2: error: ld returned 1 exit status
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
apt-get install openssl
apt-get install libssl
#无法安装libssl可以尝试安装libssl-dev
root@hecs-x-medium-2-linux-20200704093014:/home/proj_lab# apt-get install libssl
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libssl
dpkg --add-architecture i386
apt-get update
apt-get install libssl-dev:i386
pip install -r requirenment.txt # 安装依赖
pip list # 查看已安装的库
10、启动Django项目
(启动也需要在虚拟环境下进行启动,即命令行前带有“(django)”标识,详见第4步)
运行项目(分为两种,一种是前台运行,一种是后台运行)
- 前台运行(关闭远程后程序会结束运行)
python manage.py runserver 0.0.0.0:8080
- 后台运行(关闭远程后程序不会结束运行)
nohup python manage.py runserver 0.0.0.0:8080 &
注:运行时按ctrl +c 前台运行的情况可以终止运行,但是后台运行的情况不能,当时用后台运行时只能通过杀死线程的方式终止
杀死线程:
lsof -i:80 #来查询80端口信息
kill -9 #查到的PID
此时如上图,表明项目已经成功启动,在Windows端输入外网ip+端口号即可访问网站。
可能会出现如下图访问时间过长,失败的结果:
这个是因为服务器的8080端口不对外开放,我们需要去华为云界面把8080端口对外开放:
-
进入华为云,找到自己的服务器,点击“更多”,找到“更改安全组
-
点击“新建安全组”,添加端口
-
点击“配置规则”,选择快速添加规则
再点击“添加规则”,添加“8888”端口,这是关键
-
最关键的一步来了!!!自己添加的规则,一定要关联实例,否则会出现无法访问宝塔面板
关闭防火墙
最后记得进入宝塔界面,把服务器防火墙关掉即可,这样外界就可以访问这个端口的数据了!
由于带宽限制,做了一些优化来加快访问速度:
1、把之前13M的背景图片缩小成100kb的图片;
2、把部分js文件由本地引入方式改成国内服务器链接引入
更多推荐
所有评论(0)