宝塔搭建SoogorCMS

创建时间: 2023-12-05 14:08:51 :119 更新时间: 2024-02-15 10:58:50
本文适用:

软件版本:上格CMS V0.0.1.9

前言

来自塔宝官方通知:Python项目管理器将于将于2023年12月31日下架,所以我们需要采用宝塔【网站->Python项目】进行搭建上格CMS,下面我们就一起看一下如何在【网站->Python项目】进行搭建上格CMS

上传网站代码

将soogorCMS下的soogor文件夹上传到服务器,如果文件过多,可打包后上传,然后再解压。

安装python基本环境

宝塔--网站--python项目

首次进入时会提示我们没有安装python,我们选择点击安装

我们根据需要安装上自己所需要的python版本,我们使用的为3.9.7-3.10

以后我们可以在python版本管理中对我们的python项目进行管理

 

新建Python项目

宝塔--网站--python项目-添加python项目

目前哪些端口被占用,可以在【宝塔--安全--系统防火墙】,在这里我们可以看到哪些端口被占用了。

然后我们点击提交

当显示“需求包安装成功”和"配置文件输出成功"时,这说明我们的已经添加成功了。

新建数据库

【宝塔界面——数据库——添加数据库】

将得到的数库名、用户名、密码记录一下。

选择字符集:数据库utf8不支持EMOJE表情,但是支持数据库缓存 ,UTF8MB4支持EMOJE表情,不支持数据库缓存。如果要使用数据库缓存一定要设置为UTF8的

但是

在我们的测试当中感觉之个数据库缓存对大数据来讲没啥用,IO会变的很高。

所以我们推荐使用UTF8MB4

记录下数据库名、用户名、密码,我们稍后要用

最后提交

修改ConnectionStrings.ini文件

路径:

/soogor/config/ConnectionStrings.ini

根据建立数据库的数据,我们设置一下msqyl链接配置文件 

[mysql]
NAME = 数据库名
USER = 数据库用户名
PASSWORD = 密码

数据库操作

宝塔路径“/www/server/pyporject_evn”为我们的项目的虚拟环境的上级目录,在这个文件夹下,我们可以找到我们对应项目的虚拟环境

如:xxxx_venv文件夹,就是xxxx网站项目的虚拟目录。我们需要记录下这个目录

/www/server/pyporject_evn/xxxx_venv

建立数据库映射文件 

#manage.py一定要用绝对路径指向
/www/server/pyporject_evn/xxxx_venv/bin/python3 /www/wwwroot/xxxx/soogor/manage.py makemigrations

执行数据库操作 

#manage.py一定要用绝对路径指向

/www/server/pyporject_evn/xxxx_venv/bin/python3 /www/wwwroot/xxxx/soogor/manage.py migrate

建立超级管理员

#manage.py一定要用绝对路径指向

/www/server/pyporject_evn/xxxx_venv/bin/python3 /www/wwwroot/xxxx/soogor/manage.py createsuperuser

然后根据提示我们依然输入管理员账号、邮箱、密码、密码确认。

要注意的管理员账号不能为root,并且这些内容设置不能太过类似

这个超级管理员将用于我们后台的首次登陆

 

如果你有soogor.sql文件,则不需要执行上方的命令,可以直接在数据库中导入。

在数据库列表界面,找到对应的数据库选择导入——选择soogorCMS下的soogor.sql进行导入

 

 

这样我们的soogor就完全搭建完了。可以直接在浏览器输入你的域名进行访问了。

Python项目管理设置

项目管理

我们可以根据需要重新设置一下进程和线程数,二者的比例一般为2:1,根据自己的需要来设置,一个新的网站不会吃太多的资源,2-1就可以了,设置数据越大,越吃资源。

启动用户:这里我们主要使用的就是有些文件的修改

  1. root,拥有所有权限,
  2. www。需要将soogor文件夹(也就是manage.py文件的上级文件夹)设置一下www用户的读取、写入、执行权限 

然后保存配置

域名管理

我们填写上我们的域名,注意,要解析好。

外网映射:打开

配置文件

这里将设置静态文件的指向和反向代理的相关设置

静态文件

    #所有静态文件,如CSS,img等  
    #.well-known用于宝塔申请ssl证书
    location /.well-known/acme-challenge{
    alias /www/wwwroot/xxxxx/soogor/.well-known/acme-challenge;
    }
location /static/ {
    alias /www/wwwroot/xxxxx/soogor/static/;
    }
location /sg_user/ {
    alias /www/wwwroot/xxxxx/soogor/sg_user/;
    }
#媒体路径,如上传的文件。   
location /media/ {
    alias /www/wwwroot/xxxxx/soogor/media/;
    }
#下面是robots.txt和/favicon.ico
    location /robots.txt {
    alias /www/wwwroot/xxxxx/soogor/static/robots.txt;
    }
    location /favicon.ico {
    alias /www/wwwroot/xxxxx/soogor/static/favicon.ico;
    }
#xxxxx.txt选用,主要用来实现搜索引擎的验证
    location /xxxxx.txt {
    alias /www/wwwroot/xxxxx/soogor/xxxxx.txt;
    }
#注意!注意!注意!上面的xxxxx是路径,soogor是manage.py的所在的文件夹的名字,复制后记得修改

CSRF相关反向代理

如果有需要CSRF验证的表单的话我们还需要修改一下反向代理的设置

将配置文件中的

proxy_set_header Host 127.0.0.1:$server_port;

修改为:

proxy_set_header Host $host;

这样就可以实现表单提示时的csrf验证了

运行配置

在运行配置的最后加入下列代码,实现修改代码重启项目和管理后台的自动重启

# 代码修改后自动重启
py-autoreload = 1  
touch-reload = /www/wwwroot/xxxxx/soogor/config/restart.py

SSL证书

SSL--let's Encrypt选择我们的域名进行申请证书

SSL证书相关反向代理

我们在SSL证书启动后,我们返回配置文件,在下列代码后加入相关配置

proxy_pass http://127.0.0.1:XXXXX;
#xxxxx为端口号

在上面代码后加入:

proxy_set_header X-Forwarded-Ssl on;

以此来实现我们在HTTPS下可以顺利的提交表单,如后台的登陆等。

管理后台登陆:

http(s)://host/admin/

我们就可以通过我们设置好的用户和密码就进网站管理了。

静态网站反代python项目

通过对上面python项目的使用,我们会发现,在python项目的日志当中我们只可以看到python项目的代理记录,如果我们想看到真实的访问IP,我们就需要用个静态网站进行代理一下。

第一步:我们新建一个静态网站

FTP:不创建

数据库:不创建

php版本:纯静态

网站分类:随意

如果需要SSL证书,我们先启动ssl证书,该申请申请,该启动启动。

第二步:添加反射代理

反代设置:

CSRF相关反向代理

这一步是为了实现表单的提交

加入下面代码

proxy_set_header X-Forwarded-Ssl on;

第三步:配置静态文件映射

location /static/ {
    alias /www/wwwroot/xxxxx/soogor/static/;
    }
location /sg_user/ {
    alias /www/wwwroot/xxxxx/soogor/sg_user/;
    }
#媒体路径,如上传的文件。   
location /media/ {
    alias /www/wwwroot/xxxxx/soogor/media/;
    }
#下面是robots.txt和/favicon.ico
    location /robots.txt {
    alias /www/wwwroot/xxxxx/soogor/static/robots.txt;
    }
    location /favicon.ico {
    alias /www/wwwroot/xxxxx/soogor/static/favicon.ico;
    }
#xxxxx.txt选用,主要用来实现搜索引擎的验证
    location /xxxxx.txt {
    alias /www/wwwroot/xxxxx/soogor/xxxxx.txt;
    }
#注意!注意!注意!上面的xxxxx是路径,soogor是manage.py的所在的文件夹的名字,复制后记得修改

这样我们就可以通过NG的静态看到网站详细的来访IP了

 


Copyright © 2022 All Rights Reserved 威海上格软件有限公司 版权所有

鲁ICP备20007704号

Thanks for visiting my site.