Node.js / npm /ルートのないComposer

以前のブログ投稿でHerokuを使用してNode.jsを無料でホストする方法について説明しました。 次に、数行のコードを使用して、ルート権限なしで他の共有ホストにNode.jsnpm 、および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

Nvmを使用してNode.jsをインストールします。 これは、ノードのバージョンを簡単に切り替えるために実際に使用されるbashスクリプトです。 ここでは、Node.jsがルート権限なしでインストールされているというプロパティを使用します:

16c389ff1cdd9380cc5f9244775eb6c8

.bashrcの小さな修正が必要でした:

16c389ff1cdd9380cc5f9244775eb6c8

これで、Node.jsの現在の安定バージョンをインストールしてアクティブ化できます:

16c389ff1cdd9380cc5f9244775eb6c8

Nvmの助けを借りて、バージョンを簡単に切り替えることもできます。

16c389ff1cdd9380cc5f9244775eb6c8

私はこれらすべてのステップをいくつかのドイツの共有ホスティングプロバイダーで問題なく実行することができました。 一部のホストではシンボリックリンクに問題がありますが、エイリアス役立ちます。 たとえば、次の.bashrcはDomainFactoryに役立ちます:

16c389ff1cdd9380cc5f9244775eb6c8

仮想/共有環境で/ proc / statにアクセスするときにも問題があります。そのため、たとえば、ノード関数os.cpus()は、正しいコア数ではなく未定義を返します。 npmパッケージをインストールすると、「undefinedのプロパティ 'length'を読み取れません」などのエラーメッセージが表示されます。 私はNode.jsの最近のバージョン(例えば11.15.0)を使用して、問題を解決することができた対処の問題を。

バック