1111111111111111

### 考试系统部署

```
Linux安装宝塔

url=https://download.bt.cn/install/install_lts.sh;if [ -f /usr/bin/curl ];then curl -sSO $url;else wget -O install_lts.sh $url;fi;bash install_lts.sh ed8484bec

1.宝塔安装完后登录宝塔,点击【软件商店】菜单,安装以下环境
Nginx 1.24 如果没有找到此版本,选择最新版本即可
PHP 7.4 和 PHP 8.1
Mysql 5.7
phpMyAdmin 5.0 安装后设置php版本为7.4
Reids    7.0
进程守护管理器 3.0.5

PHP8.1点击【安装扩展】找到redis,点击安装,
【配置修改】:
max_execution_time 600
max_input_time 600
memory_limit 800M
post_max_size 500M
upload_max_filesize 500M
default_socket_timeout 600
【超时限制】100秒

PHP禁用函数检查,终端执行脚本 
curl -Ss https://www.workerman.net/webman/fix-disable-functions | php 
以解除禁用

2.点击【网站】菜单,点击【添加站点】按钮,输入域名zk.zwypt.com,数据库选择Mysql,输入数据库账号
和密码,php版本选择81,最后点击确定。

3.在【数据库】菜单找到创建的数据库,点击导入,点击【从本地上传】按钮,选择本地的SQL文件,上传后点击【导入】操作,完成数据库导入。点击【网站】菜单,点击刚才创建网站的根目录,进入网站根目录,上传部署文件,修改配置文件.env中的数据库配置和redis配置

4.到【软件商店】中点击【进程守护管理器】设置按钮,在设置界面点击【添加守护进程】按钮,
【添加守护进程】添加设置,
名称 examSystem
启动用户 www
运行目录 /www/wwwroot/zk.zwypt.com

启动命令根据上传网站的部署文件输入:

部署方式1. 项目为构建后的单文件webman.phar部署
启动命令 php webman.phar start

部署方式2.项目为源码部署
启动命令 php start.php start

点击确定后在进程列表查看进程管理是否是【已启动】

5.服务启动后回到【网站】,点击【站点修改】,点击【网站目录】,选择运行目录为public,点击保存,点击【配置文件】,
在配置文件最顶部输入以下配置:
upstream webmanzk {
    server 127.0.0.1:8788;
    keepalive 10240;
}

在下面server配置里,添加以下配置:
    location / {
      try_files $uri $uri/ /index.html;
    }
    location ^~ /api {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_http_version 1.1;
        proxy_set_header Connection "Keep-Alive";
        
        if (!-f $request_filename){
            proxy_pass http://webmanzk;
        }
        
    }
    
    location ^~ /teacher {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_http_version 1.1;
        proxy_set_header Connection "Keep-Alive";
        
        if (!-f $request_filename){
            proxy_pass http://webmanzk;
        }
        
    }
    
    location ^~ /student {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_http_version 1.1;
        proxy_set_header Connection "Keep-Alive";
        
        if (!-f $request_filename){
            proxy_pass http://webmanzk;
        }
        
    }
最后点击【保存】按钮。

6.域名本地映射配置。
需要访问考试系统的设备,修改host文件,路径在【C:\Windows\System32\drivers\etc】添加以下配置
对应的考试系统ip zk.zwypt.com,例如服务器的内网ip为192.168.1.10,则添加配置如下:
192.168.1.10 zk.zwypt.com
```

### 完整的站点配置文件参考:

```

upstream webmanzk {
    server 127.0.0.1:8788;
    keepalive 10240;
}

server
{
    listen 80;
    server_name zk.zwypt.com;
    index index.html index.php index.htm default.php default.htm default.html;
    root /www/wwwroot/zk.zwypt.com/public;

    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #SSL-END

    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    #ERROR-PAGE-END

    #PHP-INFO-START  PHP引用配置,可以注释或修改
    include enable-php-81.conf;
    #PHP-INFO-END

    #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
    include /www/server/panel/vhost/rewrite/zk.zwypt.com.conf;
    #REWRITE-END
    
    location / {
      try_files $uri $uri/ /index.html;
    }
    location ^~ /api {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_http_version 1.1;
        proxy_set_header Connection "Keep-Alive";
        
        if (!-f $request_filename){
            proxy_pass http://webmanzk;
        }
        
    }
    
    location ^~ /teacher {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_http_version 1.1;
        proxy_set_header Connection "Keep-Alive";
        
        if (!-f $request_filename){
            proxy_pass http://webmanzk;
        }
        
    }
    
    location ^~ /student {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_http_version 1.1;
        proxy_set_header Connection "Keep-Alive";
        
        if (!-f $request_filename){
            proxy_pass http://webmanzk;
        }
        
    }
    

    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }

    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }

    #禁止在证书验证目录放入敏感文件
    if ( $uri ~ "^/\.well-known/.*\.(php|jsp|py|js|css|lua|ts|go|zip|tar\.gz|rar|7z|sql|bak)$" ) {
        return 403;
    }

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log /dev/null;
        access_log /dev/null;
    }

    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log /dev/null;
        access_log /dev/null;
    }
    access_log  /www/wwwlogs/zk.zwypt.com.log;
    error_log  /www/wwwlogs/zk.zwypt.com.error.log;
}
```


### 文件服务器部署

```
注意:文件服务器占用服务器资源和存储空间较多,不建议跟考试系统部署在同一台服务器。

安装环境跟以上相同,点击【软件商店】菜单,需要多安装以下软件:
ffmpeg管理器 6.1
部署方式也跟上面考试系统相同步骤部署。
以下是对应的配置文件参考:
upstream webmanfile {
    server 127.0.0.1:8585;
    keepalive 10240;
}
server
{
    listen 80;
    listen 443 ssl http2;
    server_name files.zwypt.com;
    index index.html index.htm;
    root /www/wwwroot/file.zwypt.com/public;
    client_body_buffer_size 128k;
    client_max_body_size 500M;
    proxy_connect_timeout 600;
    proxy_send_timeout 600;
    proxy_read_timeout 600;
    send_timeout 600;
    
    location / {
      rewrite ^/$ /index/index last;
    }
    
    location ^~ /index {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        
        
        if (!-f $request_filename){
            proxy_pass http://webmanfile;
        }
        
    }

        #CERT-APPLY-CHECK--START
        # 用于SSL证书申请时的文件验证相关配置 -- 请勿删除
        include /www/server/panel/vhost/nginx/well-known/file.zwypt.com.conf;
        #CERT-APPLY-CHECK--END

    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    ssl_certificate    /www/server/panel/vhost/cert/file.zwypt.com/fullchain.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/file.zwypt.com/privkey.pem;
    ssl_protocols TLSv1.1 TLSv1.2;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=31536000";
    error_page 497  https://$host$request_uri;

    #SSL-END

    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    #ERROR-PAGE-END

    #PHP-INFO-START  PHP引用配置,可以注释或修改
    include enable-php-00.conf;
    #PHP-INFO-END

    #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
    include /www/server/panel/vhost/rewrite/file.zwypt.com.conf;
    #REWRITE-END

    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }

    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }

    #禁止在证书验证目录放入敏感文件
    if ( $uri ~ "^/\.well-known/.*\.(php|jsp|py|js|css|lua|ts|go|zip|tar\.gz|rar|7z|sql|bak)$" ) {
        return 403;
    }

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log /dev/null;
        access_log /dev/null;
    }

    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log /dev/null;
        access_log /dev/null;
    }
    access_log  /www/wwwlogs/file.zwypt.com.log;
    error_log  /www/wwwlogs/file.zwypt.com.error.log;
}
```

### 其他说明:

```
网站日志文件路径:
runtime/logs
如果登录系统失败,可在此路径找到路径,查看对应日志文件的错误信息。
```

### 考试系统项目配置参考:

```
SERVICE_PORT=8787
APP_DEBUG=true
APP_URL=http://zk.zwypt.com
APP_NAME=教育系统

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=exam_system
DB_USERNAME=
DB_PASSWORD=

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=
REDIS_PORT=6379
```

### 文件系统项目配置参考:

```
IS_DEBUG=true
SERVER_PORT=8585
SERVER=http://0.0.0.0:8787
MAX_PACKAGE_SIZE=524288000

DB_HOST=127.0.0.1
DB_PORT=3306
DB_NAME=file_system
DB_USER=file_system
DB_PASSWORD=

REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_PASSWORD=
REDIS_DB_INDEX=0

SINGLE_LOG_SIZE=2097152

FFMPEG_BINARIES=/www/server/ffmpeg/ffmpeg-6.1/ffmpeg
FFPROBE_BINARIES=/www/server/ffmpeg/ffmpeg-6.1/ffprobe
```

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值