この記事は、 Pagoda のチュートリアル コラムによって、Pagoda パネルに Egg Web プロジェクトをデプロイする方法を紹介するために書かれたものです。君はそれが要る!
Pagoda デプロイメント卵 Web プロジェクト
リモート データベースへのローカル アクセスが必要です注:
1. Alibaba Cloud 設定セキュリティ グループ
2. Pagoda は「System Firewall 2.9」をインストールします => リリース ポートを設定します
例: 7002 は mongodb へのアクセスに使用され、7001 は API へのアクセスに使用されます
データベース接続をテストする最も簡単な方法: ブラウザでドメイン名: ポートに直接アクセスするか、サーバーの IP: ポートを使用します。ドメイン名を使用している場合は、ドメイン名が次のとおりである必要があることに注意してください。次のようなブラウザ プロンプトが表示されます:
3. ローカル mongoDB をオンライン/データベース初期化スクリプトに移行します
データベースを初期化します: app.js
app.beforeStart(async () => { const ctx = app.createAnonymousContext(); const model = ctx.model; const existGroup = await model.UserGroup.findOne({name: '超级管理员'}) if(!existGroup){ const group = await model.UserGroup.create({ "name" : "普通管理员", "idName" : "admin", "role" : 100 }); } console.log("==app beforeStart=="); });
4 、egg 実行構成
1. Web サイトを追加し、プロジェクトをアップロードします (コードがリモート ウェアハウスでホストされている場合は、 git clone を実行するには、Web サイトのディレクトリで直接ターミナル パネルを開いて git clone を実行することをお勧めします)
注: プロジェクトをアップロードするときは、node_modules ファイルを削除してからアップロードします。これにより、はるかに高速になります。次に、「File」= を見つけます。 > 左側 (お気に入りの隣) の「ターミナル」をクリックし、パスワード接続を開きます (またはサーバーのターミナルを使用します)。コマンド ライン :cd /www/wwwroot/project ディレクトリを入力して、npm install を再度実行します。これにより、プロジェクトを開始できずに困ることをある程度回避できます。
2. プロセス管理: (要検証!)
index.js を作成して Egg サービスを開始できます
方法 1、egg にはプロセスが組み込まれていますマネージャー (プロジェクト ディレクトリで直接使用できます) 以下のコマンドを実行します:nodeindex.jsindex.js コード:
const egg = require('egg'); const workers = Number(process.argv[2] || require('os').cpus().length); egg.startCluster({ workers, baseDir: __dirname, });
方法 2、ノード プロセス管理用の PM2 をインストールし、ファイルを選択して [追加] をクリックします。
注: 構成後、フロントエンドを検出します。アクセスはできますが、API にはアクセスできません。ポート占有に問題があるかどうかに注意してください。
すべてのポートの占有を確認してください。コマンド「netstat -ano」を入力し、コマンド「pkill node」を使用してプロセスをバッチで強制終了します
3.egg プロジェクトの実行ポートにリバース プロキシを追加します
#5. フロントエンド プロジェクトはパッケージ化され、egg の静的ディレクトリに配置され、config/config.default.js で設定されます (新しいプロジェクトを開始することもできます)
config.static = { prefix: '/', dir: [ path.join(__dirname, '../app/public'), //上传文件等的目录 path.join(__dirname, '../dist') //放置前端打包后的文件 ]}次に、router.js にリダイレクトを追加して、API 以外のリクエストを Index.html にリダイレクトして、フロントエンド ページ
#
app.router.redirect('/', '/index.html', 302);
6. コードの同期 (git を使用)
(假设本地已有git并且提交到远程) 1、在宝塔面板,项目路径下打开终端: 2、方法一、文件未提交则直接git clone [url] 方法二、如果文件已提交, 初始化: git init 设置远程仓库地址: git remote origin set-url [url] 或 git remote add origin [url] 设置用户名: git config --global user.name [用户名] git config --global user.email [邮箱] 想要只在当前项目下设置的话把--global去掉 如本地有文件,先执行: git add . git commit -m "init" git push -u origin master 拉取: git config --global credential.helper store //让git记住用户名密码,下次不用填 git pull //输入用户名密码 拉取远程代码便可
以上がPagoda パネルは、egg+web プロジェクトをデプロイします (詳細な手順付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。