
少し話題から外れていると思う人もいるかもしれませんが、サーバーのせいなのか、私の設定ファイルのせいなのかはわかりません。
React.js プロジェクトを作成しましたが、サーバー側レンダリングが必要なので、CRA から next.js に移行する必要があります。問題: Web サイトを Apache Web サーバーにアップロードする必要があります。Google から収集した情報によると、node.js と pm2 (最新バージョン) をインストールし、リバース プロキシ用に Apache を構成する必要があります。また、pm2 用のエコシステムも作成しました (必要だったと思います)。現時点では次のようになっています。
module.exports = {
apps : [{
name: "nextjs-app",
script: "npm",
args: "run build",
env: {
NODE_ENV: "production"
}
}]
};
しかし、 pm2 start npm -- start を実行すると、ターミナルから次のような応答が返されます。
pm2 start npm -- start
[PM2] Spawning PM2 daemon with pm2_home=/home/georgianar/.pm2
[PM2] PM2 Successfully daemonized
[PM2] Starting /usr/local/bin/npm in fork_mode (1 instance)
[PM2] Done.
しかし、プロセスのリストを見ようとすると何もなく、ユーザーがウェブサイトにアクセスしようとすると、サイトログにポート3000にサービスがないことが示されます。
AH01114: HTTP: failed to make connection to backend: localhost
そして
(111)Connection refused: AH00957: http: attempt to connect to 127.0.0.1:3000 (localhost:3000) failed
したがって、この混乱の原因がサーバーのせいなのか、それとも私の設定ファイルなのかはわかりません。何かアイデアはありますか?
答え1
まず、package.jsonに以下のコマンドが存在することを確認してください。
"scripts": {
"start": "next start -p 3000"
}
次のコマンドを使用します
pm2 start yarn --name "nextjs-app" --interpreter bash -- start
詳細なプロセス情報を印刷するには、
pm2 show nextjs-app
PM2をサーバーの起動時に起動するように設定するには、以下のコマンドを実行します。根
pm2 startup
pm2プロセスリストを保存して、サーバーの再起動後に再起動します。
pm2 save