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文件由本地引入方式改成国内服务器链接引入
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐