服务器执行Next Build时出现Permission Denied错误如何解决?
解决NextJS部署时
next: Permission denied错误 针对你遇到的问题——即使以root身份执行npm run build仍提示next: Permission denied,可以尝试以下几种解决方案:
1. 调用本地node_modules中的next命令
执行npm install后,next会被安装在项目的node_modules/.bin目录下。直接调用本地next命令可避免全局路径配置问题:
cd ~/nifty-tales git pull npm install ./node_modules/.bin/next build pm2 restart nifty-tales
2. 确保npm全局路径在root的环境变量中
若next为全局安装,可能root用户的PATH未包含npm全局bin目录。先执行which next找到全局next路径(比如/usr/local/bin/next),再在deploy.sh中配置路径:
cd ~/nifty-tales export PATH="/usr/local/bin:$PATH" # 替换为你的npm全局bin路径 git pull npm install npm run build pm2 restart nifty-tales
3. 修复项目目录及文件权限
git拉取代码后,部分文件的所有者或权限可能异常。添加权限修复步骤:
cd ~/nifty-tales git pull chown -R root:root . # 将项目所有文件的所有者改为root chmod -R 755 . # 赋予目录和基础读写执行权限 npm install npm run build pm2 restart nifty-tales
4. 使用完整路径调用npm
若root环境变量未正确配置npm路径,先执行which npm获取完整路径,再修改deploy.sh:
cd ~/nifty-tales git pull /usr/local/bin/npm install # 替换为你的npm完整路径 /usr/local/bin/npm run build pm2 restart nifty-tales
内容的提问来源于stack exchange,提问作者Aritra Roy
相关产品推荐
相关产品推荐

