>  기사  >  주제  >  Pagoda 패널은 egg+web 프로젝트를 배포합니다(자세한 단계 포함).

Pagoda 패널은 egg+web 프로젝트를 배포합니다(자세한 단계 포함).

藏色散人
藏色散人앞으로
2021-12-20 14:28:484748검색

이 글은 Pagoda튜토리얼 칼럼에서 Pagoda 패널에 egg+web 프로젝트를 배포하는 방법을 소개하는 글입니다. 필요하신 분들에게 도움이 되었으면 좋겠습니다!

Pagoda는 egg+web 프로젝트를 배포합니다

원격 데이터베이스에 대한 로컬 액세스가 필요합니다. 참고:

1 Alibaba Cloud

2에 보안 그룹을 설정합니다. > 릴리스 포트를 설정하세요

예: 7002는 mongodb에 액세스하는 데 사용되고, 7001은 api에 액세스하는 데 사용됩니다

데이터베이스 연결을 테스트하는 가장 간단한 방법: 도메인 이름에 액세스하면 됩니다. 브라우저에서 직접 포트를 사용하거나 서버를 사용하세요. ip: port 도메인 이름을 사용하는 경우 도메인 이름을 확인하고 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 run 구성

1. 웹사이트 추가 및 프로젝트 업로드(코드가 원격 창고에 호스팅된 경우 터미널 패널을 직접 여는 것이 좋습니다) git clone을 수행하려면 웹 사이트 디렉토리에서)

참고: 프로젝트를 업로드할 때 node_modules 파일을 삭제한 다음 업로드하세요. 그러면 훨씬 빨라집니다. 그런 다음 왼쪽(즐겨찾기 옆)에서 "파일" => "터미널"을 찾으세요. , 비밀번호를 입력하여 연결을 엽니다(또는 서버의 터미널을 사용): cd /www/wwwroot/project 디렉터리 명령줄을 입력한 다음 npm 설치를 다시 수행합니다. 이렇게 하면 프로젝트를 어느 정도 시작할 수 없는 당혹감을 피할 수 있습니다.

2. 프로세스 관리: (확인 예정!)

index.js를 생성하여 egg 서비스를 시작할 수 있습니다.

방법 1, egg에는 프로세스 관리자가 내장되어 있으며 프로젝트 디렉터리에서 직접 명령을 실행할 수 있습니다. : node index.js index.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并且提交到远程)
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 juejin.im에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제