우마미 통계 웹사이트 우마미 통계를 빌드합니다

Umami는 Google Analytics에 대한 간단하고 빠르며 개인 정보 보호에 중점을 둔 대안입니다.

공식 GitHub 주소:https://github.com/umami-software/umami
공식적인미러 주소: https://docker.umami.dev/umami-software/umami:postgresql-latest

기반으로 개발 및 지원 또는 PostgreSQL 데이터베이스 저장 방식을 사용하면 데이터를 직접 제어할 수 있습니다. UMAMI는 또한 매우 자세한 정보를 제공합니다.시각적 인터페이스, UI 경험, 통계 정확도가 매우 좋습니다. UMAMI는 광고 차단 플러그인 등에 의한 차단도 방지할 수 있으며, 통계 정확도도 높습니다.

공식 문서: 자세한 시작 가이드는 다음에서 찾을 수 있습니다.https://umami.is/docs/나타나다

자체 구축 통계 사이트 우마미 통계-1

기능:
  • : Umami는 웹사이트 방문, 페이지 조회수, 사용자 행동 및 기타 지표를 추적하고 분석하여 사용자가 웹사이트와 상호 작용하는 방식을 이해하는 데 도움을 줍니다.
  • 이벤트 추적: 버튼 클릭, 양식 제출, 비디오 재생 등 특정 이벤트를 추적하여 웹사이트에서 사용자의 특정 작업을 파악할 수 있습니다.
  • 사용자 통찰력: Umami를 사용하면 방문 빈도, 신규 사용자와 기존 사용자 비율 등 사용자에 대한 정보를 얻을 수 있으므로 사용자 기반을 더 깊이 이해할 수 있습니다.
  • 출처 분석: Umami는 검색 엔진, 소셜 미디어, 직접 방문 등 웹사이트를 방문하는 사용자의 출처를 추적하여 마케팅 채널의 효과를 평가하는 데 도움을 줍니다.
  • 사용자 정의 보고서: Umami를 사용하면 사용자의 요구 사항에 따라 데이터를 더 잘 분석하고 시각화할 수 있는 사용자 정의 보고서와 차트를 만들 수 있습니다.
  • A/B 테스트 지원: Umami는 A/B 테스트를 실시하여 다양한 버전의 페이지나 기능을 비교하고 웹사이트의 사용자 경험을 최적화하는 데 도움을 드립니다.
  • 데이터 내보내기: 다른 도구나 분석 플랫폼과 통합하고 추가 분석을 위해 CSV나 다른 형식으로 데이터를 내보낼 수 있습니다.
특징:
  • 사용하기 쉬움: Umami는 사용자 친화적인 인터페이스와 쉬운 설정을 갖추고 있어 기술에 익숙하지 않은 사람이라도 비교적 쉽게 사용할 수 있습니다.
  • 오픈 소스이며 무료입니다. 오픈 소스 프로젝트인 Umami는 무료로 사용할 수 있으며, 필요에 따라 사용자 정의하고 확장할 수 있습니다.
  • 데이터 개인정보 보호: Umami는 사용자 데이터 개인정보 보호를 중요하게 생각하며 민감한 정보를 수집하지 않으며 광고 목적으로 사용하지 않습니다.
  • 가벼움: 디자인이 비교적 단순하여 웹사이트 성능에 큰 영향을 미치지 않습니다. 중소 규모 웹사이트 및 프로젝트에 적합합니다.
  • 유연한 사용자 정의: 오픈 소스이므로 특정 분석 요구 사항을 충족하도록 Umami를 필요에 맞게 재개발하고 사용자 정의할 수 있습니다.
  • 실시간 데이터: Umami는 실시간 데이터 모니터링과 피드백을 제공하여 웹사이트 역학과 사용자 행동을 시기적절하게 이해할 수 있도록 도와줍니다.

필요하다:

  • Node.js 버전 12 이상이 설치된 서버
  •  Umami는 MySQL과 Postgresql 데이터베이스를 지원합니다.

Ubuntu에 Node.js를 설치하고 npm을 최신 버전으로 업데이트하세요.

Node.js 설치

NodeSource는 다음 아키텍처를 계속 유지 관리하며 향후 다른 아키텍처를 추가할 수도 있습니다.

  • amd64(64비트)
  • 암HF(ARM 32비트 하드 부동 소수점, ARMv7 이상:arm-linux-gnueabihf
  • arm64(ARM 64비트, ARMv8 이상:aarch64-linux-gnu

노드 프로젝트 웹사이트:https://github.com/nodesource/distributions

자체 구축 통계 우마미 통계-1

시스템을 업데이트하세요

sudo apt update && sudo apt upgrade

종속성 설치

sudo apt install wget curl nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release debian-archive-keyring unzip -y

노드.js v18.x

NodeSource에서 제공하는 최신 npm 패키지를 설치하세요.

Node.js에는 현재 Node.js 18.x, Node.js 20.x, Node.js 21.x의 세 가지 버전이 있습니다.

다음은 한 줄의 코드로 Node.js 18.x를 설치하는 방법입니다. &&\는 이전 명령이 올바르게 실행된 후에 다음 코드가 실행됨을 의미합니다.

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - &&\ sudo apt-get install -y nodejs

루트로 설치

curl -fsSL https://deb.nodesource.com/setup_18.x | bash - &&\ apt-get install -y nodejs

설치가 완료된 후, 버전이 성공적으로 설치되었는지 확인하세요.

노드 -v

다른 버전을 설치하려면 위 명령에서 setup_20.x를 설치하려는 버전으로 바꾸면 됩니다.

참고: Ubuntu 22.4에 Node.js 20.x 또는 Node.js 21.x를 설치한 후 umami를 열면 빈 화면이 나타나고 접근할 수 없습니다. 이로 인해 404 오류가 발생합니다!

Umami 설치 후 빈 화면 해결 방법

이것 역시 큰 함정입니다. Node.js 20.x와 Node.js 21.x로 컴파일한 후 오류가 발생합니다. 브라우저를 열면 내용이 없는 빈 화면이 나타납니다. F12 키를 누르면 모든 js 파일에 접근할 수 없습니다. 이 문제는 Node.js 20.x와 Node.js 21.x로 컴파일할 때 발생합니다. Node.js 18.x를 설치한 후에는 모든 것이 정상적으로 컴파일되고 열 때 아무런 문제가 없습니다.

참고: Node.js 18.x를 사용하여 컴파일하세요. Node.js 18.x를 사용하여 컴파일하세요. Node.js 18.x를 사용하여 컴파일하세요. 중요한 내용을 세 번이나 강조합니다. 스스로 구멍을 파지 마세요!

Node.js에 대한 다음 내용은 참고용입니다. 실제 애플리케이션에서는 Node 관련 내용은 무시하세요.

----------------------------------------------------------------------------------------

노드 공식 홈페이지 다운로드 주소:https://nodejs.org/en/download/

또 다른 방법이 있습니다.apt를 사용하여 Node 설치

참고: apt를 사용하여 설치하는 경우, 더 낮은 버전의 노드가 설치될 수 있으며, 이로 인해 후속 설치 중에 오류가 발생할 수 있습니다.

오류 @clickhouse/client@0.2.10: 엔진 "node"가 이 모듈과 호환되지 않습니다. 버전 ">=16"을 예상했는데 "12.22.9"가 표시되었습니다.
오류 호환되지 않는 모듈을 발견했습니다.
정보 방문 https://yarnpkg.com/en/docs/cli/install 이 명령에 대한 설명서를 참조하세요.

이 오류는 현재 Node.js 버전이 @clickhouse/client 모듈의 요구 사항을 충족하지 않음을 의미합니다. @clickhouse/client 모듈은 Node.js 버전 16 이상을 필요로 합니다. 현재 Node.js 버전은 12.22.9입니다.

이 문제를 해결하려면 요구 사항을 충족하는 Node.js 버전으로 업그레이드하는 것이 좋습니다.

 

sudo apt update sudo apt install nodejs # npm이 포함되어 있지 않으므로 직접 설치해야 합니다.sudo apt install npm # Node 버전 관리 도구를 사용하여 최신 버전으로 업그레이드합니다.udo npm install n -g # 최신 안정 버전을 다운로드합니다.udo n stable # 최신 버전을 다운로드합니다.udo n lastest # 다운로드한 버전을 확인합니다.udo n ls # Node 버전을 전환합니다.udo n 18.21.1 # npm 업그레이드 sudo npm install npm -g

Node.js Ubuntu 및 Debian 패키지 제거

apt-get purge nodejs &&\ rm -rf /etc/apt/sources.list.d/nodesource.list &&\ rm -rf /etc/apt/keyrings/nodesource.gpg #Uninstall npm npm uninstall npm -g

설치 과정에서 npm을 설치할 수 없는 경우 nvm을 사용하여 설치할 수 있습니다.

nvm을 사용하여 Node.js와 npm 설치: Node Version Manager(nvm)를 사용하면 Node.js 버전과 npm을 더 쉽게 관리할 수 있습니다. 다음 단계에 따라 nvm을 설치하고 Node.js와 npm을 설치할 수 있습니다.

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash # 또는 wget을 사용하여 wget 설치 -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash # Node.js와 npm을 설치하세요. npm은 Node에 포함되어 있습니다. Node를 설치하면 npm이 자동으로 설치됩니다. nvm install node # 새로 설치된 Node를 사용하세요. nvm use node

 

nvm을 사용하여 여러 버전의 노드를 설치하세요

# 현재 설치된 노드 보기 nvm ls # 20x 버전의 노드를 설치합니다. 기본적으로 20x의 가장 높은 버전이 설치됩니다(예: 20.12 nvm install 20 # 20x 버전 사용 nvm use 20 # 20x 버전 nvm 별칭 default 20을 영구적으로 사용합니다.

참고 끝!!

--------------------------------------------------------------------------------------------------

참고: 위의 방법 중 어떤 것도 효과가 없다면 npm 대신 yarn을 사용해 보세요. Yarn은 빠르고 안정적이며 안전한 패키지 관리자로, npm을 대체하는 데 자주 사용됩니다. 다음 단계에 따라 yarn을 설치할 수 있습니다.

Yarn 설치

npm 대신 yarn을 사용하세요. 이 프로젝트는 컴파일에 Yarn을 사용하므로 Yarn을 설치해야 합니다.

npm install -g yarn

Yarn 공식 설치 스크립트를 통해 설치: Yarn은 공식적으로 설치 스크립트를 제공하며, 다음 명령어를 사용하여 설치할 수 있습니다.

curl -o- -L https://yarnpkg.com/install.sh | bash # 또는 wget을 사용하여 설치 wget -qO- https://yarnpkg.com/install.sh | bash

새로운 MySQL 데이터베이스 생성

여기서는 MySQL을 사용하여 데이터베이스에 새 빈 데이터베이스를 만듭니다.

phpmyadmin을 사용하여 서버에 Umami를 위한 빈 데이터베이스를 만듭니다.

자체 구축 통계 사이트 우마미 통계-1

또는 서버에서 직접 생성하세요.

mysql -u root -p 우마미 < sql/schema.mysql.sql

우마미 설치

Umami를 다운로드하고 설치하세요

사용자 정의 다운로드는 /home/umami 디렉토리에 저장되지만, 다른 디렉토리에 저장할 수도 있습니다.

cd /home/ #git pull umami git clone https://github.com/umami-software/umami.git #umami 디렉토리로 들어갑니다. cd umami #install yarn install

자체 구축 통계 사이트 우마미 통계-1잠시 기다려 주세요. 설치가 완료되면 .env 파일을 구성해야 합니다.

.env 파일 구성

umami 폴더에 .env라는 이름의 새 파일을 만듭니다.

touch 명령을 사용하여 새 .env 파일을 만들거나 vim 명령을 직접 사용하여 새 .env 파일을 만듭니다.

vi .env

.env 파일이 생성된 후에는 디렉토리에서 볼 수 없습니다. .env는 숨겨진 파일이기 때문에 vi를 사용하여 직접 편집할 수 있습니다.

.env 파일을 편집하여 다음 구성을 입력하고 저장합니다.

DATABASE_URL=mysql://umamiuser:umamipass@127.0.0.1:3306/umami_db APP_SECRET=bu4orqfdlG+Dh3Otau4oWSBbI9kGWSkGfYc/WiH/ DISABLE_TELEMETRY=1 TRACKER_SCRIPT_NAME=custom

데이터베이스_URL
DATABASE_URL=mysql://umamiuser:umamipass@127.0.0.1:3306/umami_db
설명: 이는 Umami의 데이터베이스 연결 URL로, MySQL 데이터베이스 umami_db를 가리키고, 데이터베이스 사용자는 umamiuser, 비밀번호는 umamipass이며, 데이터베이스 서버는 127.0.0.1:3306에서 실행됩니다.
효과성을 확보하세요:
데이터베이스가 올바르게 생성되었고 데이터베이스 사용자와 비밀번호가 올바르게 구성되었는지 확인하세요.
MySQL 데이터베이스가 127.0.0.1 주소를 통한 연결을 허용하는지 확인하세요.
Umami 서비스가 MySQL 데이터베이스에 액세스할 수 있는지 확인하세요.

앱 비밀
APP_SECRET=bu4orqfdlG+Dh3Otau4oWSBbI9kGWSkGfYc/WiH/
설명: 이는 암호화 및 서명에 사용되는 애플리케이션 키입니다. Umami는 JWT(JSON 웹 토큰) 및 기타 민감한 정보의 보안을 위해 이 키를 사용합니다.
효과성을 확보하세요:
이 키를 안전하게 보관하고 공개하거나 공개하지 마십시오.
예를 들어 openssl rand -base64 32를 사용하여 새로운 키를 생성하는 등 더 복잡한 키를 생성할 수 있습니다.

원격 측정 비활성화
원격측정 비활성화=1
설명: 원격 측정 기능을 비활성화하면 통계나 사용 데이터가 Umami 서버로 전송되지 않습니다.
유효성 보장: 이 구성은 유효하며 원격 측정이 비활성화되어 있어 더욱 엄격한 개인정보 보호 요구 사항에 적합합니다.

추적 스크립트 이름
TRACKER_SCRIPT_NAME=사용자 정의
설명: 이 설정은 Umami 추적 스크립트의 이름을 지정합니다. 기본 이름은 umami.js이지만 custom.js 또는 다른 이름으로 변경할 수 있습니다.
유효성 확인: 사용자 지정 이름을 사용하려면 웹 페이지 코드에서 올바른 JavaScript 추적 스크립트를 참조해야 합니다.
기타 가능한 구성 항목
사용하는 Umami 버전과 요구 사항에 따라 다음 구성이 필요할 수도 있습니다.

다음_공개_베이스_URL
Umami 인스턴스의 기본 URL을 지정하는 데 사용됩니다. 예를 들어, Umami가 다음 위치에 설치된 경우 https://umami.example.com은 다음과 같이 구성될 수 있습니다.

NEXT_PUBLIC_BASE_URL=https://umami.example.com

인증 비활성화
Umami의 인증 기능을 비활성화하려면 다음을 설정할 수 있습니다.

DISABLE_AUTH=참
경고: 인증을 비활성화하면 누구나 관리자 패널에 접근할 수 있으므로 개발 환경에서만 권장됩니다.

우마미_버전
특정 버전의 Umami를 사용하려면 다음과 같이 지정할 수 있습니다.

우마미 버전=v1.35.0

포트
Umami가 수신하는 포트를 구성합니다(기본 포트가 적용되지 않는 경우):

포트=3000

SMTP 구성(이메일 알림용)
이메일 알림이나 기타 메일 기능을 활성화해야 하는 경우 다음과 같이 SMTP 구성을 설정할 수 있습니다.

SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_USER=user@example.com
SMTP_PASSWORD=당신의 비밀번호

우마미_로그_레벨

필요에 따라 설정할 수 있는 로그 수준을 구성합니다.

UMAMI_LOG_LEVEL=정보
구성 파일 예:
다음 구성 항목을 모두 .env 파일에 결합합니다.

DATABASE_URL=mysql://umamiuser:umamipass@localhost:3306/umami_db APP_SECRET=bu4orqfdlG+Dh3Otau4oWSBbI9kGWSkGfYc/WiH/ DISABLE_TELEMETRY=1 TRACKER_SCRIPT_NAME=custom NEXT_PUBLIC_BASE_URL=https://umami.example.com DISABLE_AUTH=true PORT=3000

이러한 구성 항목은 유효해야 하며, MySQL 데이터베이스 연결을 검증했는지 확인하고 필요에 따라 다른 관련 구성(SMTP 또는 인증 설정 등)을 추가해야 합니다.

두 개의 데이터베이스를 연결하는 예

postgresql://사용자 이름:내 비밀번호@localhost:5432/mydb mysql://사용자 이름:내 비밀번호@localhost:3306/mydb

업데이트 설치

Prisma 관련 종속성을 업데이트하려면 다음 명령을 실행하세요.

yarn add --dev prisma@latest yarn add @prisma/client@latest

 

우마미 컴파일

원사 빌드

그가 처형을 마칠 때까지 기다리세요.

데이터베이스에 연결할 수 없다는 오류가 발생하는 경우

$ 노드 스크립트/check-db.js
✓ DATABASE_URL이 정의되었습니다.
✗ 데이터베이스에 연결할 수 없습니다.
오류 명령이 종료 코드 1로 인해 실패했습니다.
정보 방문 https://yarnpkg.com/en/docs/cli/run 이 명령에 대한 설명서를 참조하세요.
오류: "check-db"가 1로 종료되었습니다.
오류 명령이 종료 코드 1로 인해 실패했습니다.
정보 방문 https://yarnpkg.com/en/docs/cli/run 이 명령에 대한 설명서를 참조하세요.

로컬호스트를 127.0.0.1로 변경하세요

DATABASE_URL=mysql://username:password@127.0.0.1:3306/데이터베이스 이름 APP_SECRET=bu4orqfdlG+Dh3Otau4oWSBbI9kGWSkGfYc/WiH/ DISABLE_TELEMETRY=1 TRACKER_SCRIPT_NAME=custom

설치 중 오류 P3018이 발생했습니다.

오류: P3018

마이그레이션을 적용하지 못했습니다. 오류가 복구되기 전에는 새 마이그레이션을 적용할 수 없습니다. 프로덕션 데이터베이스에서 마이그레이션 문제를 해결하는 방법에 대해 자세히 알아보세요. https://pris.ly/d/migrate-resolve

마이그레이션 이름: 05_add_visit_id

데이터베이스 오류 코드: 1305

데이터베이스 오류:
FUNCTION t_umami_hk.BIN_TO_UUID가 존재하지 않습니다.

마이그레이션 파일에서 쿼리 번호 2를 확인하세요.

✗ 명령이 실패했습니다: prisma migrate deploy
오류: P3018

마이그레이션을 적용하지 못했습니다. 오류가 복구되기 전에는 새 마이그레이션을 적용할 수 없습니다. 프로덕션 데이터베이스에서 마이그레이션 문제를 해결하는 방법에 대해 자세히 알아보세요. https://pris.ly/d/migrate-resolve

마이그레이션 이름: 05_add_visit_id

데이터베이스 오류 코드: 1305

데이터베이스 오류:
FUNCTION t_umami_hk.BIN_TO_UUID가 존재하지 않습니다.

마이그레이션 파일에서 쿼리 번호 2를 확인하세요.

 

오류 명령이 종료 코드 1로 인해 실패했습니다.
정보 방문 https://yarnpkg.com/en/docs/cli/run 이 명령에 대한 설명서를 참조하세요.
오류: "check-db"가 1로 종료되었습니다.
오류 명령이 종료 코드 1로 인해 실패했습니다.
정보 방문 https://yarnpkg.com/en/docs/cli/run 이 명령에 대한 설명서를 참조하세요.

MariaDB는 아직 MySQL 내장 함수인 BIN_TO_UUID를 구현하지 않았습니다. MariaDB 데이터베이스 설치를 사용하면 p3018 오류가 발생합니다.

umami가 2.11 버전으로 업데이트된 후 UUID 지원이 도입되었습니다. MySQL은 마이그레이션 스크립트에서 임의의 UUID를 생성해야 하지만, MariaDB를 사용하는 경우 MariaDB는 이 기능을 지원하지 않습니다. 데이터베이스를 직접 수정해야 합니다.

p3018 오류에 대한 해결책

다음 명령을 실행한 후 다시 설치하면 문제가 해결됩니다.

npx prisma migrate resolve --applied "05_add_visit_id" # 설치 명령 yarn build를 다시 실행하세요.

우마미 제거

설치 과정 중에 되돌릴 수 없는 작업이 발생하는 경우 Umami를 제거했다가 다시 설치할 수 있습니다. Umami 설치 디렉토리를 삭제하기만 하면 됩니다.

rm -rf /home/umami 재부팅

포트 3000이 점유되어 있습니다

포트 3000이 이미 사용 중이면 시작이 실패하고 포트 3000을 사용하고 있는 nghttpx를 종료해야 합니다.

nghttpx는 포트 3000을 사용합니다. nghttpx에서 실행할 서비스가 없으면 nghttpx를 종료하면 됩니다.

systemctl stop nghttpx systemctl disable nghttpx reboot

PM2 매니저 설치

PM2 매니저는 PM2를 통해 Umami를 여는 데몬 프로그램입니다.

npm install pm2 -g sudo yarn global add pm2 cd /home/umami pm2 start npm --name umami -- start pm2 startup pm2 save

npm을 사용하여 PM2를 설치하는 동안 오류 1143이 발생했습니다.

노드:내부/모듈/cjs/로더:1143
const err = new Error(메시지);
^

오류: 모듈 'semver'을 찾을 수 없습니다.
스택 필요:
- /usr/share/nodejs/npm/lib/utils/unsupported.js
- /usr/share/nodejs/npm/lib/cli.js
- /usr/share/nodejs/npm/bin/npm-cli.js
Module._resolveFilename(노드:internal/modules/cjs/loader:1143:15)에서
Module._load(노드:internal/modules/cjs/loader:984:27)에서
Module.require(노드:internal/modules/cjs/loader:1231:19)에서
require(노드:내부/모듈/헬퍼:179:18)에서
객체에서. (/usr/share/nodejs/npm/lib/utils/unsupported.js:2:16)
Module._compile(노드:internal/modules/cjs/loader:1369:14)에서
Module._extensions..js(노드:internal/modules/cjs/loader:1427:10)에서
Module.load(노드:internal/modules/cjs/loader:1206:32)에서
Module._load(노드:internal/modules/cjs/loader:1022:12)에서
Module.require(노드:internal/modules/cjs/loader:1231:19)에서 {
코드: 'MODULE_NOT_FOUND',
스택이 필요합니다: [
'/usr/share/nodejs/npm/lib/utils/unsupported.js',
'/usr/share/nodejs/npm/lib/cli.js',
'/usr/share/nodejs/npm/bin/npm-cli.js'
]
}

노드.js v20.12.2

해결책:

이 오류는 npm 설치 후 서버를 재시작하지 않으면 발생하며, 변수가 적용되지 않습니다. 서버를 재시작하면 문제가 해결될 수 있습니다.

거대한 구덩이

설치 후 사용하세요 실 시작 Umami를 여는 명령입니다. 포트 3000이 점유되어 있으면 포트 점유 오류가 표시됩니다.

root@localhost:~# yarn 시작
yarn run v1.22.22
오류 "/root"에서 package.json 파일을 찾을 수 없습니다.
정보 방문 https://yarnpkg.com/en/docs/cli/run 이 명령에 대한 설명서를 참조하세요.
root@localhost:~# cd /home/umami
root@localhost:/home/umami# yarn 시작
yarn run v1.22.22
$ 다음 시작
⨯ 서버를 시작하지 못했습니다.
오류: EADDRINUSE를 수신합니다: 주소가 이미 사용 중입니다 :::3000
Server.setupListenHandle에서 [as _listen2] (node:net:1897:16)
listenInCluster(노드:넷:1945:12)에서
Server.listen(node:net:2037:7)에서
/home/umami/node_modules/next/dist/server/lib/start-server.js:279:16에서
새로운 약속에서 ()
startServer에서 (/home/umami/node_modules/next/dist/server/lib/start-server.js:190:11)
nextStart에서 (/home/umami/node_modules/next/dist/cli/next-start.js:50:40)
/home/umami/node_modules/next/dist/bin/next:155:54에서
비동기 메인(/home/umami/node_modules/next/dist/bin/next:155:5)에서 {
코드: 'EADDRINUSE',
오류 번호: -98,
시스템 호출: '수신',
주소: '::',
포트: 3000
}
오류 명령이 종료 코드 1로 인해 실패했습니다.
정보 방문 https://yarnpkg.com/en/docs/cli/run 이 명령에 대한 설명서를 참조하세요.

명령을 사용하여 포트 3000을 사용하는 사람을 확인하세요.

root@localhost:~# sudo lsof -i :3000
명령 PID 사용자 FD 유형 장치 크기/OFF 노드 이름
nghttpx 919 root 5u IPv4 34021 0t0 TCP 로컬호스트:3000 (수신)
nghttpx 958 root 5u IPv4 34021 0t0 TCP 로컬호스트:3000 (수신)

nghttpx는 포트 3000을 사용합니다. nghttpx에서 실행할 서비스가 없으면 nghttpx를 종료하면 됩니다.

systemctl stop nghttpx systemctl disable nghttpx reboot

서비스를 중지한 다음 부팅 시 시작되지 않도록 비활성화하고 시스템을 다시 시작합니다.

주의: 거대한 구덩이가 다가옵니다.

사용 실 시작 Umami를 시작하는 명령입니다. 현재 포트는 점유되지 않았으며 시작은 정상적으로 시작됩니다. 그 후:

root@localhost:/home/umami# yarn 시작
yarn run v1.22.22
$ 다음 시작
▲ Next.js 14.1.4
- 현지의: http://localhost:3000

⚠ "다음 시작"은 "출력: standalone" 구성에서는 작동하지 않습니다. 대신 "node .next/standalone/server.js"를 사용하세요.
✓ 2초 안에 준비 완료

시작 프로세스 중에 경고가 발생했는데 이는 대략 다음과 같습니다.

"다음 시작"은 "출력: 독립 실행형" 구성에 적용되지 않습니다. "node.next/standalone/server.js"를 사용하세요. 이 경고는 오류인가요? 해결해야 하나요? 온라인에서 확인해 보니 next.js에 문제가 있는 것으로 확인되었습니다. 최종 결과: 이 경고는 무시하세요. 브라우저에서 IP 주소 + 포트에 정상적으로 액세스할 수 있으면 다음 단계로 진행해야 합니다. 서버 방화벽에서 3000번 포트를 열어두어야 합니다. 그렇지 않으면 액세스가 거부됩니다.

설치가 성공했는지 테스트하세요

설치가 완료되면 IP 주소 + 포트로 접속하여 페이지가 열리는지 확인해 주세요. 처음에는 페이지가 느리게 열리니 잠시만 기다려 주세요.

자체 구축 통계 사이트 우마미 통계-1

오류가 표시되지 않으면 설치가 성공한 것입니다. 로컬 컴퓨터에서 http://127.0.0.1:3000이 정상적으로 열리는지 테스트해 보세요.

컬 http://127.0.0.1:3000

데이터 출력이 있는지 확인하세요.

자체 구축 통계 사이트 우마미 통계-1포트 3000의 현재 상태를 확인합니다. 포트 3000이 여전히 사용 중이면 umami를 시작해서는 안 됩니다.

lsof -i:3000

서버 IP + 포트를 사용하여 브라우저에서 Umami를 엽니다.

우분투, 통계 웹사이트 '우마미 통계-1' 구축

시스템 기본 사용자 이름과 비밀번호를 사용하여 로그인하세요

  • 사용자 이름: admin
  • 비밀번호: umami

우분투, 통계 웹사이트 '우마미 통계-1' 구축

페이지는 매우 간단하고 우아합니다. 가서 설정하세요.웹사이트를 추가한 후, 코드를 받아서 통계를 시작해보세요!

개인 프로필의 비밀번호를 변경하고 더 복잡하게 만들어보세요!

우분투, 통계 웹사이트 '우마미 통계-1' 구축

PM2 제거

# PM2 시작 비활성화 pm2 unstartup # 데몬 종료 pm2 kill # npm 제거 remove pm2 -g # 저장된 모든 구성 및 로그 삭제 rm -rf ~/.pm2

마지막으로 삭제가 완료되면 /usr/local/lib/node_modules/로 이동하여 pm2 폴더가 있는지 확인하세요. 있다면 삭제하세요.

역방향 프록시 서버로서의 OpenLiteSpeed

OpenLiteSpeed에서 새 가상 호스트를 만든 다음 이 호스트를 입력하여 새 가상 호스트를 만듭니다.외부 응용 프로그램 , 유형으로 네트워크 서버를 선택하고 다음을 입력합니다.동지 , 주소는 127.0.0.1:3000이고, 공용 네트워크 IP:3000을 쓸 수 있습니다.

우분투, 통계 웹사이트 '우마미 통계-1' 구축

우분투, 통계 웹사이트 '우마미 통계-2' 구축

우분투, 통계 웹사이트 '우마미 통계-3' 구축

그런 다음 리소스 세트를 만들고 유형으로 프록시를 선택하고 URI를 /로 설정합니다.

우분투, 통계 웹사이트 '우마미 통계-1' 구축

우분투, 통계 웹사이트 '우마미 통계-2' 구축

우분투, 통계 웹사이트 '우마미 통계-3' 구축

 

참고: 네트워크 서버에는 이전에 생성한 tongji를 선택하고 다른 설정에는 최대값을 입력하세요.

재작성 규칙. 프런트엔드와 백엔드 도메인 이름이 다르므로, 의사 정적 규칙을 사용하여 도메인 이름을 백엔드로 전달해야 합니다. 그렇지 않으면 백엔드에서 연결을 거부하고 프런트엔드에서 403 또는 500 오류를 직접 반환합니다.

우분투, 통계 웹사이트 '우마미 통계-1' 구축

RewriteRule ^/(.*)$ http://tongji/$1 [P,E=Proxy-Host:xxx.com]
두 번째 단계에서 외부 애플리케이션의 이름은 tongji이고 xxx.com은.의 도메인 이름입니다.
CyberPanel 패널을 설치한 경우, 재작성 규칙이 "CyberPanel에 의해 비활성화됨"으로 표시됩니다. CyberPanel 패널에 해당하는 웹사이트에서 재작성 규칙을 입력해야 합니다.
마지막으로 OpenLiteSpeed를 다시 시작하면 정상적으로 접속할 수 있습니다.

중국어 구성

백엔드에 로그인하면 기본 설정이 영어일 수 있습니다. 패널에는 간체 중국어가 제공됩니다. 설정 -> 프로필 -> 언어에서 중국어를 선택하세요.

우마미 업그레이드 및 업데이트

umami에 대한 업데이트가 있습니다. pm2를 일시 정지하고 다음 코드를 실행하여 업데이트한 후 실행하세요.

pm2 stop umami # umami 파일 디렉토리로 이동 cd /home/umami git pull yarn install yarn build

이 문제는 우마미를 업그레이드하는 동안 발생했습니다. prisma migrate 배포 오류: P3009

이 오류는 umami가 2.11 버전으로 업데이트된 후 UUID 지원이 추가되어 발생합니다. MySQL은 마이그레이션 스크립트에서 임의의 UUID를 생성해야 하지만, MariaDB를 사용하는 경우 MariaDB는 이 기능을 지원하지 않습니다. 데이터베이스를 수동으로 수정해야 합니다.

다음은 MySQL 실행문입니다.

-- AlterTable ALTER TABLE website_event 열 추가 visit_id VARCHAR(36) NULL; -- UUIDv4로 업데이트 UPDATE website_event we JOIN ( SELECT DISTINCT s.session_id, s.visit_time, LOWER(CONCAT( HEX(SUBSTR(MD5(RAND()), 1, 4)), '-', HEX(SUBSTR(MD5(RAND()), 1, 2)), '-4', SUBSTR(HEX(SUBSTR(MD5(RAND()), 1, 2)), 2, 3), '-', CONCAT(HEX(FLOOR(ASCII(SUBSTR(MD5(RAND())), 1, 1)) / 64)+8),SUBSTR(HEX(SUBSTR(MD5(RAND()), 1, 2)), 2, 3)), '-', HEX(SUBSTR(MD5(RAND()), 1, 6)) )) AS uuid FROM ( SELECT DISTINCT session_id, DATE_FORMAT(created_at, '%Y-%m-%d %H:00:00') 방문 시간 FROM website_event ) s ) a ON we.session_id = a.session_id AND DATE_FORMAT(we.created_at, '%Y-%m-%d %H:00:00') = a.visit_time SET we.visit_id = a.uuid WHERE we.visit_id IS NULL; -- ModifyColumn ALTER TABLE website_event MODIFY visit_id VARCHAR(36) NOT NULL; -- CreateIndex CREATE INDEX website_event_visit_id_idx ON website_event(visit_id); -- CreateIndex 인덱스 생성 website_event_website_id_visit_id_created_at_idx ON website_event(website_id, visit_id, created_at);

그런 다음 Umami 폴더에서 마이그레이션을 해결하세요.

# umami 파일 디렉토리로 이동합니다. cd /home/umami npx prisma migrate resolve --applied "05_add_visit_id"

업데이트 명령을 실행한 후에는 PM2를 시작하는 것을 잊지 마세요.

#umami 파일 디렉토리로 들어갑니다.cd /home/umami git pull yarn install yarn build pm2 start npm --name umami -- start

 

이제 우마미 설정이 공식적으로 완료되었습니다. 나머지 설정은 매우 간단합니다. 우마미 패널의 안내를 따르기만 하면 됩니다. 궁금한 점이 있으시면 댓글란에 남겨주세요.

참고문헌:https://www.howtoforge.com/how-to-install-umami-analytics-on-debian-12/

5/5 - (1표)

댓글남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다