个人博客项目部署到腾讯云记录

Posted olivertian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了个人博客项目部署到腾讯云记录相关的知识,希望对你有一定的参考价值。

坑1、pip install uwsgi安装uwsgi到系统环境(非虚拟环境)执行 uwsgi --http :8001 --module myblog.wsgi时报找不到uwsgi命令

解决:pip 安装的,命令文件放在/usr/local/python3.7/bin/uwsgi,需要添加到系统可找到的路径下,添加软连接:ln -s /usr/local/python3.7/bin/uwsgi  /usr/bin/uwsgi

 

坑2、解决问题1后执行uwsgi --http :8001 --module myblog.wsgi,报ModuleNotFoundError: No module named ‘django‘

解决:uwsgi是安装在系统环境,而django是安装在虚拟环境,需要指定虚拟环境,用这条语句代替uwsgi --http :8001 --chdir /root/myblog_proj/myblogyblog --home=/root/.Envs/myblog --module myblog.wsgi,解决方案来自:https://code.ziqiangxuetang.com/django/django-nginx-deploy.html

 

3、Nginx已经重新安装(之前源码安装,已卸载),使用apt-get install nginx安装,配置文件,启动停止方式参考:https://www.cnblogs.com/EasonJim/p/7806879.html

Nginx安装后所有文件(启动文件,配置文件)都是默认的,本人没有移动什么东西

启动Nginx:/usr/sbin/nginx 

停止Nginx:ps aux|grep nginx查看进程id,然后 kill -9 进程id

配置文件路径:/etc/nginx/

 

坑4、按照教程在/root/myblog_proj/conf下新建myblog_nginx.conf(这个放哪里无所谓,好找就行,不过uwsgi的启动配置文件uwsgi.iniNginx的配置文件myblog_nginx.conf总共两个都统一放在这个文件夹下)并修改后,新建软连接到/etc/nginx/conf.d(即执行 ln -s /root/myblog_proj/conf/myblog_nginx.conf /etc/nginx/conf.d/),使用service nginx restart重启Nginx时,发生如下报错:

技术图片

解决:不能以service nginx restart或service nginx start启动Nginx,权限问题,需要用第三条中的方式启动和停止(后面找下解决方案,这种启动停止有点麻烦,可能是myblog_nginx.conf放在root下有权限问题,所以以后部署最好不要部署在root下,安全问题和权限问题都很麻烦)

 

5、uwsgi的安装启动和停止:

安装:pip install uwsgi

查看uwsgi的进程:

技术图片

启动:uwsgi --ini uwsgi.ini(自己写的配置文件,在/root/myblog_proj/conf下)

重启:使用pkill -f uwsgi会直接并重启(杀死后直接重启??)。pkill详解:http://www.mamicode.com/info-detail-2315063.html

技术图片

停止:pkill -f uwsgi -9(这个不会重启,直接杀死)

uwsgi的日志在/var/log/uwsgi/myblog.log中(这个路径是在配置文件中配置的)

 

6、至于为什么把配置文件软连接到/etc/nginx/conf.d/就能执行该配置文件,我也不知道,参考一下这篇文章:https://www.cnblogs.com/jenkin1991/p/8301983.html(nginx下面有个conf.d和sites-enabled文件夹,按照uwisg官网,就是把软连接到sites-enabled文件夹下,好像效果一样:https://uwsgi.readthedocs.io/en/latest/tutorials/Django_and_nginx.html)

 

坑7:好不容易可以访问网站后,发现无法加载静态文件,查看/var/log/nginx/error.log发现很多permission denied。

解决,整个django工程放在root目录下(静态文件也都是collect到root下),Nginx加载静态文件没有权限,百度方案,在/etc/nginx/nginx.conf第一行改为 user root; 问题解决

 

8、整个配置过程,熟悉各个步骤是按照uwsgi官网:https://uwsgi.readthedocs.io/en/latest/tutorials/Django_and_nginx.html进行的,根据官网循序渐进地实现它提供的案例,能大体理解Nginx和uwsgi以及django本身提供的服务器各扮演什么角色,以及Nginx和uwisg之间交互关系。具体配置是按照http://projectsedu.com/这篇博文来(这其实也是按照uwisg官网配置的,主要不同感觉就是myblog_nginx.conf建立软连接时放的位置不同)和https://www.bilibili.com/video/av56419126/?p=88视频这两集视频。都结合这看下,遇到坑百度一下

 

9、另外一个参考资料页比较有参考价值,django官网:https://docs.djangoproject.com/en/2.2/howto/deployment/wsgi/uwsgi/

10、启动uwsgi时就指定了虚拟环境路径,所以用uwsgi启动项目不需要在虚拟环境中?(目前不是在虚拟环境中启动的uwsgi)

 

以上是关于个人博客项目部署到腾讯云记录的主要内容,如果未能解决你的问题,请参考以下文章

react+springBoot 项目部署到腾讯云

SpringBoot项目部署

云原生 | Docker腾讯云部署Django项目 (服务器选型git配置docker三分钟部署)

京东云部署Javaweb项目和搭建个人博客

腾讯云部署自己项目步骤

项目部署Vue+SpringBoot前后分离个人博客项目实战部署保姆教程 Linux+docker安装部署启动一条龙教程