
问答社区
Nginx配置:提供伪静态配置和WebSocket代理配置(/ws路径)
我们正在使用宝塔面板搭建一个后端环境。根据教程,我们需要安装和配置多个组件。以下是详细步骤:
1. 环境要求:
- Nginx: 1.16+,推荐1.24
- PHP: 7.2.x
- MySQL: 5.7~8.0,推荐5.7
- Redis: 7.x/6.x/5.x,推荐7.3
- Node.js版本管理器
- Supervisor管理器(进程管理器)
2. PHP扩展:需要安装fileinfo, redis, swoole4, imagemagick, opcache。同时,要求删除函数`proc_open`。
3. 新建一个站点,并部署后台程序。
4. Nginx配置:提供伪静态配置和WebSocket代理配置(/ws路径)。
5. 安装swoole扩展:需要上传`swoole_loader73.so`文件到指定目录,并在PHP配置中添加相关设置,包括指定许可证文件路径。
6. Node.js版本管理器:安装v16.19.1版本。
7. Supervisor配置:
- 通过yum安装supervisor。
- 安装进程守护管理器插件(注意版本要求)。
- 修改主配置文件,并重启supervisord。
8. 数据库:新建一个字符集为utf8mb4的数据库,并导入数据。
9. 注意事项:不要使用CDN。
10. 后台登录账号:admin,密码:admin123。
现在,我们将按照这个流程来操作。由于我们是在宝塔面板中操作,大部分步骤可以通过图形界面完成。
具体步骤:
### 1. 安装所需软件
在宝塔面板的“软件商店”中安装:
- Nginx(选择1.24版本)
- PHP 7.3(注意:教程要求7.2.x,但后面提到了PHP7.3的目录,所以我们安装7.3版本。可能是教程笔误?如果没有7.2,则用7.3。如果有7.2则安装7.2)
- MySQL 5.7
- Redis(推荐7.3,如果没有7.3,选择7.x)
- 安装“Node.js版本管理器”插件
- 安装“Supervisor管理器”插件(注意版本要求:3.0.1或3.0.0,不要3.0.2)
注意:如果PHP7.2和7.3都可用,根据教程后面提到的路径(/www/server/php/73)来看,应该使用PHP7.3。所以这里我们安装PHP7.3。
### 2. 配置PHP
进入PHP7.3的设置:
- 安装扩展:fileinfo, redis, swoole4, imagemagick, opcache。
注意:swoole4扩展可能需要通过“安装扩展”选项卡来安装。如果宝塔的扩展列表中没有swoole4,可以选择安装swoole(并选择版本4),或者手动编译安装。
- 在“禁用函数”中,删除`proc_open`函数(将其从禁用列表中移除)。
### 3. 新建站点
- 在网站菜单中,添加站点。
- 设置域名(如果没有域名,可以使用IP或本地hosts解析的域名)。
- 选择PHP版本为7.3。
### 4. 配置Nginx
在站点的设置中,修改Nginx配置:
- 在“伪静态”中,填入教程提供的伪静态规则。
- 在“配置修改”中,添加WebSocket代理的配置(即`location /ws`部分)。注意:这个配置应该放在server块内,与其他location同级。
### 5. 安装swoole_loader
- 按照教程,将`swoole_loader73.so`文件上传到`/www/server/php/73/lib/php/extensions/no-debug-non-zts-20180731`目录(注意:目录中的`20180731`可能因PHP版本和编译参数不同而不同,请根据实际情况调整。可以通过PHP信息页面查看扩展目录)。
- 然后,在PHP配置文件的最后(通过宝塔的PHP配置修改),添加:
```
[swoole]
extension = swoole.so
extension = swoole_loader73.so
swoole_loader.license_files=/www/wwwroot/你的站点目录/swoole-compiler.license
```
注意:需要将许可证文件`swoole-compiler.license`上传到站点目录(绝对路径),并在配置中指定正确路径。
### 6. 安装Node.js
- 在“软件商店”中找到“Node.js版本管理器”,进入。
- 找到v16.19.1,点击安装。
### 7. 配置Supervisor
- 通过SSH终端执行:`yum install supervisor -y`(如果已经安装则跳过)。
- 在宝塔面板的“软件商店”中安装“Supervisor管理器”插件(注意版本)。
- 进入Supervisor管理器的设置,点击“主配置文件”,用教程提供的配置替换。
- 然后,在SSH终端执行:`pkill -9 supervisord`,然后重启Supervisor服务(可以在宝塔插件界面重启,或者使用命令`supervisord -c /etc/supervisord.conf`启动)。
### 8. 数据库
- 在宝塔的数据库菜单中,新建一个数据库,字符集选择`utf8mb4`。
- 导入数据库文件。
### 9. 部署程序
- 将后台程序文件上传到站点目录。
- 确保许可证文件`swoole-compiler.license`已上传到站点目录(绝对路径,与PHP配置中的路径一致)。
### 10. 访问网站
通过浏览器访问站点,使用后台账号admin和密码admin123登录。
注意:教程中强调不要使用CDN,因此确保域名直接解析到服务器IP。
以上步骤涵盖了教程的主要内容。由于实际操作中可能会遇到路径或版本差异,请根据实际情况调整。
根据提供的教程,以下是基于宝塔面板的后端环境搭建步骤:
一、环境准备
-
安装必要组件(在宝塔面板的「软件商店」中安装):
-
Nginx 1.24(推荐)
-
PHP 7.2.x
-
MySQL 5.7(推荐)
-
Redis 7.3(推荐)
-
Node.js 版本管理器
-
Supervisor 管理器(进程守护)
-
-
PHP 扩展安装:
-
进入 PHP 7.3 的「设置」→「安装扩展」:
-
fileinfo
-
redis
-
swoole4
-
imagemagick
-
opcache
-
-
删除禁用函数:
在 PHP 设置的「禁用函数」中移除proc_open
。
-
二、站点部署
-
新建站点:
-
域名填写您的实际域名(或服务器IP)。
-
PHP 选择 7.3 版本。
-
数据库选择 MySQL 5.7,字符集设为
utf8mb4
。
-
-
Nginx 伪静态配置:
在站点设置的「伪静态」中粘贴以下规则:location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; break; } } location /ws { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_pass_request_headers on; proxy_read_timeout 60s; proxy_pass http://127.0.0.1:9501; }
三、Swoole 扩展配置
-
上传文件:
-
将
swoole_loader73.so
上传到目录:
/www/server/php/73/lib/php/extensions/no-debug-non-zts-20180731/
-
将
swoole-compiler.license
上传到站点根目录(如/www/wwwroot/your-domain.com/
)。
-
-
修改 PHP 配置:
在 PHP 7.3 的「配置文件」末尾添加:[swoole] extension = swoole.so extension = swoole_loader73.so swoole_loader.license_files=/www/wwwroot/your-domain.com/swoole-compiler.license
替换
your-domain.com
为实际站点目录名。
四、Node.js 配置
-
在「Node.js 版本管理器」中安装 v16.19.1。
五、Supervisor 配置
-
安装 Supervisor(通过 SSH 执行):
yum install supervisor -y
-
安装插件:
-
在宝塔「软件商店」安装 Supervisor 管理器 3.0.1 或 3.0.0(勿用 3.0.2)。
-
-
修改主配置:
-
打开 Supervisor 的「主配置文件」,替换为以下内容:
[unix_http_server] file=/var/run/supervisor.sock [inet_http_server] port=127.0.0.1:9001 [supervisord] logfile=/var/log/supervisord.log pidfile=/var/run/supervisord.pid [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [supervisorctl] serverurl=unix:///var/run/supervisor.sock serverurl=http://127.0.0.1:9001 [include] files = /www/server/panel/plugin/supervisor/profile/*.ini
-
-
重启 Supervisor:
pkill -9 supervisord supervisord -c /etc/supervisord.conf # 重新启动
六、数据库初始化
-
在宝塔「数据库」中创建新数据库:
-
字符集选择
utf8mb4
。
-
-
导入您的 SQL 文件。
七、访问系统
-
上传程序文件:
将后端代码上传到站点根目录。 -
访问后台:
-
地址:
http://您的域名或IP
-
账号:
admin
-
密码:
admin123
-
关键注意事项
-
禁用 CDN:
-
系统依赖实时数据与 WebSocket(端口
9501
),使用 CDN 会导致功能异常。
-
-
Supervisor 版本:
-
必须使用 3.0.1 或 3.0.0 版本,避免 3.0.2 的 Bug。
-
-
文件权限:
-
确保
swoole-compiler.license
的路径在 PHP 配置中正确,且文件可读。
-
-
防火墙设置:
-
放行端口:
80
(HTTP)、443
(HTTPS)、9501
(WebSocket)。
-
按以上步骤操作即可完成部署。遇到问题可检查 Nginx 错误日志(/www/wwwlogs/域名.error.log
)和 PHP 日志(/www/server/php/73/var/log/php-fpm.log
)。