学习内容一:DjangoBlog部署

DjangoBlog部署教程

DjangoBlog的gitee地址

这是一个python网站源码以及部署教程,部署起来用到了各方面的知识,你看下能否根据教程把程序部署起来,并且理解教程中每一步操作是做什么的

准备工作

升级系统

首先需要升级系统到最新版,终端下执行:

sudo apt update
sudo apt upgrade -y

update 命令只会获得系统上所有包的最新信息,并不会下载或者安装任何一个包。而是 apt upgrade 命令来把这些包下载和升级到最新版本。

sudo apt update 是用于更新本地软件包列表的命令。当你运行这个命令时,系统会检查软件包管理系统的仓库以获取最新的软件包信息,但并不会实际安装任何新软件包。

sudo apt upgrade -y 是用于升级系统中已安装软件包的命令。-y 选项表示在询问是否升级时自动选择“是”。这个命令将安装所有可用的更新软件包,以确保系统中的所有软件都是最新版本。

综合起来,这两个命令一起使用可以确保你的系统软件包列表是最新的,并且已安装的软件包也都是最新版本。

待完成更新之后,建议重新启动下系统,再进行后面的操作。终端下执行:

sudo reboot

sudo reboot 是用于重新启动系统的命令。通过使用 sudo,你将以超级用户或管理员的身份运行这个命令,因此需要输入管理员密码。

执行这个命令后,系统会立即开始重新启动过程,关闭所有运行的程序和服务,然后重新启动计算机。这在需要应用某些系统级别的更改、安装新内核或进行其他需要重新启动的操作时是常见的做法。

待系统启动后,可以开始安装依赖的mysql以及python环境了。

安装依赖

终端下执行:

sudo apt install mysql-server -y #安装mysql
sudo apt install python3-dev python3-pip python-pip memcached virtualenv -y #安装pip和memcached

pip 是 Python 软件包管理工具,而 memcached 是用于分布式内存缓存的系统。它们分别用于不同的用途和环境。

pipmemcached 是两个不同的软件工具。

  1. pip:
    • 定义: pip 是 Python 的包管理器,用于安装和管理 Python 包(即 Python 软件库)。作用: 它简化了 Python 软件包的安装过程,可以自动下载并安装依赖项,使得在 Python 环境中使用第三方库更加方便。
    例如,使用 pip 安装一个 Python 包的命令可能是:
    • pip install 包名
  2. memcached:
    • 定义: memcached 是一个高性能的分布式内存对象缓存系统。
    • 作用: 它被设计用于加速动态 Web 应用程序通过减轻数据库负载来提高性能。memcached 将数据存储在内存中,以便快速检索,从而加速应用程序的响应时间。
    memcached 是一个服务器,可以在多个应用程序之间共享数据。应用程序可以将数据存储在 memcached 中,并在需要时从中检索,而无需每次都从数据库中获取数据,从而减轻了数据库的负担。
  1. python3-dev:
    • python3-dev 包含用于编译 Python 扩展模块的文件和头文件。
  2. python3-pip:
    • python3-pip 是 Python 3 版本的 pip,即 Python 包管理器,用于安装和管理 Python 包。
  3. python-pip:
    • python-pip 是 Python 2 版本的 pip,尽管 Python 2 已经不再得到官方支持,但仍然可能需要安装这个版本的 pip,具体取决于项目的需求。
  4. memcached:
    • memcached 是分布式内存对象缓存系统,用于提高动态 Web 应用程序的性能。
  5. virtualenv:
  6. virtualenv 是用于创建 Python 虚拟环境的工具。虚拟环境允许在同一系统上独立地管理不同项目的 Python 包依赖关系,以避免冲突。
sudo apt install supervisor -y

supervisor:

  • supervisor 是一个进程控制系统,用于监控和管理在系统上运行的进程。它可以确保进程在意外退出时能够重新启动,提高系统的稳定性。
sudo apt install nginx -y

安装nginx

sudo apt-get install python-dev default-libmysqlclient-dev

安装mysqlclient依赖

这个命令是在一个基于 Debian 或 Ubuntu 的 Linux 系统上,使用 apt-get 包管理器安装两个 Python 开发相关的软件包:python-devdefault-libmysqlclient-dev

  1. python-dev:
    • python-dev 是一个包,其中包含了用于编译 Python 扩展模块的文件和头文件。这些文件通常在安装某些 Python 库时需要。
  2. default-libmysqlclient-dev:
    • default-libmysqlclient-dev 是用于 MySQL 数据库的开发文件包。它包含了编写使用 MySQL 的应用程序或 Python 的 MySQL 扩展时所需的头文件和库文件。

综合起来,这个命令的目的是以管理员权限安装两个软件包:python-dev(Python 开发所需的文件)和 default-libmysqlclient-dev(MySQL 数据库开发文件)。这通常是为了确保在编译和安装某些 Python 库时有必要的依赖项。

mkdir -p  python/env && cd python/env
  1. mkdir -p python/env:
    • mkdir 是创建目录的命令。
    • -p 选项表示递归地创建目录,即如果父目录不存在,也会一并创建。
    • python/env 是要创建的目录路径,这里创建了一个名为 env 的子目录在名为 python 的父目录中。
  2. &&:
    • && 是命令连接符,表示在前一个命令成功执行后才执行下一个命令。
  3. cd python/env:
    • cd 是切换当前工作目录的命令。
    • python/env 是要切换到的目录路径,这里切换到了之前创建的 env 子目录。

综合起来,这个命令的目的是在当前工作目录下创建一个名为 python 的目录,并在其中创建一个名为 env 的子目录,然后切换到新创建的 env 目录中。这通常用于设置项目的虚拟环境,以便在其中安装和管理项目特定的 Python 包和依赖项。

virtualenv -p /usr/bin/python3 djangoblog

这个命令使用了 virtualenv 工具来创建一个名为 djangoblog 的 Python 虚拟环境,并指定使用 /usr/bin/python3 作为 Python 解释器。

让我们逐步解释这个命令:

  1. virtualenv:
    • virtualenv 是用于创建 Python 虚拟环境的工具。虚拟环境允许在同一系统上独立地管理不同项目的 Python 包依赖关系,以避免冲突。
  2. -p /usr/bin/python3:
    • -p 选项用于指定要在虚拟环境中使用的 Python 解释器。在这里,/usr/bin/python3 是 Python 3 的解释器路径。
  3. djangoblog:
    • djangoblog 是虚拟环境的名称,你可以根据项目的名称或需求选择一个合适的名称。

综合起来,这个命令的目的是使用 virtualenv 创建一个名为 djangoblog 的 Python 虚拟环境,并在这个环境中使用 /usr/bin/python3 作为 Python 解释器。一旦虚拟环境创建完成,你可以激活该虚拟环境并在其中安装和管理项目所需的 Python 包,而不会影响到系统的全局 Python 环境。

source djangoblog/bin/activate

这个命令用于激活之前创建的 Python 虚拟环境,其中 djangoblog 是虚拟环境的名称。让我们解释这个命令:

  1. source:
    • source 是一个 shell 命令,用于在当前 shell 进程中运行指定的脚本。在这个上下文中,它用于运行虚拟环境中的激活脚本。
  2. djangoblog/bin/activate:
    • djangoblog/bin/activate 是虚拟环境中的激活脚本的路径。这个脚本包含了一系列设置,以确保当前 shell 使用虚拟环境中的 Python 解释器和相关工具。

综合起来,这个命令的目的是在当前 shell 中激活名为 djangoblog 的 Python 虚拟环境。一旦虚拟环境被激活,你可以在该环境中安装和运行项目所需的 Python 包,而不会影响到系统的全局 Python 环境。在激活状态下,你会注意到 shell 提示符的变化,显示当前处于虚拟环境中。

在执行完上述命令之后,你的终端应该看起来是类似于下面的样子: 

更多关于python的虚拟环境介绍请参考Python虚拟环境设置 这篇文章。

下面开始安装djangoblog运行所需要的依赖,终端下执行:

source ~/python/env/djangoblog/bin/activate cd ~/python/DjangoBlog pip install -Ur requirements.txt

这一系列命令是在一个典型的 Python 项目中设置虚拟环境、进入项目目录、并安装项目的依赖项。让我们逐步解释:

  1. source ~/python/env/djangoblog/bin/activate:
    • 这个命令使用 source 激活了一个名为 djangoblog 的 Python 虚拟环境。这个虚拟环境是在路径 ~/python/env/djangoblog 下创建的。一旦虚拟环境被激活,当前 shell 将使用虚拟环境中的 Python 解释器和相关工具。
  2. cd ~/python/DjangoBlog:
    • 这个命令用于改变当前工作目录到 ~/python/DjangoBlog。这是项目的根目录,可能包含项目的代码和其他文件。
  3. pip install -Ur requirements.txt:
    • 这个命令使用 pip 安装项目所需的 Python 包,这些包的列表定义在 requirements.txt 文件中。
    • -U 选项表示升级已安装的包到最新版本。
    • -r requirements.txt 指定要安装的包的列表,这个列表通常包含项目所需的所有依赖项及其版本信息。

综合起来,这一系列命令的目的是在一个虚拟环境中激活,然后进入到 Django 项目的根目录,并使用 pip 安装项目所需的 Python 包,以确保项目的依赖项都得到满足。这是一种良好的实践,因为它允许你在项目级别管理依赖项,而不会影响全局 Python 环境。

基本配置及部署

配置mysql数据库

终端下执行:

sudo mysql_secure_installation

sudo mysql_secure_installation 是一个 MySQL 提供的用于增强数据库安全性的脚本。当你在安装 MySQL 数据库后第一次运行它时,它会引导你完成一些重要的安全设置。

具体而言,这个脚本执行以下操作:

  1. 删除匿名用户: 移除数据库中的匿名用户,这些用户可以在没有任何身份验证的情况下访问数据库。
  2. 禁止远程 root 登录: 阻止 root 用户从远程主机登录到 MySQL 数据库。通常,root 用户应该只能在本地使用,而不是通过网络。
  3. 删除测试数据库: 删除默认情况下安装时创建的测试数据库。这是为了确保不会存在不必要的测试数据,提高安全性。
  4. 重新加载权限表: 使上述更改生效,通过重新加载 MySQL 的权限表。

当你运行 sudo mysql_secure_installation 后,系统会要求你输入 MySQL root 用户的密码。如果你是第一次运行该脚本,可能还没有设置 MySQL root 密码,因此你需要按照提示设置一个密码。之后,脚本将会询问是否执行上述列出的安全性设置,你可以根据实际情况选择是否执行这些操作。

这个脚本是 MySQL 数据库安装后进行的一项重要步骤,以确保数据库的基本安全性。

类似下图,需要输入的地方我都用红色箭头标注了出来,需要注意,root密码一定要牢记,后面会用到。

  • 0 表示低(LOW)强度。
  • 1 表示中等(MEDIUM)强度。
  • 2 表示高(STRONG)强度。

Do you wish to continue with the password provided?(您想使用提供的密码继续吗?)

MySQL安全设置命令mysql_secure_installation

使用root用户登录:mysql -uroot -p

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

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

这一系列的 MySQL 命令用于更改 MySQL 数据库中 ‘root’ 用户在 ‘localhost’ 主机上的身份验证方式以及密码,并刷新权限。让我们逐步解释这些命令:

  1. sudo mysql:
    • 这个命令以超级用户(管理员)权限启动 MySQL 客户端。
  2. ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘Q1W2E3R4T5#$%qwe’;:
    • 这个 SQL 语句用于更改 ‘root’ 用户在 ‘localhost’ 主机上的身份验证方式和密码。
    • IDENTIFIED WITH mysql_native_password 意味着要使用 MySQL 的本机密码验证机制。
    • BY 'Q1W2E3R4T5#$%qwe' 是新的密码。在这个例子中,密码是 ‘Q1W2E3R4T5#$%qwe’,你可以根据实际需求设置不同的密码。
  3. FLUSH PRIVILEGES;:
    • 这个命令用于刷新 MySQL 的权限表,以使上述更改立即生效。
  4. exit:
    • 这个命令用于退出 MySQL 客户端。

综合起来,这一系列命令的目的是通过 MySQL 客户端以超级用户权限,更改 ‘root’ 用户在 ‘localhost’ 主机上的身份验证方式和密码,并确保新的设置立即生效。这样的操作可能是在安装 MySQL 后或者在某些特定情况下需要更改 ‘root’ 用户的密码时执行的。

如果提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements,则说明你的密码强度不够,需要提供更复杂的密码,如下所示: 

 修改mysql默认字符集,使用你喜欢的编辑器,如vim或者nano,打开/etc/mysql/conf.d/mysql.cnf,配置文件,注意,需要使用root权限,如vim:

sudo vim /etc/mysql/conf.d/mysql.cnf

删除该文件的[mysql]行并贴入如下内容:

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

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

这看起来是 MySQL 的配置文件中的一部分。具体来说,这部分配置设置了 MySQL 服务器、客户端和 MySQL 客户端工具的字符集和排序规则。让我逐一解释:

  1. [mysqld] 部分:
    • character-set-server=utf8mb4: 设置 MySQL 服务器的默认字符集为 utf8mb4。utf8mb4 是一种支持更广泛字符范围的 UTF-8 编码。
    • collation-server=utf8mb4_unicode_ci: 设置 MySQL 服务器的默认排序规则为 utf8mb4_unicode_ci,这是一种对 Unicode 字符进行比较的排序规则。
  2. [client] 部分:
    • default-character-set = utf8mb4: 设置 MySQL 客户端的默认字符集为 utf8mb4。
  3. [mysql] 部分:
    • default-character-set = utf8mb4: 设置 MySQL 客户端工具(如命令行工具)的默认字符集为 utf8mb4。

这些配置项是为了确保 MySQL 服务器和相关的客户端工具能够正确地使用 utf8mb4 字符集,以适应一些情况下需要处理更广泛字符范围的需求,比如存储和显示 Emoji 表情等 Unicode 字符。这对于支持多语言、多字符集的应用程序是非常重要的。

退出并保存,重启mysql服务,终端下执行:

sudo /etc/init.d/mysql restart

接下来就可以登录mysql数据库并创建用户和数据了,终端下执行:

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;

这一系列的 SQL 命令用于在 MySQL 数据库中创建一个用户、一个数据库,并授予用户对该数据库的所有权限。以下是每个命令的解释:

  1. CREATE USER 'djangoblog'@'localhost' IDENTIFIED BY 'DjAnGoBlOg123!@#';:
    • 创建了一个名为 ‘djangoblog’ 的用户,该用户只能从 ‘localhost’ 主机连接,并使用 ‘DjAnGoBlOg123!@#’ 作为密码。
  2. CREATE DATABASE djangoblog /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */;:
    • 创建了一个名为 djangoblog 的数据库,并指定了该数据库的字符集为 utf8mb4,排序规则为 utf8mb4_unicode_ci。这通常用于支持多语言和 Unicode 字符。
  3. GRANT all ON djangoblog.* TO 'djangoblog'@'localhost';:
    • 赋予 ‘djangoblog’ 用户对 ‘djangoblog’ 数据库的所有权限。这包括 SELECT、INSERT、UPDATE、DELETE 等权限。
  4. FLUSH PRIVILEGES;:
    • 刷新 MySQL 的权限表,以使上述授权操作立即生效。

这些 SQL 命令一起完成了在 MySQL 中创建一个用户、创建一个数据库,并为用户授予对该数据库的所有权限的任务。这是在配置 Django 项目时常见的步骤,其中一个数据库用户被创建,并相应的数据库被分配给该用户,以供 Django 应用程序使用。

exit #退出

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

修改djangoblog配置

修改djangoblog/settings.py中的DATABASES配置,如下所示,当然,你也可以将其中的配置写入你的.bashrc中,这样就不需要改这个文件了,我这里只是介绍下如何修改:

.bashrc 是linux系统home目录下的一个shell文件,用于储存用户的个性化设置。 在bash每次启动时都会加载 .bashrc 文件中的内容,并根据内容定制当前bash的配置和环境。

什么是Bash、什么是shell?

Linux 之 .bashrc 文件作用

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'djangoblog',
        'USER': 'djangoblog',
        'PASSWORD': 'DjAnGoBlOg123!@#',
        'HOST': 'localhost',
        'PORT': 3306,
        'OPTIONS': {'charset': 'utf8mb4'},
    }
}
  • 'ENGINE': 'django.db.backends.mysql',: 指定 Django 使用 MySQL 作为数据库后端。
  • 'NAME': 'djangoblog',: 指定要使用的数据库的名称,这里是 djangoblog
  • 'USER': 'djangoblog',: 指定连接数据库时使用的用户名,这里是 djangoblog
  • 'PASSWORD': 'DjAnGoBlOg123!@#',: 指定连接数据库时使用的密码,这里是 DjAnGoBlOg123!@#
  • 'HOST': 'localhost',: 指定数据库的主机,这里是本地主机。
  • 'PORT': 3306,: 指定数据库服务的端口号,MySQL 默认端口是 3306。
  • 'OPTIONS': {'charset': 'utf8mb4'},: 设置一些额外的数据库连接选项,这里指定了字符集为 utf8mb4,以支持多语言和 Unicode 字符。

这个配置告诉 Django 项目使用 MySQL 数据库,连接到本地主机的 MySQL 服务器,使用指定的数据库名称、用户名、密码等进行连接,并设置字符集为 utf8mb4。这是一个标准的 Django 数据库配置,你可以根据实际情况进行调整。

接下来开始执行数据库迁移,终端下执行:

./manage.py makemigrations
./manage.py migrate
./manage.py createsuperuser #创建超级用户
./manage.py collectstatic --no-input
./manage.py compress --force
  1. ./manage.py makemigrations:
    • 这个命令用于生成数据库迁移文件。Django 中的模型定义发生变化时,使用此命令来创建与这些变化相对应的数据库迁移文件。迁移文件包含了数据库模型的变更描述,如创建、修改、删除表字段等。
  2. ./manage.py migrate:
    • 这个命令用于应用数据库迁移。它会将在 makemigrations 步骤中生成的迁移文件应用到数据库中,确保数据库与模型定义保持同步。
  3. ./manage.py createsuperuser:
    • 这个命令用于在数据库中创建超级用户。超级用户通常具有对整个 Django 网站的管理权限,包括管理数据库内容和访问 Django 管理界面。
  4. ./manage.py collectstatic –no-input:
    • 这个命令用于将项目中的静态文件(如CSS、JavaScript、图像等)收集到一个统一的目录,以便于部署时进行管理。--no-input 选项表示不需要用户输入确认。
  5. ./manage.py compress –force:
    • 这个命令用于压缩项目中的静态文件。这可能包括合并和最小化 CSS 和 JavaScript 文件,以减小它们的大小,提高网站加载性能。--force 选项表示强制执行压缩操作。

这些命令通常在 Django 项目的开发和部署过程中使用。首先,通过数据库迁移来更新数据库结构。然后,通过创建超级用户来访问 Django 管理界面。最后,通过收集静态文件和进行静态文件压缩,为部署项目做准备。

下面可以尝试启动网站,终端下执行:

./manage.py runserver

./manage.py runserver 是 Django 项目中用于启动开发服务器的命令。具体来说:

  • ./manage.py 是 Django 项目中的一个命令行工具,用于执行多种管理任务。
  • runserver 是其中的一个命令,它启动一个开发服务器,用于在本地开发环境中运行 Django 应用程序。

当你执行 ./manage.py runserver 后,Django 会在默认的端口(通常是 8000)上启动一个开发服务器,监听来自本地浏览器的请求。这使你能够在本地进行开发和测试,查看应用程序的效果。通常,这个开发服务器用于开发和调试阶段,并不适用于生产环境。

请注意,runserver 命令还接受可选参数,例如指定端口号或 IP 地址。例如,你可以使用 ./manage.py runserver 0.0.0.0:8080 来将服务器绑定到所有可用的 IP 地址,并使用 8080 端口。

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

 接下来你就可以使用浏览器打开http://127.0.0.1:8000/ 来查看了。你需要访问http://127.0.0.1:8000/admin/ 在站点中,将默认的example.com修改成你自己的,如www.djangoblog.com

gunicorn 配置

安装,终端下执行:

source ~/python/env/djangoblog/bin/activate
pip install gunicorn

配置,终端下执行:

vim ~/python/gunicorn_start.sh

贴入如下内容:

#!/bin/bash

NAME="djangoblog"
DJANGODIR=/home/server/python/djangoblog #Django project directory
USER=server # the user to run as
GROUP=server # the group to run as
NUM_WORKERS=1 # how many worker processes should Gunicorn spawn
DJANGO_SETTINGS_MODULE=djangoblog.settings # which settings file should Django use
DJANGO_WSGI_MODULE=djangoblog.wsgi # WSGI module name

echo "Starting $NAME as `whoami`"

# Activate the virtual environment
cd $DJANGODIR
source /home/server/python/env/djangoblog/bin/activate
export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE
export PYTHONPATH=$DJANGODIR:$PYTHONPATH

# Create the run directory if it doesn't exist
RUNDIR=$(dirname $SOCKFILE)
test -d $RUNDIR || mkdir -p $RUNDIR

# Start your Django Unicorn
# Programs meant to be run under supervisor should not daemonize themselves (do not use --daemon)
exec /home/server/python/env/djangoblog/bin/gunicorn  ${DJANGO_WSGI_MODULE}:application \
--name $NAME \
--workers $NUM_WORKERS \
--user=$USER --group=$GROUP \
--log-level=debug \
--log-file=-

注意,将该文件中的server修改成你自己的用户,如果是root用户的话,也要将/home/server修改为/root。同时,将djangoblog/settings.py中的DEBUG = True修改为DEBUG = False。 增加可执行权限:

chmod +x ~/python/gunicorn_start.sh

执行:

cd ..
./gunicorn_start.sh

如果看到类似下面的输出,则说明成功了。 

 然后使用Ctrl+c来终止。

nginx配置

终端下执行:

# 删除默认配置
sudo rm /etc/nginx/sites-enabled/default
sudo vim /etc/nginx/sites-enabled/djangoblog.com.conf

贴入如下内容:

server {

    listen 80;
    server_name www.djangoblog.com;
    root /home/server/python/djangoblog/;

    access_log /var/log/nginx/django_access.log;
    error_log /var/log/nginx/django_error.log;

    location /static/ {
        alias /home/server/python/djangoblog/collectedstatic/;
        expires max;
        access_log        off;
        log_not_found     off;
    }
    location /media {
        # 静态文件配置
        alias /home/server/python/djangoblog/uploads/;
        expires max;
    }
    location ~ \.py$ {
        return 403;
    }

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_redirect off;
        if (!-f $request_filename) {
            proxy_pass http://127.0.0.1:8000;
            break;
        }
    }

}

保存并退出。重启nginx:

sudo /etc/init.d/nginx restart

配置Supervisor

终端下执行:

sudo vim /etc/supervisor/conf.d/djangoblog.conf

贴入如下内容:

[program:djangoblog]
command = /home/server/python//gunicorn_start.sh
user = server
autostart=true
autorestart=true

redirect_stderr = true
stdout_logfile = /var/log/djangoblog.log
stderr_logfile=/var/log/djangoblog.err

同样,需要将server修改成你自己等用户名. 保存成功后继续执行:

sudo supervisorctl update
sudo supervisorctl reload 
sudo /etc/init.d/memcached restart && sudo /etc/init.d/nginx restart

django的部分配置

你需要配置settings.py中的ALLOWED_HOSTS,如果你想要使用https的话,还需要配置CSRF_TRUSTED_ORIGINS,代码是在:settings.py

至此,全部完成。你可以通过你的浏览器访问http://www.djangoblog.com了。 更多配置相关可以参考: https://github.com/liangliangyy/djangoblog/blob/master/docs/config.md。这里就不再赘述了。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部