首先尝试用手动方式构建django网站
手动开发django欢迎页面
1.python开发的,安装准备好python开发环境
yum install python3 -y
2.安装django框架,且使用pip3命令安装,是给python安装模块的,yum给linux安装软件的
pip3 install django==2.1.2
pip3 list |grep -i django 检查项目文件是否存在
3.使用命令, 创建django项目,且进行python开发
查看文档路径
[root@zzp django_cc]# pwd
/opt/django_cc
创建一个django项目
django-admin startproject my_django
4.django的目录结构
[root@git01 my_django]# tree /opt/django_cc/
/opt/django_cc/
└── my_django
├── manage.py
└── my_django
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
5.创建django项目的app01
python3 manage.py startapp app01
6.再次查看目录结构
tree /opt/django_cc/
/opt/django_cc/
└── my_django
├── app01
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── manage.py
└── my_django
├── __init__.py
├── __pycache__
│ ├── __init__.cpython-36.pyc
│ └── settings.cpython-36.pyc
├── settings.py
├── urls.py
└── wsgi.py
7.开发网站的欢迎页面
第一步,开发urls.py文件,给用户设置一个入口,访问的入口
urls.py开发的内容如下
from django.contrib import admin
from django.urls import path
# 导入django的模块
from django.shortcuts import render,HttpResponse
# 定义python的函数
def hello(request):
return HttpResponse("你真棒,学习python非常有意思")
urlpatterns = [
path('admin/', admin.site.urls),
# 这里是打印调用的函数hello返回内容
path('hello/',hello)
]
8.修改django的配置文件
文件的路径是项目中的
ALLOWED_HOSTS = ["*"]
9.尝试运行该代码
python3 manage.py runserver 0.0.0.0:8005
输入网址链接192.168.56.200:8005
Supervisor (http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动、重启、关闭进程(不仅仅是 Python 进程)。
除了对单个进程的控制,还可以同时启动、关闭多个进程,比如很不幸的服务器出问题导致所有应用程序都被杀死,
此时可以用 supervisor 同时启动所有应用程序而不是一个一个地敲命令启动。
首先需要安装插件
pip3 install supervisor
# 生成配置文件
echo_supervisord_conf是下载supervisor生成的。
echo_supervisord_conf > /etc/supervisor.conf
配置说明:来源http://www.ttlsa.com/linux/using-supervisor-control-program/
command命令下需要用到python的位置路径,这个可以用which python3查看到。
修改配置,管理我们的django,目录在/opt/django_cc/my_django/manage.py
command=/usr/bin/python3 /opt/django_cc/my_django/manage.py runserver 0.0.0.0:8005
[program:zheng_django]
command=/usr/bin/python3 /opt/django_cc/my_django/manage.py runserver 0.0.0.0:8005
autostart=true
startsecs=10
autorestart=true
startretries=3
priority=999
redirect_stderr=true
stdout_logfile=/var/log/zheng_django1.log
stopasgroup=true
killasgroup=true
配置完就可以启动命令
supervisord -c /etc/supervisor.conf
使用 supervisorctl
Supervisorctl 是 supervisord 的一个命令行客户端工具,启动时需要指定与 supervisord 使用同一份配置文件,否则与 supervisord 一样按照顺序查找配置文件。
supervisorctl -c /etc/supervisor.conf
上面这个命令会进入 supervisorctl 的 shell 界面,然后可以执行不同的命令了:
上面这些命令都有相应的输出,除了进入 supervisorctl 的 shell 界面,也可以直接在 bash 终端运行:
注意问题点:
django的启动目的是command=/usr/bin/python3 /opt/django_cc/my_django/manage.py runserver 0.0.0.0:8005
可以实现服务自启,在kill进程的时候如果出现这个报错
kill掉django的启动进程后再运行supervisord -c /etc/supervisor.conf的时候报错:
Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting supervisord.
解决方案:首先查看ps aux | grep supervisord进程号是否存在
方法1:如果存在直接kill掉
方法2:
(1)首先进入 supervisor 控制台:supervisorctl
(2)然后重新读取配置:reread
(3)更新配置:update
(4)开始所有配置:start all
(5)查看所有状态:status
至此,解决了新的守护进程的生效问题。