[Linux] CentOS Stream 9 환경 구축 6 - Node.js, NPM 설치 / war 파일 배포 및 globals.properties / Alias 등록

EUN JY·2024년 4월 16일
1

Linux

목록 보기
8/9
post-thumbnail

17. Node.js, NPM

[root@localhost ~]# dnf update -y
Last metadata expiration check: 0:18:29 ago on Fri 29 Mar 2024 02:00:07 PM KST.
Dependencies resolved.
=========================================================================================================================================================================
 Package                                                    Architecture               Version                               Repository                             Size
=========================================================================================================================================================================
Installing:
 kernel                                                     x86_64                     5.14.0-432.el9                        baseos                                 66 k
Upgrading:
 bpftool                                                    x86_64                     7.3.0-432.el9                         baseos                                842 k
############ (중략) ############

Transaction Summary
=========================================================================================================================================================================
Install    5 Packages
Upgrade  142 Packages

Total download size: 227 M
Downloading Packages:
(1/147): kernel-5.14.0-432.el9.x86_64.rpm                                                                                                345 kB/s |  66 kB     00:00
(2/147): kernel-core-5.14.0-432.el9.x86_64.rpm                                                                                           2.2 MB/s |  15 MB     00:06
############ (중략) ############

17-1. Node.js

  • Node.js list
[root@localhost ~]# dnf module list nodejs
Last metadata expiration check: 0:24:35 ago on Fri 29 Mar 2024 02:00:07 PM KST.
CentOS Stream 9 - AppStream
Name                            Stream                          Profiles                                                       Summary
nodejs                          18                              common [d], development, minimal, s2i                          Javascript runtime
nodejs                          20                              common [d], development, minimal, s2i                          Javascript runtime

Hint: [d]efault, [e]nabled, [x]d
  • Install Node.js 20
[root@localhost ~]# dnf module install nodejs:20 -y
Last metadata expiration check: 0:25:33 ago on Fri 29 Mar 2024 02:00:07 PM KST.
Dependencies resolved.
=========================================================================================================================================================================
 Package                               Architecture                Version                                                          Repository                      Size
=========================================================================================================================================================================
Installing group/module packages:
 nodejs                                x86_64                      1:20.9.0-1.module_el9+743+ad38546c                               appstream                       14 M
 npm                                   x86_64                      1:10.1.0-1.20.9.0.1.module_el9+743+ad38546c                      appstream                      2.6 M
Installing weak dependencies:
 nodejs-docs                           noarch                      1:20.9.0-1.module_el9+743+ad38546c                               appstream                      8.1 M
 nodejs-full-i18n                      x86_64                      1:20.9.0-1.module_el9+743+ad38546c                               appstream                      8.5 M
Installing module profiles:
 nodejs/common
Enabling module streams:
 nodejs                                                            20

Transaction Summary
=========================================================================================================================================================================
Install  4 Packages

Total download size: 33 M
Installed size: 175 M
Downloading Packages:
(1/4): nodejs-docs-20.9.0-1.module_el9+743+ad38546c.noarch.rpm                                                                           2.4 MB/s | 8.1 MB     00:03
(2/4): npm-10.1.0-1.20.9.0.1.module_el9+743+ad38546c.x86_64.rpm                                                                          1.0 MB/s | 2.6 MB     00:02
(3/4): nodejs-full-i18n-20.9.0-1.module_el9+743+ad38546c.x86_64.rpm                                                                      1.3 MB/s | 8.5 MB     00:06
(4/4): nodejs-20.9.0-1.module_el9+743+ad38546c.x86_64.rpm                                                                                1.3 MB/s |  14 MB     00:10
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                    2.8 MB/s |  33 MB     00:11
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                 1/1
  Installing       : nodejs-docs-1:20.9.0-1.module_el9+743+ad38546c.noarch                                                                                           1/4
############ (중략) ############

Installed:
  nodejs-1:20.9.0-1.module_el9+743+ad38546c.x86_64                                      nodejs-docs-1:20.9.0-1.module_el9+743+ad38546c.noarch
  nodejs-full-i18n-1:20.9.0-1.module_el9+743+ad38546c.x86_64                            npm-1:10.1.0-1.20.9.0.1.module_el9+743+ad38546c.x86_64

Complete!

17-2. NPM

  • NPM list
[root@localhost ~]# dnf list npm
Last metadata expiration check: 0:27:47 ago on Fri 29 Mar 2024 02:00:07 PM KST.
Installed Packages
npm.x86_64                                1:10.1.0-1.20.9.0.1.module_el9+743+ad38546c                             @appstream
  • Install NPM (Node Package Manager)
[root@localhost ~]# dnf install npm -y
Last metadata expiration check: 0:29:43 ago on Fri 29 Mar 2024 02:00:07 PM KST.
Package npm-1:10.1.0-1.20.9.0.1.module_el9+743+ad38546c.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

🔶 Node.js, NPM 버전 확인

  • 개인 로컬 PC 버전은 각각 v20.10.0 / 10.2.3
[root@localhost ~]# node --version
v20.9.0
[root@localhost ~]# npm --version
10.1.0

17-3. npm run dev

  • npm run dev
[root@localhost ProjYj2024]# npm run dev

> ProjYj2024@0.0.1 dev
> quasar dev

sh: line 1: quasar: command not found
  • ProjYj2024main Branch 에는 .quasar, node_modules 폴더가 없음 (gitignore 캐시 삭제 처리 git rm -r --cached 진행했기 때문)
    • FileZilla > /var/lib/containers/storage/volumes/4e56f41adaca53fa1652bb2d5e0aaa4f80905a278588c911343a283eb21be2fb/_data/workspace > 수동으로 복사 붙여넣기
[root@localhost .bin]# npm run dev

> ProjYj2024@0.0.1 dev
> quasar dev

sh: line 1: /var/lib/containers/storage/volumes/4e56f41adaca53fa1652bb2d5e0aaa4f80905a278588c911343a283eb21be2fb/_data/workspace/ProjYj2024/ProjYj2024/node_modules/.bin/quasar: Permission denied
  • 권한 부여
[root@localhost .bin]# pwd
/var/lib/containers/storage/volumes/4e56f41adaca53fa1652bb2d5e0aaa4f80905a278588c911343a283eb21be2fb/_data/workspace/ProjYj2024/ProjYj2024/node_modules/.bin

[root@localhost .bin]# chmod 755 *

🔶 9000 Port 상시 허용

  • 방화벽에 9000 Port를 상시 허용으로 등록 및 재실행
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=9000/tcp
success
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]# firewall-cmd --list-port
3306/tcp 3389/tcp 8070/tcp 8888/tcp 9000/tcp

18. projyjengine

  • /projyjengine 경로에 logs, projyj, blib 디렉토리 생성
[root@localhost projyjengine]# pwd
/projyjengine
[root@localhost projyjengine]# mkdir logs
[root@localhost projyjengine]# mkdir projyj
[root@localhost projyjengine]# mkdir blib
[root@localhost projyjengine]# ls
blib  projyj  logs

18-1. FTP 파일 업로드

  • FileZilla > C:\home\projyj\projyjengine\blib 의 폴더 및 파일을 /projyjengine/blib 경로에 업로드
    • 다운로드 경로 : C:\Users\PROJYJ\PROJYJ_YJ\2. ProjYj\1. 설치\서버환경 구축

19. ProjYjSvr 배포

  • Eclipse > ProjYjSvr 소스 Export > WAR file > 기본 설정으로 'Finish'
  • FileZilla > 생성된 ProjYjSvr.war 파일을 /tomcat/apache-tomcat-8.0.36/webapps 경로에 이동
[root@localhost webapps]# cd /tomcat/apache-tomcat-8.0.36/webapps
[root@localhost webapps]# ls
docs  examples  ProjYjSvr.war  host-manager  manager  ROOT

19-1. globals.properties

  • WAR 파일 생성 전globals.properties 파일에서 DB 연결 정보 수정 필요
# \uc6b4\uc601\uc11c\ubc84 \ud0c0\uc785(WINDOWS, UNIX)
Globals.OsType=UNIX

# G4C \uc5f0\uacb0\uc6a9 IP (localhost)
Globals.LocalIp=192.168.1.111

# DB\uc11c\ubc84 \ud0c0\uc785(mysql,oracle,altibase,tibero) - datasource \ubc0f sqlMap \ud30c\uc77c \uc9c0\uc815\uc5d0 \uc0ac\uc6a9\ub428
Globals.DbType=mysql
Globals.DbServer=192.168.1.111
Globals.DbName=projyj
Globals.UserName=projyj
Globals.Password=password\$\$

#Globals.DbType = mysql
#Globals.UserName=root
#Globals.Password=

#oracle
#Globals.DriverClassName=oracle.jdbc.driver.OracleDriver
#Globals.Url=jdbc:oracle:thin:@192.168.1.104:1521:ORCL

# mysql
Globals.DriverClassName=net.sf.log4jdbc.DriverSpy
Globals.Url=jdbc:mysql://192.168.1.111:3306/projyj
  • WAR 파일 풀린 후의 경로 : /tomcat/apache-tomcat-8.0.36/webapps/ProjYjSvr/WEB-INF/classes/egovframework/egovProps

🔶 Could not open JDBC Connection

  • globals.properties > 특수문자는 역슬래쉬(\) 붙일 것 : Globals.Password=password\$\$
    • 역슬래쉬 붙이지 않으면 아래와 같은 오류가 발생됨
  • 에러 팝업 문구가 loadError : xhr=[object Object], st=parseerror, err=SyntaxError: Unexpected token '<'," 이고,
  • ProjYjServer.log 로그 메시지가 아래와 같음
2024-04-01 15:45:34,148 ERROR [egovframework.projsvr.service.impl.OptionServiceImpl] Could not open JDBC Connection for transaction; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Access denied for user 'projyj'@'192.168.1.999' (using password: YES))
org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Access denied for user 'projyj'@'192.168.1.999' (using password: YES))
        at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549) ~[commons-dbcp-1.4.jar:1.4]
(...중략)
Caused by: java.sql.SQLException: Access denied for user 'projyj'@'192.168.1.999' (using password: YES)

19-2. MySQL DB 데이터 세팅

  • bmig_option_tbl 테이블의 값 일부 변경
    • WasURL : http://192.168.1.111:8070/ProjYjSvr/projsvr
    • JVM : /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b09-4.el9.x86_64/jre/bin/java
    • JarHome : /projyjengine

19-3. Tomcat 재실행

  • ./startup.sh 실행하여 WAR 파일이 풀린 것 확인
[root@localhost bin]# ./startup.sh
Using CATALINA_BASE:   /tomcat/apache-tomcat-8.0.36
Using CATALINA_HOME:   /tomcat/apache-tomcat-8.0.36
Using CATALINA_TMPDIR: /tomcat/apache-tomcat-8.0.36/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /tomcat/apache-tomcat-8.0.36/bin/bootstrap.jar:/tomcat/apache-tomcat-8.0.36/bin/tomcat-juli.jar
Tomcat started.
[root@localhost bin]# cd ../webapps/
[root@localhost webapps]# ls
docs  examples  ProjYjSvr  ProjYjSvr.war  host-manager  manager  ROOT
  • 로그인 테스트까지 완료되면 OK (ID : admin / PW : admin)

🔶 로그 조회하기

  • log4j2.xml > <RollingFile name="rollingFile" fileName="/home/projyj/tomcat/projyjlog/ProjYjServer.log" 경로 확인
[root@localhost projyjlog]# cd /home/projyj/tomcat/projyjlog
[root@localhost projyjlog]# tail -f ProjYjServer.log

🔶 Alias 영구 등록

  • .bash_aliases 파일 생성하여 alias 등록
[root@localhost ~]# ls -al | grep bashrc
-rw-r--r--.  1 root root   429 Aug 10  2021 .bashrc
[root@localhost ~]# vi .bash_aliases

alias zlog='tail -f /home/projyj/tomcat/projyjlog/ProjYjServer.log'
alias ztc='cd /tomcat/apache-tomcat-8.0.36/bin/'
alias zstart='/tomcat/apache-tomcat-8.0.36/bin/startup.sh'
alias zshut='/tomcat/apache-tomcat-8.0.36/bin/shutdown.sh'
  • source .bash_aliases 명령어를 실행해야 사용 가능

19-4. 누락 파일 추가

  • Monitoring* 파일이 누락되어 각 경로에 추가함
    • .class 다운로드 경로 : C:\Users\PROJYJ\PROJYJ_YJ\2. ProjYj\1. 설치\서버환경 구축\누락 파일
  • ProjYjSvr 프로젝트 자체에 추가하여 WAR 파일 Export 하는 것으로 변경 (24.04.03)
    • .java 다운로드 경로 : C:\Users\PROJYJ\PROJYJ_YJ\2. ProjYj\1. 설치\ProjYjWAS 누락파일
    • .war 파일 경로 : C:\Users\PROJYJ\PROJYJ_YJ\2. ProjYj\1. 설치\서버환경 구축
[root@localhost projsvr]# pwd # MonitoringController / MonitoringService / MonitoringServiceImpl / MonitoringDAO
/tomcat/apache-tomcat-8.0.36/webapps/ProjYjSvr/WEB-INF/classes/egovframework/projsvr
[root@localhost projsvr]# pwd # Monitoring_SQL_Mysql
/tomcat/apache-tomcat-8.0.36/webapps/ProjYjSvr/WEB-INF/classes/egovframework/sqlmap/projsvr

[root@localhost egovframework]# find | grep Monitoring
./projsvr/controller/MonitoringController.class
./projsvr/dao/MonitoringDAO.class
./projsvr/service/impl/MonitoringServiceImpl.class
./projsvr/service/MonitoringService.class
./sqlmap/projsvr/Monitoring_SQL_Mysql.xml
profile
개린이

0개의 댓글