1,centos7下使用yum安装pip
首先安装epel扩展源:
yum -y install epel-release
更新完成之后,就可安装pip:
yum -y install python-pip
安装完成之后清除cache:
yum clean all
这是在root用户时使用的命令,当前用户如果不具有root权限,加上sudo。
如果pip install 出现问题可以试试命令
pip install setuptools==33.1.1
2,创建虚拟环境
-
优点
-
使不同的应用开发环境独立
-
环境升级不影响其他应用,也不会影响全局的python环境
-
它可以防止系统出现包管理混乱和版本的冲突
-
-
安装
-
pip install virtualenv -
创建虚拟环境
-
virtualenv testvir // 虚拟环境目录 -
启动虚拟环境
-
cd testvir source ./bin/activate -
退出虚拟环境
-
deactivate -
安装uwsgi
-
pip install uwsgi
在项目目录中新建一个test.py
python2写法: # test.py (我用的是python2) def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return "Hello World" python3写法: # test.py def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return [b"Hello World"]运行测试:
-
sudo uwsgi --http 0.0.0.0:8000 --wsgi-file test.py此时在浏览器中访问问 http://ip:8000 页面返回:Hello word! 表明成功安装uwsgi。且工作正常。
-
-
项目目录下新建uwsgi.ini
-
[uwsgi] # Django-related settings # 对外提供http服务的端口,用于和nginx进行数据交互的端口,使用nginx连接的时候使用socket socket = :8080 # 直接做web服务器使用http ;http = :8080 # Django项目根目录 (绝对路径) chdir = /opt/HelloWord_xadmin_v4 # wsgi.py文件在项目中的位置 module = HelloWord.wsgi # process-related settings # master master = true # 运行的进程数 processes = 4 # ... with appropriate permissions - may be needed # chmod-socket = 664 # clear environment on exit vacuum = true # 后台运行,并输出日志 daemonize = /var/log/uwsgi.log -
安装nginx
-
官网下载
直接下载.tar.gz安装包,地址:https://nginx.org/en/download.html
使用wget命令下载 -
wget -c https://nginx.org/download/nginx-1.10.1.tar.gz tar -zxvf nginx-1.10.1.tar.gz cd nginx-1.10.1 ./configure编译安装
-
make make install查找安装路径:
-
whereis nginx将安装路径添加到环境变量
-
vim ~/.bashrc在末尾加上一句,路径即whereis找到的路径
-
export PATH=$PATH:/usr/local/nginx/sbin/保存退出
-
source ~/.bashrc然后可以直接使用命令启动和停止nginx
-
# 启动nginx nginx # 停止 nginx -s stop # 重启 nginx -s reload # 等待nginx进程处理任务结束后停止 nginx -s quit # 相当于是先查出nginx的进程id,然后使用kill命令强制杀掉进程nginx在服务器上的默认端口是:80
-
寻找nginx的配置文件并打开
-
find / -name nginx.conf vim /usr/local/nginx/conf/nginx.conf -
配置nginx.conf主要配置server部分,跟uwsgi是配套的,要统一一些东西。
-
server { # nginx默认端口是80端口,监听80端口 listen 80; server_name localhost; charset UTF-8; # nginx的访问日志请求日志 access_log /var/log/access.log; # nginx的错误日志 error_log /var/log/error.log; location / { #root html; #index index.html index.htm; include uwsgi_params; # 同uwsgi内容,同nginx的socket配置,端口一定要一致,这里就完成了反向代理 # 访问nginx服务器ip地址的时候,默认80端口,然后从nginx请求uwsgi的8080端口 uwsgi_pass 127.0.0.1:8080; # 链接超时时间 uwsgi_read_timeout 30; client_max_body_size 1000m; } location /static/ { autoindex on; # 修改的是这个地方,这个地方配置的是静态文件的绝对路径 alias /opt/collectedstatic/static/; } #location / { # include uwsgi_params; # uwsgi_pass 127.0.0.1:8080; #root /home/collectedstatic; #uwsgi_param UWSGI_SCRIPT demosite.wsgi; #uwsgi_param UWSGI_CHDIR /demosite; #root html; #index index.html index.htm; #client_max_body_size 35m; # } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; }至此就完成了反向代理!
-
启动项目:
-
# 注意uwsgi.ini的路径,我这里是当前路径下执行的,还要注意nginx的路径我这里是下面的路径 uwsgi --ini ./uwsgi.ini & /usr/local/nginx-1.5.6/sbin/nginx拓展:
-
杀死进程:
-
# 如启动了多个进程,有多个进程id,都是nginx或者uwsgi # 查看占用端口的进程 lsof -i :8080 lsof -i :80 # 杀死进程 kill -9 <进程id> # 一下杀死 killall -9 nginx killall -9 uwsgi重启nginx配置
-
使用命令nginx -s reload命令重启让配置文件生效 reload命令会重新加载配置文件,nginx服务不会中断解决 django 多 app 静态文件的问题
# 在 django 程序的 settings.py 文件中添加以下内容:STATIC_ROOT = os.path.join(BASE_DIR, "../collectedstatic/static")# 然后通过执行该命令,将静态文件整合到一个目录中[root@zhangjun.xue $]python manage.py collectstatic此时会发现在配置的路径下(即BASE_DIR)同级的目录下多了一个目录(即collectedstatic),所有 app 的静态文件都整合在里面了,此处注意collectedstatic文件的访问权限:chmod -R 777 collectedstatic 递归修改该目录以及其下所有文件的权限 -
然后需要修改 nginx 配置文件中 指向 django 静态目录的配置文件 -
server { # nginx默认端口是80端口,监听80端口 listen 80; server_name localhost; charset UTF-8; # nginx的访问日志请求日志 access_log /var/log/access.log; # nginx的错误日志 error_log /var/log/error.log; location / { #root html; #index index.html index.htm; include uwsgi_params; # 同uwsgi内容,同nginx的socket配置,端口一定要一致,这里就完成了反向代理 # 访问nginx服务器ip地址的时候,默认80端口,然后从nginx请求uwsgi的8080端口 uwsgi_pass 127.0.0.1:8080; # 链接超时时间 uwsgi_read_timeout 30; client_max_body_size 1000m; } location /static/ { autoindex on; # 修改的是这个地方,这个地方配置的是静态文件的绝对路径 alias /opt/collectedstatic/static/; } #location / { # include uwsgi_params; # uwsgi_pass 127.0.0.1:8080; #root /home/collectedstatic; #uwsgi_param UWSGI_SCRIPT demosite.wsgi; #uwsgi_param UWSGI_CHDIR /demosite; #root html; #index index.html index.htm; #client_max_body_size 35m; # } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } -
待续
-
配置nginx解析静态文件(未测试通过)
-
https://blog.youkuaiyun.com/weixin_39198406/article/details/79277580 https://www.cnblogs.com/CongZhang/p/6548529.html https://blog.youkuaiyun.com/baidu_35085676/article/details/77160040 https://blog.youkuaiyun.com/qq_38111600/article/details/79785562 https://blog.youkuaiyun.com/qq_24861509/article/details/45727983 https://blog.youkuaiyun.com/tyt_XiaoTao/article/details/80209933 https://blog.youkuaiyun.com/eightbrother888/article/details/79503716 https://blog.youkuaiyun.com/c465869935/article/details/53242126 https://blog.youkuaiyun.com/SL_World/article/details/89713329 https://blog.youkuaiyun.com/bysjlwdx/article/details/80859509 https://blog.youkuaiyun.com/qq_35531549/article/details/86600406 http://projectsedu.com/ # 综合 http://www.liujiangblog.com/course/django/181 https://code.ziqiangxuetang.com/django/django-template2.html

本文详细介绍了在CentOS7环境下如何使用yum安装pip,创建虚拟环境,以及安装和配置uwsgi和nginx,实现Python Web项目的部署。同时,文章还提供了解决静态文件管理问题的方法。
2661

被折叠的 条评论
为什么被折叠?



