zoukankan      html  css  js  c++  java
  • 个人博客项目部署到腾讯云记录(私人记录)

    上传图片时报错:"Got a packet bigger than 'max_allowed_packet' bytes" 

    修改参考:https://blog.csdn.net/github_39325328/article/details/79549756   没事不要重启mysql 否则修改失效了,没找到配置文件!!!!!!!!

    现在可以重启了,配置文件时/etc/mysql/my.cnf

    另外会报一个错误:Found option without preceding group in config file /etc/mysql/my.cnf?,参考链接:https://stackoverflow.com/questions/44298071/how-to-fix-mysql-error-found-option-without-preceding-group-in-config-file

    坑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就行)

    停止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,http://c.biancheng.net/view/1071.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)

    11、目前网站正在备案,为了可以直接通过ip访问,/etc/nginx/conf.d/myblog_nginx.conf配置文件将域名那一行屏蔽,改为ip地址

  • 相关阅读:
    VSCode创建自定义代码段
    生命不息,折腾不止 ~ 旧PC改造之家庭影音
    万物互联之~网络编程基础篇
    PyCharm创建自定义代码段(JetBrains系列通用)
    VSCode设置Tab键为4个空格
    Jupyter-Notebook服务器自定义密码
    Jupyter ~ 像写文章般的 Coding (附:同一个ipynb文件,执行多语言代码)
    centos下使用nohup
    在centos中创建nginx启动脚本
    查看centos中的用户和用户组
  • 原文地址:https://www.cnblogs.com/olivertian/p/11192535.html
Copyright © 2011-2022 走看看