デーモンをどのアカウントで実行するのか、アプリケーションをどのように追加するのか悩んでいます。
現在ルートディレクトリにあります。
PM2 v4.2.3: 新デーモン (/root/.pm2)
ただし、他のアプリケーションを追加するためにbashスクリプトを実行すると、sudo権限を持つbradとしてログインします。だから別のデーモンを起動しようとしています。
PM2 v4.2.3: 新デーモン(/brad/.pm2)
ルートインスタンスの代わりにBradインスタンスにアプリケーションを追加します。
どのように構造化するのか分かりません。究極の目標は、PHP Webページでbashスクリプトを実行してアプリケーションを追加することです。 nginx Webサーバーとphp-frmはwww-dataユーザーとして実行されます。それでは、そのユーザーとしてGod Daemonを実行し、www-data sudo権限も付与する必要がありますか?ここではセキュリティの問題が心配です。これは正しい解決のために非常に重要であると思うので、これを助けてくれてありがとう。 Ubuntu 18.4を使用しています
答え1
StackExchangeへようこそ。 PM2が簡単に動作するように制御したいアプリケーションと同じ(分離された)ユーザーでPM2を実行することをお勧めします。
まず、ノードコードをローカルユーザーとして設定し、すべての "npm"コマンドをルートではなくローカルユーザーとして実行する必要があります。
""をrootとして実行すると、
npm -g install xyz
パッケージは "/usr/local/lib/node_modules/"に移動します。 「-g」はグローバルを意味します。それ以外の場合は、rootユーザーディレクトリに移動します。" "ユーザーとして実行すると、
npm install xyz
パッケージは "/home//.pm2/node_modules/"に移動します...これが私が推奨する方法です。
その後、PM2の正しい起動スクリプトを取得するには、pm2 startup -u <username> upstart
Ubuntu 14.04などの以前のディストリビューションではpm2 startup -u <username>
「ここで、 " <username>
"は「ブラッド」ケースです。ファイルまたは必要な他のもの。私たちは、NodeJSアプリケーション用に別々のユーザーを作成し、すべてが1つのユーザーの下に分離されるようにしました。これにより、管理も簡単になります。ただし、「brad」または「root」でログインしてpm2を実行すると、ログインしたユーザーディレクトリに対して実行されるため、他のユーザーとして実行されているアプリケーションは表示されません。つまり、pm2を「brad」として実行すると、「brad」で管理されているアプリケーションが表示されます。
pm2のマニュアルページによると、これを設定する他の方法がありますが、うまく動作しないことがわかりました。