记使用django+nginx搭建网站

记使用django+nginx搭建网站

本地环境

使用windows 10 & python3.8
windows10 中,在python3.8的环境下,找到django-admin,重命名为django-admin38,并加入环境变量,这样能在pyhon38的环境下运行。

搭建django工程

终端输入

django-admin38 startproject blog_website

初始化django工程
输入python manage.py runserver打开本地测试localhost:8000
在这里插入图片描述说明安装成功

服务器配置

我购买的是华为云耀服务器
使用xshell登录服务器,端口号22
更新apt-get

apt-get update
apt-get upgrade

上传代码

将代码放在根目录以外的目录中,这里上传到/home/workplace中,配合pycharm专业版,可以快速上传(方法待更新)

安装nginx

服务器系统是Ubuntu 18.04server,输入

apt-get install libpcre3 libpcre3-dev
apt-get install nginx

输入

/etc/init.d/nginx start

打开nginx服务,访问ip地址,可以看到
在这里插入图片描述注:需要将云服务器的安全组策略中指定的端口开放

配置python环境

/home文件夹下下载miniconda

cd /home
wget -c https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh

安装Mini-conda

sh Miniconda3-latest-Linux-x86_64.sh

没有权限的增加一下权限
安装路径选择/home/miniconda3,conda不进行初始化
使用vim编辑bashrc文件

vim ~/.bashrc

在文件最后添加

export  PATH="/home/miniconda3/bin:"$PATH

最后激活

source ~/.bashrc

安装python3.8

conda create -n python38 python=3.8

安装必要python库

安装django

source activate
conda activate python38
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ django

安装uWSGI

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ uwsgi

这里记录一个插曲,gcc编译错误,我这边是gcc版本过高,安装gcc4.8 删除原有软连接,建立新软链接,然后重新安装

sudo apt-get  install gcc-4.8
sudo rm /usr/bin/gcc
sudo ln -s /usr/bin/gcc-4.8 /usr/bin/gcc 

配置nginx&uwsgi

在项目根目录下创建uwsgi.ini文件

[uwsgi]
uid = www
gid = www
socket = :9001
chdir           = /home/www/blog_website
module          = blog_website.wsgi
master          = true
processes       = 2
vacuum          = true

/etc/nginx/sites-available/default51行后添加

include /etc/nginx/uwsgi_params;
uwsgi_pass     127.0.0.1:9001;

重启nginx

/etc/init.d/nginx restart

settings.py文件中将字段ALLOWED_HOSTS = []改成ALLOWED_HOSTS = ['*']
增加用户和组

/usr/sbin/groupadd www
/usr/sbin/useradd -g www www

uwsgi.ini同目录下运行

uwsgi  --ini uwsgi.ini

可看到与本地调试一样的运行结果
在这里插入图片描述

静态部署(每次发布任务都要执行)

1、修改/etc/nginx/sites-available/default

注释掉try_files $uri $uri/ =404;
添加:

location /static/ {
	alias /home/www/blog_website/static/;
}
2、创建静态目录static

在这里插入图片描述

3、执行
python manage.py collectstatic

修改settings.pydebug=False

4、重启nginx & uwsgi
/etc/init.d/nginx restart
uwsgi  --ini uwsgi.ini

可以访问"ip/admin"来测试是否成功
在这里插入图片描述

安装MySQL

执行命令

sudo apt-get install mysql-server

配置数据库

创建应用用户

mysql
create user '用户名'@'local' identified by '密码';  # 创建用户
grant all on 数据库名.* to '用户名'@'local';  # 授权
#REVOKE all on 数据库名.* to '用户名'@'local';  # 取消授权
flush privileges;  # 刷新权限

查看mysql端口号(一般是3306)

netstat -nultp

settings.py中配置

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '数据库名',
        'USER': '用户名',
        'PASSWORD': '密码',
        'HOST': '127.0.0.1',
        "PORT": '3306',
    }
}

执行

python manage.py migrate

添加后台管理员

python manage.py createsuperuser

即可访问域名或者ip登录
在这里插入图片描述

服务式启动

在路径/etc/systemd/system/WEBSITENAME.service创建文件

[Unit]
Description=PROJ's Django server by uWSGI
After=syslog.target

[Service]
ExecStart=python38下uwsgi路径 --ini 工程中uwsgi.ini路径
Restart=always
KillSignal=SIGQUIT
Type=notify
StandardError=syslog
NotifyAccess=all

[Install]
WantedBy=multi-user.target

输入

systemctl enable webserver #生效服务
systemctl status webserver #查看状态
systemctl start webserver #启动服务
#systemctl stop webserver #关闭服务

至此,配置工作完成,配合git托管代码

git init
git add *
git commit
git remote add origin yourrepository
git push origin master
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值