Django框架博客搭建(上)

本文介绍基于阿里云centOS7的Django框架博客搭建(上)

之前买了几个月的阿里云服务器,准备来搞毕设,寻思着捣鼓一个Django框架的项目,恰好githup上看到一个不错的博客项目,奥利给!

本文为Django框架博客搭建的基础操作,使用高级工具gunicornnginxsupervisor优化程序请看下一篇文章:Django框架博客搭建(下)

一、环境准备

  • 阿里云服务器(我的是轻量应用服务器,1核 2G内存,可以使用xshell连接上阿里云服务器,可以参考博文:https://blog.csdn.net/qq_37266079/article/details/103815699
  • github上基于Django的博客框架项目地址:https://github.com/liangliangyy/DjangoBlog,原文作者使用的是Ubuntu系统部署博客系统,但是我这边习惯使用centOS7,就使用centOS7部署。
  • 阿里云上拉取github项目(阿里云上安装git工具,clone到本地)
  • 阿里云安装python3.6环境(这里不推荐使用anaconda自带的python的版本 可能会出现问题)安装好python要知道你的python的安装位置,即python和pip可执行文件的位置(后面设置python虚拟环境回用到 可以参考博文:https://blog.csdn.net/qq_37266079/article/details/103800518

二、阿里云centOS7上MySQL的安装与配置

参考博文:https://www.jianshu.com/p/3cf566658ad6
1.在MySQL官网中下载YUM源rpm安装包:

wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

2.安装mysql源

yum localinstall mysql57-community-release-el7-8.noarch.rpm

3.检查mysql源是否安装成功

yum repolist enabled | grep "mysql.*-community.*"


4.安装MySQL

yum install mysql-community-server

5.启动MySQL服务

systemctl start mysqld

6.开机启动

systemctl enable mysqld
systemctl daemon-reload

7.使用root用户登录

mysql -uroot -p 

如果无法登录,可以使用如下步骤,请注意,我这里的密码Q1W2E3R4T5#$%qwe只是示例,请修改成你自己的密码.:

sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Q1W2E3R4T5#$%qwe';
FLUSH PRIVILEGES;
exit

8.修改mysql默认字符集

vi /etc/my.cnf #根据个人配置找到相应文件

加入

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

重启MySQL

systemctl restart mysqld

9.创建博客相关的数据库

mysql -uroot -p #进入mysql终端
CREATE USER 'djangoblog'@'localhost' IDENTIFIED BY 'DjAnGoBlOg123!@#';
CREATE DATABASE `djangoblog` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */;
GRANT all ON djangoblog.* TO 'djangoblog'@'localhost';
FLUSH PRIVILEGES;
exit #退出

同样,这里的DjAnGoBlOg123!@#密码也要改成你自己的密码。

三、修改djangoblog项目配置

前提是你已经把项目clone到本地:

修改DjangoBlog/settings.py中的DATABASES配置,如下所示,DjAnGoBlOg123!@#是你自己设置的,其他可以不动。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'djangoblog',
        'USER': 'djangoblog',
        'PASSWORD': 'DjAnGoBlOg123!@#',
        'HOST': 'localhost',
        'PORT': 3306,
        'OPTIONS': {'charset': 'utf8mb4'},
    }
}

四、项目依赖安装

首先我们要进入对应python的虚拟环境(先yum安装好virtualenv工具)

cd ~  &&  mkdir -p  python/env && cd python/env
virtualenv -p /usr/bin/python3 djangoblog
source ~/python/env/djangoblog/bin/activate

这里的/usr/bin/python3是你要使用的python的虚拟环境使用的python路径
在执行完上述命令之后,你的终端应该看起来是类似于下面的样子:
在这里插入图片描述
更多关于python的虚拟环境介绍请参考Python虚拟环境设置 这篇文章。
下面开始安装djangoblog运行所需要的依赖(已经在python的虚拟环境下),终端下执行:

cd ~/python/DjangoBlog  #进入你自己的项目路径
pip install -Ur requirements.txt  

在安装requirements.txt 中的依赖的时候,可能其中的一个无法安装就导致其他的都无法安装,这个时候看安装停止在哪个模块的,很可能就是这个模块的安装出现问题,先把这个模块先拎出来单独pip install再执行pip install -Ur requirements.txt
例如可能会遇到的问题:
centos7安装mysqlclient报错mysql_config not found
安装django-haystack报错

五、数据迁移

这里同样要进入python虚拟环境

source ~/python/env/djangoblog/bin/activate
cd ~/python/DjangoBlog  #进入你自己的项目路径
python  ./manage.py makemigrations
python  ./manage.py migrate
python  ./manage.py createsuperuser #创建超级用户
python  ./manage.py collectstatic --no-input
python  ./manage.py compress --force

六、运行项目

cd ~/python/DjangoBlog  #进入你自己的项目路径

项目运行在8000端口,这里的0.0.0.0是让它监听所有IP地址的意思,不加这个可能会导致其他浏览器无法访问

python ./manage.py runserver 0.0.0.0:8000

看到如下所示,则说明启动成功了:

如果在本地使用curl工具访问正常但是外部的浏览器无法访问,可能是防火墙设置有关

登陆你的阿里云账号,添加这样的一条防火墙规则
在这里插入图片描述
如果还是不行,在终端上再关闭防火墙

centos7防火墙操作:

查看防火墙状态

firewall-cmd --state

临时关闭防火墙

systemctl stop firewalld.service

永久关闭防火墙

systemctl disable firewalld

这些设置好了,应该就可以在浏览器上访问你的博客首页了

项目后台运行:
使用上面的source ~/python/env/djangoblog/bin/activate && cd /root/DjangoBlog/DjangoBlog && python ./manage.py runserver 0.0.0.0:8000这个命令也可以快速启动博客项目,但是只要把你终端关掉,这个项目就没了。

所以就想把这个项目后台运行,让其退出终端,程序还是在跑所以用到了nuhup命令

sudo nohup /usr/local/python3/bin/python3 /root/DjangoBlog/DjangoBlog/manage.py runserver 0.0.0.0:8000 &

这里的/usr/local/python3/bin/python3是你的python解释器位置(和你博客的python虚拟环境的一样),/root/DjangoBlog/DjangoBlog/是你的博客项目地址。这样执行命令更加不留痕迹。

在使用netstat -ntlp命令查看端口使用情况,可以看到8000端口已经在后台监听了
在这里插入图片描述
可以把这个命令放到一个脚本文件里面,就可以直接使用运行脚本文件运行程序(也可以放到环境变量中,运行项目更加方便)

本文的Django博客项目环境搭建是基础的,项目可以基本运行,使用高级工具gunicornnginxsupervisor优化程序请看下一篇文章:Django框架博客搭建(下)

最后再感谢github的作者的项目:https://github.com/liangliangyy/DjangoBlog

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值