|
激活虚拟环境
在新创建的目录中,进入到myenv/bin目录下 source activate 激活/ deactivate/关闭
使用 virtualenv 创建的虚拟环境
CD 进入 项目所在目录
virtualenv myenv
source activate # 进入虚拟环境
----------------------------------------------------------
虚拟环境里用pip3安django和uwsgi
pip3 install django #(如果用于生产的话,则需要指定安装和你项目相同的版本)
pip3 install django==3.1.5(指定版本号)
pip3 install uwsgi
# 给uwsgi建立软链接,方便使用
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
在本地项目目录下用下面的命令把当前的环境依赖包导出到requirements.txt文件
pip freeze > requirements.txt
把项目源码压缩打包。把项目上传到服务器对应的目录里(/data/wwwroot/),解压。
进入解压好的项目根路径中安装requirements.txt里的依赖包。
pip3 install -r requirements.txt
///////////////////////////////////////////////////////////////////////////////////////////////
django
静态资源收集
python manage.py collectstatic
-------------------------------------------------
NGINX+UWSGI配置文件
用uwsgi部署你的Django项目:更改项目中的settings文件:
DEBUG = False # 关闭调试模式。
ALLOWED_HOSTS = ['*'] # 允许所有主机访问。
在你的项目根目录下(与manage.py同级)新建一个uwsgi.ini文件,内容如下:
[uwsgi]
http=0.0.0.0:80 # 如果单独使用uwsgi来部署Django项目时,就用这一行。
# socket=0.0.0.0:8001 # 如果使用nginx+uwsgi来部署Django项目时,就用这行。其中,8001端口用来跟nginx通信。
chdir=/usr/DjangoProject/MyProject/ # 你项目的完整路径。manage.py同级目录
# chmod-socket=664 # 给socket文件赋权限,这里不用管。
master=true # 启用主线程。
processes=4
threads=2
logto=路径/uwsgi.log # 指定日志文件(会自动创建)。这个很重要,如果uwsgi出现错误,可以通过日志文件来查错。
pidfile=路径/uwsgi.pid # 指定进程号文件(会自动创建)。这个也很重要,如要重启和关闭uwsgi,则需要这个文件,里面记录了进程号。
module=MyProject.wsgi:application # 指定wsgi文件。在与settings.py同级目录中会有一个wsgi.py文件。
保存退出后,输入:uwsgi --ini uwsgi.ini
# 启动uwsgi,并指定配置文件。
uwsgi -d --ini uwsgi.ini 后台运行,守护进程
uwsgi --ini uwsgi.ini 启动uwsgi
uwsgi --stop uwsgi.pid 关闭uwsgi
uwsgi --reload uwsgi.pid 重启uwsgi
----------------------------------------------------------------------------------------------
配置Nginx配置文件(把原先的配置文件可以备份以下,然后将下面的替换进去)。
找到nginx的安装目录(如:/usr/local/nginx/),打开conf/nginx.conf文件,修改server配置:
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen 80;
server_name 127.0.0.1:80; # 改为自己的域名,没域名修改为127.0.0.1:80
charset utf-8;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8070; #端口要和uwsgi里配置的一样
uwsgi_param UWSGI_SCRIPT qize_demo.wsgi;# wsgi.py所在的目录名+.wsgi
uwsgi_param UWSGI_CHDIR /data/wwwroot/qize_demo/; #项目路径 manage.py 同级目录
}
location /static {
alias /data/wwwroot/qize_demo/static; #静态资源路径
}
location /templates {
alias /data/wwwroot/qize_demo/templates;
}
}
}
留意:一定要注意Uwsgi和Nginx配置文件里的项目路径和静态资源路径,填写正确了才能成功访问。不然会出现502错误。还有就是,修改Django文件和其它配置文件之后,一定要重启Uwsgi和Nginx,不然不生效
----------------------------------
django python manage.py runserver XXX.XXX.XX.XXX:8000 #Djiango自带web服务器的端口
uswgi 内部与nginx端口 8033
nginx 端口 8001
BASE_DIR是manage.py所在的位置
///////////////////////////////////////////////////////////////
#通过ps,查看uwsgi相关进程
ps aux|grep uwsgi
#kill pid会发送SIGTERM,只会导致重启,而不是结束掉。需要发送SIGINT或SIGQUIT,对应着是INT才可以
killall -s INT /usr/bin/uwsgi
Django线上部署后admin后台css失效
可在djang项目根目录下,创建static文件夹。
执行命令:python manage.py collectstatic 命令,会将所有静态文件搜集起来,放到这个文件下。
在setting.py文件中添加static路径。
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
重启项目就OK了
解决-bash: killall: command not found 的方法
安装 yum install -y psmisc