根据魔众文库系统的文档,异步转换需要配置队列服务和定时任务。我的环境(宝塔 PHP 8.1,网站目录/www/wwwroot/hongchaovip.cn/wwwroot)的完整配置步骤:
首先编辑网站根目录下的.env文件,设置队列驱动为 Redis(推荐):
# 队列驱动改为redis
QUEUE_CONNECTION=redis
# Redis配置(根据你的实际Redis信息修改)
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=你的Redis密码(如果没有则留空)
REDIS_PORT=6379
REDIS_DB=0
在宝塔面板中安装 Supervisor 管理器,然后添加以下配置:
- 名称:
wenku-queue
- 启动用户:
www
- 运行目录:
/www/wwwroot/hongchaovip.cn/wwwroot
- 启动命令:
/www/server/php/81/bin/php artisan queue:work --tries=3 --daemon
- 进程数量:
2-4(根据服务器配置调整)
在宝塔面板的 “计划任务” 中添加以下定时任务:
- 任务类型:
Shell脚本
- 执行周期:
每1分钟
- 脚本内容:
- cd /www/wwwroot/hongchaovip.cn/wwwroot && /www/server/php/81/bin/php artisan schedule:run >> /dev/null 2>&1
配置完成后,需要:
- 重启 Supervisor 服务,确保队列进程正常启动
- 确认定时任务已启用
- 执行以下命令清除缓存:
cd /www/wwwroot/hongchaovip.cn/wwwroot
/www/server/php/81/bin/php artisan cache:clear
/www/server/php/81/bin/php artisan config:clear
- 确保已安装 PHP 的 Redis 扩展(在宝塔 PHP 管理中安装)
- 确保 Redis 服务已正常运行
- 转换服务需要足够的服务器资源,特别是内存和 CPU
- 可以通过
storage/logs/laravel.log查看队列运行日志排查问题
配置完成后,系统会自动处理文档转换任务,不会再阻塞前端请求。
如果遇到:You can’t run this command as root ( uid = 0 ).
一是swoole_loader模块重复加载的警告,二是禁止使用 root 用户执行 artisan 命令(出于安全限制)。
在宝塔环境中,网站相关命令应该用www用户(网站运行用户)执行,而不是 root。操作步骤:
- 保持当前目录(已在
/www/wwwroot/hongchaovip.cn/wwwroot),执行以下命令
# 切换到www用户并执行配置缓存命令
sudo -u www /www/server/php/81/bin/php artisan config:cache
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
版权申明:网站字体及图片来源于互联网,如果侵犯了您的权利,请联系我们,我们将尽快改正我们的错误,谢谢您的理解!