开发完项目后,需要将项目部署到Linux环境。
下面是有关博客的部分开发代码:
(poc)[root@VM test_jenkins]# ll
总用量 348
drwxr-xr-x 4 jenkins jenkins 173 8月 29 16:08 account
drwxr-xr-x 4 jenkins jenkins 157 8月 29 16:08 blog
-rw-r--r-- 1 jenkins jenkins 352256 8月 29 16:08 db.sqlite3
-rw-r--r-- 1 jenkins jenkins 538 8月 29 16:08 manage.py
drwxr-xr-x 3 jenkins jenkins 93 8月 29 16:08 mysite
drwxr-xr-x 2 jenkins jenkins 35 8月 29 16:08 __pycache__
-rw-r--r-- 1 jenkins jenkins 0 8月 29 16:08 readme.txt
drwxr-xr-x 7 jenkins jenkins 86 8月 29 16:08 static
drwxr-xr-x 4 jenkins jenkins 88 8月 29 16:08 templates
drwxr-xr-x 2 jenkins jenkins 61 8月 29 16:08 testzq
drwxr-xr-x 4 jenkins jenkins 50 8月 29 16:08 venv
直接在当前目录下执行 python3 manage.py runserver 0.0.0.0:8000,但这是以前台的形式启动的。关闭了窗口,进程也就结束了。(必须用python3,因为python2不支持创建数据库表)
要实现服务在后台启动,用nohup命令。
进入manage.py所在的目录,新建启动脚本文件start.sh:先kill掉原来运行的项目,再启动
[root@VM test_jenkins]# vi start.sh
ps -aux | grep python3|xargs kill -9
nohup python3 manage.py runserver 0.0.0.0:8000 >>blog.log>&1 &
编写停止服务脚本stop.sh:
[root@SyslogVM test_jenkins]# vi stop.sh
ps -aux | grep python3|xargs kill -9
对start.sh与stop.sh赋权限:
chmod 755 start.sh
chmod 755 stop.sh
./start.sh启动Django; ./stop.sh停止Django服务
查看启动后的进程:
问题:
1、执行./start.sh失败,错误如下:
错误的原因:得用python3以上的命令才能创建数据库,在当前环境安装的是python2
所以,我们要安装python3版本,Python3安装请参考
https://www.cnblogs.com/qingyuanyuanxi/p/7985626.html 可能也需要安装gcc(
yum install gcc)
2、启动服务报错:
Invalid HTTP_HOST header: 'ip:8000'. You may need to add 'ip' to ALLOWED_HOSTS.
修改创建项目时生成的setting.py文件
将 ALLOWED_HOSTS = [] 改为 ALLOWED_HOSTS = ['*']
再次运行即可成功访问。
访问成功: