以前のブログ投稿で、 Herokuを使用してNode.jsを無料でホストする方法について説明しました。 次に、数行のコードを使用して、ルート権限なしで他の共有ホストにNode.js 、 npm 、およびComposerをインストールする方法を示します。 これを使用すると、パッケージをインストールしたり、Vue.jsアプリケーションをデプロイしたり、Express.jsサーバーを起動したりできます。 私たちは常にユーザーディレクトリで作業し、 nvm (ノードパッケージマネージャー)を使用します。
コンポーザーとノードが使用できないこと、および次の行が出力を生成しないことを事前に確認することが重要です。:
16c389ff1cdd9380cc5f9244775eb6c8
まず、後で必要となる一時的な環境変数を定義します。そのためには、ユーザーのホームディレクトリ(通常は ~/、一部の共有ホストでは /www/htdocs/xxxxxxx/)と、使用する PHP バージョン(例えば、プロバイダAll-Inklの場合は /usr/bin/php72、 DomainFactoryの場合は /usr/local/bin/php7-72LATEST-CLI)を指定します。:
16c389ff1cdd9380cc5f9244775eb6c8
次に、コンソール上でPHPが最新バージョンで実行されていることを確認します。そのためには、ホームディレクトリに新しいフォルダを作成し、シンボリックリンクを作成して、そのディレクトリをPATH環境変数の先頭に追加します。
16c389ff1cdd9380cc5f9244775eb6c8
ここで、インストールスクリプトをダウンロード、確認、実行し、composer.pharをユーザーディレクトリに配置してシンボリックリンクを再度作成することにより、グローバルコンポーザーをインストールします。:
16c389ff1cdd9380cc5f9244775eb6c8
Node.jsのインストールにはnvmを使用します。これは、Nodeのバージョン切り替えを容易にするために設計されたBashスクリプトです。ここでは、root権限を必要とせずにNode.jsをインストールできるというnvmの機能を活用しています。:
16c389ff1cdd9380cc5f9244775eb6c8
.bashrcの小さな修正が必要でした:
16c389ff1cdd9380cc5f9244775eb6c8
これで、Node.jsの現在の安定バージョンをインストールしてアクティブ化できます:
16c389ff1cdd9380cc5f9244775eb6c8
Nvmの助けを借りて、バージョンを簡単に切り替えることもできます。
16c389ff1cdd9380cc5f9244775eb6c8
私はドイツの複数の共有ホスティングプロバイダーで、これらの手順を問題なく実行できました。一部のホストではシンボリックリンクに問題が発生する場合がありますが、これはエイリアス定義を使用することで解決できます。例えば、以下の.bashrcファイルはDomainFactoryで動作します。:
16c389ff1cdd9380cc5f9244775eb6c8
仮想環境や共有環境では`/proc/stat`へのアクセスにも問題があり、例えばNode関数`os.cpus()`が正しいコア数ではなく`undefined`を返すことがあります。そのため、npmパッケージのインストール時に「undefinedのプロパティ'length'を読み取れません」といったエラーメッセージが表示されます。この問題は、この問題を解決した最新のNode.jsバージョン(例えば11.15.0)を使用することで解決できました。