cPanel服务器安装Node.js与npm执行cp命令报No such file or directory错误
报错原因
cp: cannot stat 'nodejs/bin/node': No such file or directory 这个报错没有隐藏逻辑,本质是系统在你当前执行命令的路径下,根本检索不到nodejs/bin/node这个文件。对照教程的步骤,触发原因基本逃不出这几个:
- 教程本身的步骤存在文件名不匹配问题:你下载的压缩包是
node-v10.0.0-linux-arm64.tar.xz,解压后生成的文件夹名固定带-arm64后缀,但步骤4的重命名命令写的是mv node-v10.0.0-linux nodejs——少了后缀的mv命令根本找不到对应的源文件夹,实际执行时这条mv就会直接报错。如果你没注意到这个报错,直接跳去执行mkdir、cp操作,那当前目录下根本没有叫nodejs的文件夹,cp自然找不到目标文件。 - 下载的安装包和服务器架构不匹配:绝大多数普通cPanel虚拟主机是x86_64架构,教程里给的arm64版本安装包根本不适配这类服务器,轻则解压后文件结构错乱,重则下载的文件本身就是损坏的,连node可执行文件都不存在。
- 操作路径错乱:你之前的解压、重命名操作不是在用户主目录(
~)下完成的,后续执行相对路径的cp命令时,系统只会在当前所在目录找nodejs文件夹,自然匹配不到文件。
修复步骤
按顺序执行即可顺利完成安装,不需要额外权限:
- 先确认服务器CPU架构,避免下错安装包:
执行uname -m
输出x86_64就选对应x64架构的Node安装包,输出aarch64再选arm64架构版本。建议不要用教程里的Node 10.0.0版本,这个版本已经完全停止维护,存在大量安全漏洞,优先选Node长期支持稳定版。 - 清理之前操作留下的残留,避免路径混淆:
rm -rf ~/nodejs ~/node-v*.tar.xz ~/node-v*/ - 下载对应架构的Node压缩包,解压后先执行
ls确认解压出来的文件夹的准确名称,再执行重命名,不要硬抄教程里的文件夹名。比如解压后文件夹叫node-v18.17.1-linux-x64,就执行:mv node-v18.17.1-linux-x64 ~/nodejs - 先确认目标文件存在,再执行拷贝,避免无意义报错:
ls ~/nodejs/bin/node
只要命令能输出对应文件的路径,就说明路径是正确的,不会再出现找不到文件的问题。 - 执行后续安装命令:
mkdir -p ~/bin cp ~/nodejs/bin/node ~/bin cd ~/bin ln -s ~/nodejs/lib/node_modules/npm/bin/npm-cli.js npm - 验证安装:
回到主目录执行node --version、npm --version,能正常输出版本号就说明安装完成。如果提示命令不存在,就把~/bin加入用户环境变量,执行以下命令后重启SSH连接即可生效:echo 'export PATH=$PATH:~/bin' >> ~/.bashrc
后续配置注意点
- 启动Node应用时,指定的监听端口需要在cPanel面板的端口权限列表里放行,不要占用系统保留的常用端口。
- 配置.htaccess的请求转发规则时,要把规则写在站点根目录.htaccess文件的最顶部,避免其他规则冲突导致转发失效。
内容的提问来源于stack exchange,提问作者JamesArthur
相关产品推荐
相关产品推荐

