我已经在本地机器(Linux Mint 15)上安装了 apache webserver,并且在我尝试安装 npm/nodejs 之前一切都运行正常。
每当我尝试启动 Apache 时都会出现此错误 -
module.js:340
throw err;
^
Error: Cannot find module '/LANG=en_US.UTF-8'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:901:3
我搜索了互联网以寻找解决此问题的方法并让 apache 重新工作,但没有成功。
我的问题是这样的 - 我不需要nodejs。我已经删除并卸载了npm
正在node
使用的。我已手动从和中apt-get
删除了所有node_modules
和node
目录。但问题仍然存在。/usr/lib
~
我检查了 apache 的每个 .conf 和 .load 文件,但仍然无法弄清楚 apache 在哪里/如何/为何加载module.js
文件node.js
。
有人可以帮忙吗?
编辑:
我的文件夹内容mods-enabled
:
access_compat.load authz_user.load filter.load php5.load
alias.conf autoindex.conf mime.conf setenvif.conf
alias.load autoindex.load mime.load setenvif.load
auth_basic.load deflate.conf mpm_prefork.conf status.conf
authn_core.load deflate.load mpm_prefork.load status.load
authn_file.load dir.conf negotiation.conf
authz_core.load dir.load negotiation.load
authz_host.load env.load php5.conf
答案1
好吧,我终于明白了这一点!
首先,问题(我怀疑)是一个损坏的/usr/bin/env
文件,该文件被编辑(可能是通过 npm/nodejs 安装)以通过看起来与节点相关的附加 shell 脚本加载许多(很多、很多)其他文件。
其次,apache2 安装的 mpm_prefork 也已损坏 - 这可能是我的错,试图查找/修复上述错误,我可能做了一些事情!
解决方案是重新安装所有内容 -
sudo apt-get install --reinstall coreutils
—— 修复/usr/bin/env
文件。
sudo apt-get purge apache2 apache2-utils apache2.2-bin
sudo apt-get autoremove
-- 卸载并清理现有的 apache2 安装
sudo apt-get install apache2
-- 全新安装 apache2
如果有人遵循本指南,请不要忘记备份您的虚拟主机配置或自定义 php.ini 配置(如果有)。