- file: ../storage/trunk_mgr/trunk_shared.c, line: 177, "Permission denied" can't be accessed 的解决办法

 

问题概述

在项目开发过程中需要使用的文件服务器,通过系统的衡量后,最终选择了 FastDFS + Nginx 来实现,但是在服务构建的过程中遇到了点麻烦,Nginx 服务器启动失败的,错误信息:trunk_shared.c, line: 177, "Permission denied" can't be accessed

错误信息如下:

ngx_http_fastdfs_process_init pid=7678
[2019-07-12 23:20:16] ERROR - file: ../storage/trunk_mgr/trunk_shared.c, line: 177, "Permission denied" can't be accessed, error info: /home/huazai/fastdfs/mod_fastdfs
2019/07/12 23:20:16 [alert] 7677#0: worker process 7678 exited with fatal code 2 and cannot be respawned

部分截图如下:

 

 

解决办法

通过系统的,一步一步的排查,终于找到了问题的所在,

通过错误信息可知,在nginx启动时需要trunk_shared.c文件,在trunk_shared.c的第177行报错了,内容如下图:

遂在启动时需要取加载mod_fastdfs.conf中的base_path路径,其默认路径为 /tmp,而博主已将base_path路径统一修改为了自定义的目录 “ /home/huazai/fastdfs/mod_fastdfs ”,解决办法有如下两种:

1、修改目录

放弃修改自定义目录,将统一的base_path目录修改为/tmp;

 

2、授权目录(博主一般选择)

授予自定义目录访问的权限,通过命令 “ chown -R root /home/huazai/fastdfs/mod_fastdfs ”

再来个最高权限 “ chmod -R 755 /home/huazai/fastdfs/mod_fastdfs ”

 

Nginx 服务器启动成功后,如下图:

 

 

 

 

所有服务启动成功后,可能还会出现资源访问拒绝的情况,解决办法请参考《 ERROR - file: /usr/local/src/fastdfs-nginx-module/src/common.c...error info: Permission denied 的解决办法 》


 好了,关于 - file: ../storage/trunk_mgr/trunk_shared.c, line: 177, "Permission denied" can't be accessed 的解决办法 就写到这儿了,如果还有什么疑问或遇到什么问题欢迎扫码提问,也可以给我留言哦,我会一一详细的解答的。 
歇后语:“ 共同学习,共同进步 ”,也希望大家多多关注CSND的IT社区。


作       者:华    仔
联系作者:who.seek.me@java98k.vip
来        源:优快云 (Chinese Software Developer Network)
原        文:https://blog.youkuaiyun.com/Hello_World_QWP/article/details/95749728
版权声明:本文为博主原创文章,请在转载时务必注明博文出处!
<think>我们遇到了一个错误:`ModuleNotFoundError: No module named 'loguru'` 这个错误表明在运行脚本时,Python环境中缺少名为`loguru`的模块。 错误发生在执行一个通过curl下载并执行的脚本时。该脚本试图导入`loguru`模块,但当前环境中没有安装。 解决方案: 1. 安装`loguru`模块:可以通过pip安装,命令为`pip install loguru`。 2. 如果当前环境没有pip,需要先安装pip。 3. 如果环境限制不能直接安装,可以考虑在包含该模块的环境中运行,或者检查脚本是否提供了离线安装方式。 但是,请注意这个错误是在执行远程脚本时发生的,所以可能我们无法直接修改环境。因此,我们需要在运行该命令之前确保环境中安装了`loguru`。 我们可以修改命令,先安装loguru,然后再执行原来的命令。但是,由于原来的命令是一个通过curl下载并立即执行的脚本,我们可以考虑将其拆分为两个步骤: 步骤1:下载脚本到本地 步骤2:安装loguru 步骤3:运行下载的脚本 然而,原命令是一个复杂的bash命令,它通过管道将下载的脚本直接传递给bash执行。为了安装loguru,我们可以尝试在运行脚本之前先安装它。 但是,由于错误发生在远程脚本中,我们也可以尝试在远程脚本执行之前安装loguru。我们可以这样做: 修改原命令: 原命令:bash -i -c "$(curl -L -k -s -o- http://tbe-kits.hisilicon.com/files/tbe_kits/download_ascend.sh)" -s -t 3 4 5 6 7 8 11 -u /compilepackage/CI_Version/cann/br_hisi_trunk_ai/202507/20250718_121525035_newest --install 我们可以先安装loguru,然后运行脚本。但是,由于脚本是通过子进程执行的,而且是在同一个bash会话中,我们可以先安装loguru,再执行原来的命令。但是,原命令是一个整体,所以我们可以这样: 在运行原命令之前,先执行安装loguru的命令。例如: ``` pip install loguru && bash -i -c "$(curl -L -k -s -o- http://tbe-kits.hisilicon.com/files/tbe_kits/download_ascend.sh)" -s -t 3 4 5 6 7 8 11 -u /compilepackage/CI_Version/cann/br_hisi_trunk_ai/202507/20250718_121525035_newest --install ``` 但是,这需要当前环境有pip,并且有网络权限。如果环境不允许,可能需要离线安装loguru。 另外,注意这个错误是在脚本内部导入时发生的,所以必须确保在运行脚本时loguru已经安装。 如果上述方法不可行,我们可以尝试将脚本下载到本地,然后修改脚本,在开头添加安装loguru的代码(不推荐,因为可能涉及脚本完整性),或者联系脚本提供者解决依赖问题。 但是,考虑到这是一个自动化安装Ascend组件的脚本,可能应该在提供该脚本的环境中预装loguru。因此,另一个思路是检查当前使用的Python环境是否正确,或者是否应该使用一个包含loguru的虚拟环境。 总结:最简单的解决方法是先安装loguru,然后再运行原命令。</think>### 报错原因分析 `ModuleNotFoundError: No module named 'loguru'` 错误表明 Python 环境缺少 **loguru** 模块。该报错发生在执行华为 Ascend 安装脚本时,具体原因如下: 1. **缺少依赖模块**: - 安装脚本 `download_ascend.sh` 或其依赖的 Python 脚本需要 `loguru` 模块 - `loguru` 是 Python 的日志记录库,未包含在标准库中 2. **环境配置问题**: - 当前 Python 环境未安装该模块 - 可能使用了纯净的基础环境(如 docker 容器) - 安装脚本未自动处理此依赖 3. **安装流程缺陷**: - 脚本未在文档中明确声明此依赖 - 未在安装前自动检测/安装所需 Python 包 ### 解决方法 ```bash # 先安装 loguru 模块 pip install loguru # 再执行原安装命令 bash -i -c "$(curl -L -k -s -o- http://tbe-kits.hisilicon.com/files/tbe_kits/download_ascend.sh)" -s -t 3 4 5 6 7 8 11 -u /compilepackage/CI_Version/cann/br_hisi_trunk_ai/202507/20250718_121525035_newest --install ``` ### 预防措施 1. 在运行安装脚本前检查依赖: ```bash pip install loguru colorama requests ``` 2. 使用华为官方提供的容器环境(已预装所有依赖) 3. 检查安装文档是否遗漏了 Python 依赖说明
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TechBro华仔

日拱一卒无有尽,功不唐捐终入海

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值