在较早的博客文章中,我描述了如何使用Heroku免费托管Node.js。 现在,我将向您展示一种如何通过几行代码在没有root权限的情况下在任何其他共享主机上安装Node.js , npm和Composer的方法。 使用它,您可以安装软件包,部署Vue.js应用程序或仅启动Express.js服务器。 我们始终在用户目录中工作,并使用nvm-节点软件包管理器。
重要的是要事先确保 Composer 和 Node 不存在并且以下行不会产生任何输出:
16c389ff1cdd9380cc5f9244775eb6c8
首先,我们定义一些稍后会用到的临时环境变量。为此,我们指定用户的主目录(通常是 ~/,在某些共享主机上也可能是 /www/htdocs/xxxxxxx/)和所需的 PHP 版本(例如,使用All-Inkl提供程序时为 /usr/bin/php72,使用DomainFactory提供程序时为 /usr/local/bin/php7-72LATEST-CLI)。:
16c389ff1cdd9380cc5f9244775eb6c8
现在我们要确保控制台上运行的是最新版本的 PHP。为此,我们将在用户主目录中创建一个新文件夹,创建一个符号链接,并将该目录添加到 PATH 环境变量的开头。
16c389ff1cdd9380cc5f9244775eb6c8
现在,我们通过下载,检查和执行安装脚本来安装全局composer,然后还将composer.phar放置在用户目录中并再次创建符号链接:
16c389ff1cdd9380cc5f9244775eb6c8
我们使用 nvm 来安装 Node.js。这是一个 Bash 脚本,其设计初衷是为了方便地切换 Node 版本。在这里,我们利用了它无需 root 权限即可安装 Node.js 的特性。:
16c389ff1cdd9380cc5f9244775eb6c8
我需要对.bashrc进行一些小的更正:
16c389ff1cdd9380cc5f9244775eb6c8
现在我们可以安装并激活当前稳定的Node.js版本:
16c389ff1cdd9380cc5f9244775eb6c8
借助nvm,我们还可以轻松切换版本。
16c389ff1cdd9380cc5f9244775eb6c8
我在几家德国共享主机提供商那里都顺利完成了所有这些步骤。有些主机对符号链接存在问题,但这也可以通过别名定义来解决。例如,以下 .bashrc 文件适用于 DomainFactory。:
16c389ff1cdd9380cc5f9244775eb6c8
还有一些问题,例如,在虚拟/共享环境中访问/proc/stat时,这就是为什么节点函数 os.cpus()返回未定义而不是正确的核心编号。这会导致在安装 npm 包时出现“无法读取未定义的属性‘长度’”之类的错误消息。我能够通过使用解决该问题的最新 Node.js 版本(例如 11.15.0)来解决该问题。