分享好友 站长动态首页 网站导航

项目部署教程怎么写

网友发布 2022-08-13 19:41 · 头闻号项目分享

这里使用了非常干净的ubuntu 16.04系统环境,没有使用云服务器。原因是不同的云服务器环境不一样。我们将从头开始完成部署。

开发机器的准备工作:

确认项目没有bug。

使用pip freeze > requirements.txt将当前环境的包导出到requirements.txt文件,方便部署时安装。

准备好dysms_python文件。因为这包短信验证码必须过。

将项目上传到服务器上的/srv目录。这里以git为例。使用git比其他上传方式更安全,因为git有版本管理的功能。如果以后想回到之前的版本,git可以轻松做到。

在https://git-scm.com/downloads.下载客户端的Windows版本,然后双击并单击下一步进行安装。

然后使用代码云在代码云上创建一个项目。云地址:https://gitee.com/

请参阅:http://vrg123.com获得更多关于Pycharm激活码教程的解释。

然后输入项目并使用以下命令提交代码:

# 初始化一个残酷 * git init # 添加远程的仓库地址 * git remote add origin xxx.git # 添加所有的代码到缓存区 * git add . # 将代码提交到本地仓库 * git commit -m 'first commit' # 从码云仓库上拉数据下来 * git pull origin master --allow-unrelated-histories # 将本地仓库中的代码提交到远程服务器的master分支上 * git push origin master

服务器上的准备工作:

打开ubuntu root用户:

> sudo passwd root > 然后输入root用户的密码

为了便于xshell或CRT连接到服务器,建议安装OpenSSH:

sudo apt install openssh-server openssh-client service ssh restart

安装vim:

sudo apt install vim

修改ubuntu的apt source,就是用来安装软件的链接:先将/etc/apt/sources.list复制为/etc/apt/sources.list.bak,然后用vi编辑/etc/apt/sources.list,删除sources.list中的其他内容,将下面的代码粘贴到文件中。然后保存:

deb-src file/tupian/20220813/ xenial main restricteddeb file/tupian/20220813/ xenial main restricteddeb-src file/tupian/20220813/ xenial main restricted multiverse universedeb file/tupian/20220813/ xenial-updates main restricteddeb-src file/tupian/20220813/ xenial-updates main restricted multiverse universedeb file/tupian/20220813/ xenial universedeb file/tupian/20220813/ xenial-updates universedeb file/tupian/20220813/ xenial multiversedeb file/tupian/20220813/ xenial-updates multiversedeb file/tupian/20220813/ xenial-backports main restricted universe multiversedeb-src file/tupian/20220813/ xenial-backports main restricted universe multiversedeb file/tupian/20220813/ xenial partnerdeb-src file/tupian/20220813/ xenial partnerdeb file/tupian/20220813/ xenial-security main restricteddeb-src file/tupian/20220813/ xenial-security main restricted multiverse universedeb file/tupian/20220813/ xenial-security universedeb file/tupian/20220813/ xenial-security multiverse

然后更新来源:

sudo apt update

安装MySQL服务器和客户端:

sudo apt install mysql-server mysql-client

安装memcached:您可以通过命令apt install memcached来安装它。关于memcached的更多知识,请参考memcached一章。

Python被用来安装一个好的项目:

* sudo apt install python3 * sudo apt install python3-pip * pip install --upgrade pip

如果你的系统已经安装了Python3,你就不需要安装了。因为supervisor不支持Python3,所以您仍然需要安装Python2。如果没有,就安装它:

* sudo apt install python2.7 * sudo apt install python-pip

然后输入python2.7就可以用了。如果进入pip时出现以下错误提示:

Traceback : File "/usr/bin/pip", line 9, infrom pip import main importError: cannot import name main

这是因为pip 10中的一个错误,下面的解决方案可以在零时使用:更改/usr/bin/pip:

from pip import main if __name__ == '__main__': sys.exit)

更改为:

from pip import __main__ if __name__ == '__main__': sys.exit)

安装virtualenvwrapper,并为项目创建一个虚拟环境:

* pip install virtualenvwrapper

安装virtualenvwrapper后,还需要配置virtualenvwrapper的环境变量。

首先,通过哪个virtualenvwrapper.sh命令检查virtualenvwrapper.sh文件所在的路径。

在当前用户目录下创建一个. virtualenv文件夹,用于存储所有虚拟环境目录。

编辑。bashrc文件,并添加以下代码:

export WORKON_HOME=$HOME/.virtualenvs source /usr/local/bin/virtualenvwrapper.sh

然后退出bashrc文件,输入命令source ~/.bashrc。

注意:因为我们在python2环境下安装了virtualenvwrapper,所以需要使用- python参数来指定创建虚拟环境时使用哪个python文件。比如我的python3的路径在/usr/bin/python3。那么示例代码如下:

mkvirtualenv --python=/usr/bin/python3 xfz-env

安装git:

sudo apt install git

使用git下载项目代码:

* git init* git remote add origin https://gitee.com/hynever/xfz_beike* git pull origin master

进入虚拟环境,然后进入项目所在的目录,执行命令:pip install -r requirements.txt,安装项目所依赖的包。如果提示OSError: mysql_config未找到,那么安装sudo来安装libmysqld-dev。注意,短信验证码的包需要单独安装。将dysms_python文件夹上传到项目,然后进入这个文件夹。执行命令:pythonsetup.pyinstall。

进入mysql数据库,创建项目的数据库。

执行python manage . py make migrations/migrate将模型映射到数据库。

执行python manage . py runserver 0 . 0 . 0:8000,然后在自己的电脑上访问这个网站,确保没有bug。

在settings.py中的ALLOWED_HOST中添加网站的域名或ip地址..

设置DEBUG=False以避免在网站出错时向用户公开错误信息。

在settings.py中配置STATIC_ROOT来存储收集的静态文件。收集静态文件的命令如下:

python manage.py collectstatic

安装uwsgi:

Uwsgi是一个应用服务器,通过它必须完成对非静态文件的网络请求。他还可以充当静态文件服务器,但这不是他的强项。Uwsgi是用python写的,所以可以通过PIP3安装UWSGI。。然后创建一个名为uwsgi.ini的配置文件:

[uwsgi]#必须全部是绝对路径#项目的路径chdir =/SRV/Beike/xfz # Django模块的wsgi文件= xfz . wsgi # Python虚拟环境home的路径=/root/。virtualenvs/xfz-env #进程相关设置# Master process master = true#最大工作进程数= 10http = :8000#设置socket chmod-socket = 666#退出时是否要清理环境vacuum = true daemon =/var/log/xfz _ uws gi . log?

然后通过命令uwsgi - ini uwsgi.ini运行它,以确保没有错误。然后在浏览器中访问http://ip地址:8000。如果可以访问页面,说明uwsgi配置没问题。

要安装和配置nginx:

虽然uwsgi可以正常部署我们的项目。但是我们还是要用nginx做web服务器。使用nginx作为web服务器有以下优点:

Uwsgi没有很好的处理静态文件资源,包括响应速度,缓存等。

作为一个专业的web服务器,nginx在暴露于公网时比uwsgi安全一点。

操作维护更方便。比如要把某个IP写入黑名单,nginx可以非常方便的写入。Uwsgi可能要写很长的代码才能实现。

安装:

可以通过apt install nginx安装。

Nginx简单操作命令:

启动:服务nginx启动

关闭:服务nginx停止

重新启动:服务nginx重新启动

测试文件:服务nginx配置测试

添加配置文件:

在/etc/nginx/conf.d目录中,创建一个名为zhiliaoketang.conf的新文件,然后将以下代码粘贴到其中:

上游zhiliaoketang { server UNIX:///SRV/zhiliaoketang/zhiliaoketang . sock;} #配置服务器server {#侦听的端口号listen 80#域名server _ name 192 . 168 . 0 . 101;字符集utf-8;#最大文件上传大小client _ max _ body _ size 75M# URL location/static for static file access { # static file address alias/SRV/zhiliaoketang/static _ dist;} #最后,将所有非静态文件请求发送到django服务器位置/{ uw SGI _ PASS Zhiliaoketang;# uwsgi_params文件地址包含/etc/nginx/uw SGI _ params;}}

写完配置文件后,为了测试配置文件是否设置成功,运行命令:service nginx configtest。如果没有报告错误,则意味着成功。每次修改配置文件时,记得运行服务nginx restart。

与主管一起管理uwsgi流程:

让supervisor管理uwsgi,万一uwsgi发生意外,它会自动重启。

安装主管:

因为supervisor是用python写的,所以可以通过pip安装。而且由于supervisor不支持python3,所以需要在python2中安装supervisor。pip2安装主管.

开始:

在项目的根目录下创建一个名为supervisor.conf的文件,然后将以下代码填充到配置文件中:

# supervisor的程序名[program:mysite] # supervisor的命令= uwsgi-ini zlkt _ uwsgi.ini #项目的目录= /srv/zhiliaoketang #开始时等待多少秒startsecs = 0 #停止时等待多少秒stopwaitsecs=0 # autostart=true #程序挂起后自动重新启动=true #输出日志文件stdout _ log file =/SRV/zhiliake Tang/错误文件stderr _ log file =/SRV/zhiliaoketang/log/supervisor supervisor的服务器端口=: 9001 #用户名和密码username = admin password = 123 #配置使用supervisor CTL[supervisor CTL]# supervisor CTL登录服务器URL = http://127 . 0 . 0 . 1:9001 # supervisor CTL登录用户名和密码= adminpassword = 123 [RPC接口:supervisor]supervisor . RPC interface _ factory = supervisor . RPC interface:make _ main _ RPC interface

然后使用supervisord -c supervisor.conf命令运行它。如果以后要启动uwsgi,可以通过命令supervisorctl -c supervisor.conf进入管理控制台,然后可以执行相关命令进行管理:

状态#查看状态

启动程序名称#启动程序

重启程序_名称#重启程序

Stop _ name #关闭程序

Reload #重新加载配置文件

退出#退出控制台

免责声明:本平台仅供信息发布交流之途,请谨慎判断信息真伪。如遇虚假诈骗信息,请立即举报

举报
反对 0
打赏 0
更多相关文章

评论

0

收藏

点赞