stevenui-MacBookPro:pgmodeler steven$ git https://github.com/pgmodeler/pgmodeler.git
git: 'https://github.com/pgmodeler/pgmodeler.git' is not a git command. See 'git --help'.
stevenui-MacBookPro:pgmodeler steven$ git clone https://github.com/pgmodeler/pgmodeler.git
Cloning into 'pgmodeler'...
remote: Enumerating objects: 295, done.
remote: Counting objects: 100% (295/295), done.
remote: Compressing objects: 100% (180/180), done.
remote: Total 44360 (delta 154), reused 200 (delta 115), pack-reused 44065
Receiving objects: 100% (44360/44360), 29.30 MiB | 8.08 MiB/s, done.
Resolving deltas: 100% (31703/31703), done.

stevenui-MacBookPro:pgmodeler steven$ ls
pgmodeler
stevenui-MacBookPro:pgmodeler steven$ cd pgmodeler/
stevenui-MacBookPro:pgmodeler steven$ ls
CHANGELOG.md RELEASENOTES.md dbm-mime-type.sh installer libparsers libpgmodeler_ui macdeploy.sh pgmodeler-intl.pro pgmodeler.pro samples tests
LICENSE conf docmainpage.doxy lang libpgconnector libutils main pgmodeler.appdata.xml pgmodeler.vars schemas windeploy.sh
README.md crashhandler doxygen.conf libobjrenderer libpgmodeler linuxdeploy.sh main-cli pgmodeler.pri plugins start-pgmodeler.sh wingetdate.bat


stevenui-MacBookPro:pgmodeler steven$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
==> This script will install:
/usr/local/bin/brew
/usr/local/share/doc/homebrew
/usr/local/share/man/man1/brew.1
/usr/local/share/zsh/site-functions/_brew
/usr/local/etc/bash_completion.d/brew
....


stevenui-MacBookPro:pgmodeler steven$ brew link qt5 --force
Linking /usr/local/Cellar/qt/5.13.0... 432 symlinks created

If you need to have this software first in your PATH instead consider running:
echo 'export PATH="/usr/local/opt/qt/bin:$PATH"' >> ~/.bash_profile
stevenui-MacBookPro:pgmodeler steven$ brew install postgresql
==> Installing dependencies for postgresql: icu4c, openssl and readline
==> Installing postgresql dependency: icu4c
==> Downloading https://homebrew.bintray.com/bottles/icu4c-64.2.mojave.bottle.tar.gz
==> Downloading from https://akamai.bintray.com/e8/e858556120acc0c2d52b8fb572b677856724cc28d24a7e1b2762d458a2977c8e?__gda__=exp=1564652424~hmac=3522026e42dc3ea211ca26046ab79b0808f40a2a5dd89b19cd01eb25f612b768&response-content-disposition=attachment%3Bfilename%3D%22icu4c
######################################################################## 100.0%
==> Pouring icu4c-64.2.mojave.bottle.tar.gz
==> Caveats
....

stevenui-MacBookPro:pgmodeler steven$ vi pgmodeler.pri
stevenui-MacBookPro:pgmodeler steven$ export PGMODELER_ROOT=/Applications/pgmodeler.app/
stevenui-MacBookPro:pgmodeler steven$ qmake -r pgmodeler.pro
Info: creating stash file /Users/steven/pgmodeler/pgmodeler/.qmake.stash
Reading /Users/steven/pgmodeler/pgmodeler/libutils/libutils.pro
Reading /Users/steven/pgmodeler/pgmodeler/libparsers/libparsers.pro
Reading /Users/steven/pgmodeler/pgmodeler/libpgmodeler/libpgmodeler.pro
Reading /Users/steven/pgmodeler/pgmodeler/libpgconnector/libpgconnector.pro
Reading /Users/steven/pgmodeler/pgmodeler/libobjrenderer/libobjrenderer.pro
Reading /Users/steven/pgmodeler/pgmodeler/libpgmodeler_ui/libpgmodeler_ui.pro
Reading /Users/steven/pgmodeler/pgmodeler/crashhandler/crashhandler.pro
Reading /Users/steven/pgmodeler/pgmodeler/main-cli/main-cli.pro
Reading /Users/steven/pgmodeler/pgmodeler/main/main.pro

** pgModeler build details **

PREFIX = /Applications/pgmodeler.app/Contents
BINDIR = /Applications/pgmodeler.app/Contents/MacOS
PRIVATEBINDIR = /Applications/pgmodeler.app/Contents/MacOS
PRIVATELIBDIR = /Applications/pgmodeler.app/Contents/Frameworks
PLUGINSDIR = /Applications/pgmodeler.app/Contents/MacOS/plugins
SHAREDIR = /Applications/pgmodeler.app/Contents/MacOS
CONFDIR = /Applications/pgmodeler.app/Contents/MacOS/conf
DOCDIR = /Applications/pgmodeler.app/Contents/MacOS
LANGDIR = /Applications/pgmodeler.app/Contents/MacOS/lang
SAMPLESDIR = /Applications/pgmodeler.app/Contents/MacOS/samples
SCHEMASDIR = /Applications/pgmodeler.app/Contents/MacOS/schemas
....


stevenui-MacBookPro:pgmodeler steven$ make && make install
cd libutils/ && ( test -e Makefile || /usr/local/bin/qmake -o Makefile /Users/steven/pgmodeler/pgmodeler/libutils/libutils.pro CONFIG+=release ) && /Library/Developer/CommandLineTools/usr/bin/make -f Makefile
make[1]: Nothing to be done for `first'.
cd libparsers/ && ( test -e Makefile || /usr/local/bin/qmake -o Makefile /Users/steven/pgmodeler/pgmodeler/libparsers/libparsers.pro CONFIG+=release ) && /Library/Developer/CommandLineTools/usr/bin/make -f Makefile
make[1]: Nothing to be done for `first'.
cd libpgmodeler/ && ( test -e Makefile || /usr/local/bin/qmake -o Makefile /Users/steven/pgmodeler/pgmodeler/libpgmodeler/libpgmodeler.pro CONFIG+=release ) && /Library/Developer/CommandLineTools/usr/bin/make -f Makefile
make[1]: Nothing to be done for `first'.
cd libpgconnector/ && ( test -e Makefile || /usr/local/bin/qmake -o Makefile /Users/steven/pgmodeler/pgmodeler/libpgconnector/libpgconnector.pro CONFIG+=release ) && /Library/Developer/CommandLineTools/usr/bin/make -f Makefile
make[1]: Nothing to be done for `first'.
cd libobjrenderer/ && ( test -e Makefile || /usr/local/bin/qmake -o Makefile /Users/steven/pgmodeler/pgmodeler/libobjrenderer/libobjrenderer.pro CONFIG+=release ) && /Library/Developer/CommandLineTools/usr/bin/make -f Makefile
make[1]: Nothing to be done for `first'.
cd libpgmodeler_ui/ && ( test -e Makefile || /usr/local/bin/qmake -o Makefile /Users/steven/pgmodeler/pgmodeler/libpgmodeler_ui/libpgmodeler_ui.pro CONFIG+=release ) && /Library/Developer/CommandLineTools/usr/bin/make -f Makefile
make[1]: Nothing to be done for `first'.
cd crashhandler/ && ( test -e Makefile || /usr/local/bin/qmake -o Makefile /Users/steven/pgmodeler/pgmodeler/crashhandler/crashhandler.pro CONFIG+=release ) && /Library/Developer/CommandLineTools/usr/bin/make -f Makefile
make[1]: Nothing to be done for `first'.
cd main-cli/ && ( test -e Makefile || /usr/local/bin/qmake -o Makefile /Users/steven/pgmodeler/pgmodeler/main-cli/main-cli.pro CONFIG+=release ) && /Library/Developer/CommandLineTools/usr/bin/make -f Makefile
make[1]: Nothing to be done for `first'.
cd main/ && ( test -e Makefile || /usr/local/bin/qmake -o Makefile /Users/steven/pgmodeler/pgmodeler/main/main.pro CONFIG+=release ) && /Library/Developer/CommandLineTools/usr/bin/make -f Makefile
make[1]: Nothing to be done for `first'.
cd libutils/ && ( test -e Makefile || /usr/local/bin/qmake -o Makefile /Users/steven/pgmodeler/pgmodeler/libutils/libutils.pro CONFIG+=release ) && /Library/Developer/CommandLineTools/usr/bin/make -f Makefile install
/usr/local/bin/qmake -install qinstall -exe libutils.1.0.0.dylib /Applications/pgmodeler.app/Contents/Frameworks/libutils.1.0.0.dylib
strip -S -x /Applications/pgmodeler.app/Contents/Frameworks/libutils.1.0.0.dylib
ln -f -s libutils.1.0.0.dylib /Applications/pgmodeler.app/Contents/Frameworks/libutils.dylib
ln -f -s libutils.1.0.0.dylib /Applications/pgmodeler.app/Contents/Frameworks/libutils.1.dylib
ln -f -s libutils.1.0.0.dylib /Applications/pgmodeler.app/Contents/Frameworks/libutils.1.0.dylib
cd libparsers/ && ( test -e Makefile || /usr/local/bin/qmake -o Makefile /Users/steven/pgmodeler/pgmodeler/libparsers/libparsers.pro CONFIG+=release ) && /Library/Developer/CommandLineTools/usr/bin/make -f Makefile install
/usr/local/bin/qmake -install qinstall -exe libparsers.1.0.0.dylib /Applications/pgmodeler.app/Contents/Frameworks/libparsers.1.0.0.dylib
strip -S -x /Applications/pgmodeler.app/Contents/Frameworks/libparsers.1.0.0.dylib
ln -f -s libparsers.1.0.0.dylib /Applications/pgmodeler.app/Contents/Frameworks/libparsers.dylib
ln -f -s libparsers.1.0.0.dylib /Applications/pgmodeler.app/Contents/Frameworks/libparsers.1.dylib
ln -f -s libparsers.1.0.0.dylib /Applications/pgmodeler.app/Contents/Frameworks/libparsers.1.0.dylib
cd libpgmodeler/ && ( test -e Makefile || /usr/local/bin/qmake -o Makefile /Users/steven/pgmodeler/pgmodeler/libpgmodeler/libpgmodeler.pro CONFIG+=release ) && /Library/Developer/CommandLineTools/usr/bin/make -f Makefile install
/usr/local/bin/qmake -install qinstall -exe libpgmodeler.1.0.0.dylib /Applications/pgmodeler.app/Contents/Frameworks/libpgmodeler.1.0.0.dylib
strip -S -x /Applications/pgmodeler.app/Contents/Frameworks/libpgmodeler.1.0.0.dylib
ln -f -s libpgmodeler.1.0.0.dylib /Applications/pgmodeler.app/Contents/Frameworks/libpgmodeler.dylib
ln -f -s libpgmodeler.1.0.0.dylib /Applications/pgmodeler.app/Contents/Frameworks/libpgmodeler.1.dylib
ln -f -s libpgmodeler.1.0.0.dylib /Applications/pgmodeler.app/Contents/Frameworks/libpgmodeler.1.0.dylib
cd libpgconnector/ && ( test -e Makefile || /usr/local/bin/qmake -o Makefile /Users/steven/pgmodeler/pgmodeler/libpgconnector/libpgconnector.pro CONFIG+=release ) && /Library/Developer/CommandLineTools/usr/bin/make -f Makefile install
/usr/local/bin/qmake -install qinstall -exe libpgconnector.1.0.0.dylib /Applications/pgmodeler.app/Contents/Frameworks/libpgconnector.1.0.0.dylib
strip -S -x /Applications/pgmodeler.app/Contents/Frameworks/libpgconnector.1.0.0.dylib
ln -f -s libpgconnector.1.0.0.dylib /Applications/pgmodeler.app/Contents/Frameworks/libpgconnector.dylib
ln -f -s libpgconnector.1.0.0.dylib /Applications/pgmodeler.app/Contents/Frameworks/libpgconnector.1.dylib
ln -f -s libpgconnector.1.0.0.dylib /Applications/pgmodeler.app/Contents/Frameworks/libpgconnector.1.0.dylib
cd libobjrenderer/ && ( test -e Makefile || /usr/local/bin/qmake -o Makefile /Users/steven/pgmodeler/pgmodeler/libobjrenderer/libobjrenderer.pro CONFIG+=release ) && /Library/Developer/CommandLineTools/usr/bin/make -f Makefile install
/usr/local/bin/qmake -install qinstall -exe libobjrenderer.1.0.0.dylib /Applications/pgmodeler.app/Contents/Frameworks/libobjrenderer.1.0.0.dylib
strip -S -x /Applications/pgmodeler.app/Contents/Frameworks/libobjrenderer.1.0.0.dylib
ln -f -s libobjrenderer.1.0.0.dylib /Applications/pgmodeler.app/Contents/Frameworks/libobjrenderer.dylib
ln -f -s libobjrenderer.1.0.0.dylib /Applications/pgmodeler.app/Contents/Frameworks/libobjrenderer.1.dylib
ln -f -s libobjrenderer.1.0.0.dylib /Applications/pgmodeler.app/Contents/Frameworks/libobjrenderer.1.0.dylib
cd libpgmodeler_ui/ && ( test -e Makefile || /usr/local/bin/qmake -o Makefile /Users/steven/pgmodeler/pgmodeler/libpgmodeler_ui/libpgmodeler_ui.pro CONFIG+=release ) && /Library/Developer/CommandLineTools/usr/bin/make -f Makefile install
/usr/local/bin/qmake -install qinstall -exe libpgmodeler_ui.1.0.0.dylib /Applications/pgmodeler.app/Contents/Frameworks/libpgmodeler_ui.1.0.0.dylib
strip -S -x /Applications/pgmodeler.app/Contents/Frameworks/libpgmodeler_ui.1.0.0.dylib
ln -f -s libpgmodeler_ui.1.0.0.dylib /Applications/pgmodeler.app/Contents/Frameworks/libpgmodeler_ui.dylib
ln -f -s libpgmodeler_ui.1.0.0.dylib /Applications/pgmodeler.app/Contents/Frameworks/libpgmodeler_ui.1.dylib
ln -f -s libpgmodeler_ui.1.0.0.dylib /Applications/pgmodeler.app/Contents/Frameworks/libpgmodeler_ui.1.0.dylib
cd crashhandler/ && ( test -e Makefile || /usr/local/bin/qmake -o Makefile /Users/steven/pgmodeler/pgmodeler/crashhandler/crashhandler.pro CONFIG+=release ) && /Library/Developer/CommandLineTools/usr/bin/make -f Makefile install
/usr/local/bin/qmake -install qinstall -exe pgmodeler-ch /Applications/pgmodeler.app/Contents/MacOS/pgmodeler-ch
strip /Applications/pgmodeler.app/Contents/MacOS/pgmodeler-ch
cd main-cli/ && ( test -e Makefile || /usr/local/bin/qmake -o Makefile /Users/steven/pgmodeler/pgmodeler/main-cli/main-cli.pro CONFIG+=release ) && /Library/Developer/CommandLineTools/usr/bin/make -f Makefile install
/usr/local/bin/qmake -install qinstall -exe pgmodeler-cli /Applications/pgmodeler.app/Contents/MacOS/pgmodeler-cli
strip /Applications/pgmodeler.app/Contents/MacOS/pgmodeler-cli
cd main/ && ( test -e Makefile || /usr/local/bin/qmake -o Makefile /Users/steven/pgmodeler/pgmodeler/main/main.pro CONFIG+=release ) && /Library/Developer/CommandLineTools/usr/bin/make -f Makefile install
/usr/local/bin/qmake -install qinstall -exe pgmodeler /Applications/pgmodeler.app/Contents/MacOS/pgmodeler
strip /Applications/pgmodeler.app/Contents/MacOS/pgmodeler
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/main/res/Resources /Applications/pgmodeler.app/Contents/Resources
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/main/res/Info.plist /Applications/pgmodeler.app/Contents/Info.plist
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/main/res/PkgInfo /Applications/pgmodeler.app/Contents/PkgInfo
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/samples/3dcitydb.dbm /Applications/pgmodeler.app/Contents/MacOS/samples/3dcitydb.dbm
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/samples/demo.dbm /Applications/pgmodeler.app/Contents/MacOS/samples/demo.dbm
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/samples/oldsample.dbm /Applications/pgmodeler.app/Contents/MacOS/samples/oldsample.dbm
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/samples/pagila.dbm /Applications/pgmodeler.app/Contents/MacOS/samples/pagila.dbm
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/samples/usda.dbm /Applications/pgmodeler.app/Contents/MacOS/samples/usda.dbm
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/schemas/alter /Applications/pgmodeler.app/Contents/MacOS/schemas/alter
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/schemas/catalog /Applications/pgmodeler.app/Contents/MacOS/schemas/catalog
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/schemas/sql /Applications/pgmodeler.app/Contents/MacOS/schemas/sql
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/schemas/xml /Applications/pgmodeler.app/Contents/MacOS/schemas/xml
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/lang/es_ES.qm /Applications/pgmodeler.app/Contents/MacOS/lang/es_ES.qm
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/lang/es_ES.ts /Applications/pgmodeler.app/Contents/MacOS/lang/es_ES.ts
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/lang/fr_FR.qm /Applications/pgmodeler.app/Contents/MacOS/lang/fr_FR.qm
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/lang/fr_FR.ts /Applications/pgmodeler.app/Contents/MacOS/lang/fr_FR.ts
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/lang/nl_NL.qm /Applications/pgmodeler.app/Contents/MacOS/lang/nl_NL.qm
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/lang/nl_NL.ts /Applications/pgmodeler.app/Contents/MacOS/lang/nl_NL.ts
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/lang/pt_BR.qm /Applications/pgmodeler.app/Contents/MacOS/lang/pt_BR.qm
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/lang/pt_BR.ts /Applications/pgmodeler.app/Contents/MacOS/lang/pt_BR.ts
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/lang/zh_CN.qm /Applications/pgmodeler.app/Contents/MacOS/lang/zh_CN.qm
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/lang/zh_CN.ts /Applications/pgmodeler.app/Contents/MacOS/lang/zh_CN.ts
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/conf/connections.conf /Applications/pgmodeler.app/Contents/MacOS/conf/connections.conf
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/conf/defaults /Applications/pgmodeler.app/Contents/MacOS/conf/defaults
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/conf/dtd /Applications/pgmodeler.app/Contents/MacOS/conf/dtd
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/conf/example.dbm /Applications/pgmodeler.app/Contents/MacOS/conf/example.dbm
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/conf/objects-style.conf /Applications/pgmodeler.app/Contents/MacOS/conf/objects-style.conf
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/conf/pattern-highlight.conf /Applications/pgmodeler.app/Contents/MacOS/conf/pattern-highlight.conf
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/conf/pgmodeler.conf /Applications/pgmodeler.app/Contents/MacOS/conf/pgmodeler.conf
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/conf/pgmodeler_dbm.png /Applications/pgmodeler.app/Contents/MacOS/conf/pgmodeler_dbm.png
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/conf/pgmodeler_logo.png /Applications/pgmodeler.app/Contents/MacOS/conf/pgmodeler_logo.png
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/conf/relationships.conf /Applications/pgmodeler.app/Contents/MacOS/conf/relationships.conf
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/conf/schemas /Applications/pgmodeler.app/Contents/MacOS/conf/schemas
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/conf/snippets.conf /Applications/pgmodeler.app/Contents/MacOS/conf/snippets.conf
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/conf/sql-highlight.conf /Applications/pgmodeler.app/Contents/MacOS/conf/sql-highlight.conf
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/conf/ui-style.conf /Applications/pgmodeler.app/Contents/MacOS/conf/ui-style.conf
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/conf/xml-highlight.conf /Applications/pgmodeler.app/Contents/MacOS/conf/xml-highlight.conf
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/README.md /Applications/pgmodeler.app/Contents/MacOS/README.md
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/CHANGELOG.md /Applications/pgmodeler.app/Contents/MacOS/CHANGELOG.md
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/LICENSE /Applications/pgmodeler.app/Contents/MacOS/LICENSE
/usr/local/bin/qmake -install qinstall /Users/steven/pgmodeler/pgmodeler/RELEASENOTES.md /Applications/pgmodeler.app/Contents/MacOS/RELEASENOTES.md
stevenui-MacBookPro:pgmodeler steven$ macdeployqt $INSTALLATION_ROOT \
> $INSTALLATION_ROOT/Contents/MacOS/pgmodeler-ch \
> $INSTALLATION_ROOT/Contents/MacOS/pgmodeler-cli
stevenui-MacBookPro:pgmodeler steven$

Root 계정 접속

install JDK

이미 있는 경우는 불필요

yum install java-1.8.0-openjdk-devel

user 생성

Root로 그냥 처리 할 경우 불필요함

[root@localhost ~]# groupadd -r wildfly
[root@localhost ~]# useradd -r -g wildfly -d /opt/wildfly -s /sbin/nologin wildfly

Download

https://wildfly.org/downloads/

에서 가장 최신 파일 Java EE Full & Web Distribution TGZ url copy

[root@localhost ~]# mkdir wildfly
[root@localhost ~]# cd wildfly/
[root@localhost wildfly]# wget https://download.jboss.org/wildfly/17.0.1.Final/wildfly-17.0.1.Final.tar.gz
--2019-07-25 14:14:51-- https://download.jboss.org/wildfly/17.0.1.Final/wildfly-17.0.1.Final.tar.gz
Resolving download.jboss.org (download.jboss.org)... 104.75.2.61
Connecting to download.jboss.org (download.jboss.org)|104.75.2.61|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 183598392 (175M) [application/x-gzip]
Saving to: ‘wildfly-17.0.1.Final.tar.gz’

100%[=================================================================================================>] 183,598,392 1.50MB/s in 1m 57s

2019-07-25 14:16:49 (1.50 MB/s) - ‘wildfly-17.0.1.Final.tar.gz’ saved [183598392/183598392]

[root@localhost wildfly]#
[root@localhost wildfly]# tar xf wildfly-17.0.1.Final.tar.gz -C /opt/
[root@localhost wildfly]# cd /opt
[root@localhost opt]# ls
gitlab rh vagrant wildfly-17.0.1.Final
[root@localhost opt]# ln -s /opt/wildfly-17.0.1.Final /opt/wildfly
[root@localhost opt]# ls
gitlab rh vagrant wildfly wildfly-17.0.1.Final
[root@localhost opt]#

권한 설정

[root@localhost opt]# chown wildfly:wildfly wildfly
[root@localhost opt]# ls -al
합계 0
drwxr-xr-x. 6 root root 88 7월 25 14:18 .
dr-xr-xr-x. 20 root root 287 7월 15 17:26 ..
drwxr-xr-x. 10 root root 212 7월 8 22:34 gitlab
drwxr-xr-x. 2 root root 6 10월 31 2018 rh
drwxr-xr-x. 4 root root 33 6월 21 19:42 vagrant
lrwxrwxrwx. 1 root root 25 7월 25 14:18 wildfly -> /opt/wildfly-17.0.1.Final
drwxr-xr-x. 11 wildfly wildfly 239 7월 3 10:59 wildfly-17.0.1.Final
[root@localhost opt]#

시스템 등록

[root@localhost etc]# mkdir /etc/wildfly
[root@localhost systemd]# pwd
/opt/wildfly/docs/contrib/scripts/systemd
[root@localhost systemd]# cp wildfly.conf /etc/wildfly/
[root@localhost scripts]# pwd
/opt/wildfly/docs/contrib/scripts
[root@localhost scripts]# ls
README.md init.d service systemd
[root@localhost scripts]# cd systemd/
[root@localhost systemd]# ls
README launch.sh wildfly.conf wildfly.service
[root@localhost systemd]# cp launch.sh /opt/wildfly/bin/
[root@localhost systemd]# chmod +x /opt/wildfly/bin/*.sh
[root@localhost systemd]# cp wildfly.service /etc/systemd/system/
[root@localhost systemd]# systemctl daemon-reload
[root@localhost systemd]# systemctl status wildfly
● wildfly.service - The WildFly Application Server
Loaded: loaded (/etc/systemd/system/wildfly.service; disabled; vendor preset: disabled)
Active: inactive (dead)

상위 프로세스중 wildfly.conf를 복사 하는 부분이 있는 해당 내용은 systemctl에 서비스를 등록 하기 위하여 필요 한 부분인다.

wildfly.service의 내용을 보면 다음과 같다.

[Unit]
Description=The WildFly Application Server
After=syslog.target network.target
Before=httpd.service

[Service]
Environment=LAUNCH_JBOSS_IN_BACKGROUND=1
EnvironmentFile=-/etc/wildfly/wildfly.conf
User=wildfly
LimitNOFILE=102642
PIDFile=/var/run/wildfly/wildfly.pid
ExecStart=/opt/wildfly/bin/launch.sh $WILDFLY_MODE $WILDFLY_CONFIG $WILDFLY_BIND
StandardOutput=null

[Install]
WantedBy=multi-user.target

EnvironmentFile=-/etc/wildfly/wildfly.conf wildfly에 대한 config 설정 위치를 확인 가능하다.

해당 내용은 서비스를 시작 시켰을 때 다음과 같이 작동 하게 된다.

/opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0

[root@localhost wildfly]# systemctl status wildfly
● wildfly.service - The WildFly Application Server
Loaded: loaded (/etc/systemd/system/wildfly.service; enabled; vendor preset: disabled)
Active: active (running) since 목 2019-07-25 15:14:42 KST; 4min 43s ago
Main PID: 10581 (launch.sh)
Tasks: 56
Memory: 348.6M
CGroup: /system.slice/wildfly.service
├─10581 /bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0
├─10582 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0
└─10639 java -D[Standalone] -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Sta...

7월 25 15:14:42 localhost.localdomain systemd[1]: Started The WildFly Application Server.
정상 작동 여부 확인
[root@localhost wildfly]# ps -ef | grep wildfly
wildfly 10581 1 0 15:14 ? 00:00:00 /bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0
wildfly 10582 10581 0 15:14 ? 00:00:00 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0
wildfly 10639 10582 2 15:14 ? 00:00:11 java -D[Standalone] -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -Dorg.jboss.boot.log.file=/opt/wildfly/standalone/log/server.log -Dlogging.configuration=file:/opt/wildfly/standalone/configuration/logging.properties -jar /opt/wildfly/jboss-modules.jar -mp /opt/wildfly/modules org.jboss.as.standalone -Djboss.home.dir=/opt/wildfly -Djboss.server.base.dir=/opt/wildfly/standalone -c standalone.xml -b 0.0.0.0
root 13466 47780 0 15:21 pts/0 00:00:00 grep --color=auto wildfly
[root@localhost wildfly]# netstat -tnlp --tcp | grep 10639
tcp 0 0 127.0.0.1:10090 0.0.0.0:* LISTEN 10639/java
tcp 0 0 0.0.0.0:8180 0.0.0.0:* LISTEN 10639/java
tcp 0 0 0.0.0.0:8543 0.0.0.0:* LISTEN 10639/java

포트 3개가 열려 있는 것을 확인 할 수 있다.

  • 10090 : original 9990 -> management port
  • 8180: original 8080 -> http
  • 8543 : original 8443 -> https

상위와 같이 포트 수정을 위해서는 standard.xml을 수정해야 한다

/opt/wildfly/standalone/configuration

<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:100}">
<socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
<socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/>
<socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
<socket-binding name="http" port="${jboss.http.port:8080}"/>
<socket-binding name="https" port="${jboss.https.port:8443}"/>
<socket-binding name="txn-recovery-environment" port="4712"/>
<socket-binding name="txn-status-manager" port="4713"/>
<outbound-socket-binding name="mail-smtp">
<remote-destination host="localhost" port="25"/>
</outbound-socket-binding>
</socket-binding-group>

Port Open

[root@localhost configuration]# sudo firewall-cmd --zone=public --permanent --add-port=8180/tcp
success
[root@localhost configuration]# sudo firewall-cmd --zone=public --permanent --add-port=10090/tcp
success
[root@localhost configuration]# sudo firewall-cmd --reload
success

remote use setting

wildfly administator 또는 remote cli등의 작업을 위해 사용자 등록을 처리한다.

[root@localhost bin]# pwd
/opt/wildfly/bin

[root@localhost bin]# ./add-user.sh

What type of user do you wish to add?
a) Management User (mgmt-users.properties)
b) Application User (application-users.properties)
(a): a

Enter the details of the new user to add.
Using realm 'ManagementRealm' as discovered from the existing property files.
Username : sample
Password recommendations are listed below. To modify these restrictions edit the add-user.properties configuration file.
- The password should be different from the username
- The password should not be one of the following restricted values {root, admin, administrator}
- The password should contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), 1 non-alphanumeric symbol(s)
Password :
WFLYDM0102: Password should have at least 1 non-alphanumeric symbol.
Are you sure you want to use the password entered yes/no? yes
Re-enter Password :
What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[ ]:
About to add user 'sample' for realm 'ManagementRealm'
Is this correct yes/no? yes
Added user 'sample' to file '/opt/wildfly-17.0.1.Final/standalone/configuration/mgmt-users.properties'
Added user 'sample' to file '/opt/wildfly-17.0.1.Final/domain/configuration/mgmt-users.properties'
Added user 'sample' with groups to file '/opt/wildfly-17.0.1.Final/standalone/configuration/mgmt-groups.properties'
Added user 'sample' with groups to file '/opt/wildfly-17.0.1.Final/domain/configuration/mgmt-groups.properties'
Is this new user going to be used for one AS process to connect to another AS process?
e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server EJB calls.
yes/no? yes
To represent the user add the following to the server-identities definition <secret value="dGhl1gmM3ODk=" />

Cli 사용법

접속 방법
[root@localhost bin]# ./jboss-cli.sh 
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.
[disconnected /] connect 127.0.0.1:10090
[standalone@127.0.0.1:10090 /] exit
[root@localhost bin]# ./jboss-cli.sh --connect --controller=127.0.0.1:10090
제공 가능한 명령어

[standalone@127.0.0.1:10090 /] help --commands
Commands available in the current context:
attachment deployment-info run-batch
batch deployment-overlay security disable-http-auth-http-server
cd echo security disable-http-auth-management
clear echo-dmr security disable-sasl-management
command for security disable-ssl-http-server
command-timeout grep security disable-ssl-management
connect help security enable-http-auth-http-server
connection-info history security enable-http-auth-management
data-source if security enable-sasl-management
deploy jdbc-driver-info security enable-ssl-http-server
deployment deploy-cli-archive ls security enable-ssl-management
deployment deploy-file module security reorder-sasl-management
deployment deploy-url patch apply set
deployment disable patch history shutdown
deployment disable-all patch info try
deployment enable patch inspect undeploy
deployment enable-all pwd unset
deployment info quit version
deployment list read-attribute xa-data-source
deployment undeploy read-operation
deployment undeploy-cli-archive reload
To read a description of a specific command execute 'help <command name>'.

자세한 활용 법은

https://docs.jboss.org/author/display/WFLY/Command+Line+Interface

이곳에서 확인 가능

admin console

상위와 같이 작성 하고 테스트 해보면 http 서비스는 잘 접근이 되는데, admin console이 접근이 잘 안될 수 있다.

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    

tcp 0 0 127.0.0.0:10090 0.0.0.0:* LISTEN 64558/java

tcp 0 0 0.0.0.0:8180 0.0.0.0:* LISTEN 64558/java

사유는 127.0.0.0 이 부분 때문에 remote에서 접근이 안되는 것이다.

로컬에서는 잘 접근이 된다.

해당 부분을 해결 하기 위해서는 다음과 같이 수정이 필요 하다.

/opt/wildfly/bin/launch.sh

#!/bin/bash

if [ "x$WILDFLY_HOME" = "x" ]; then
WILDFLY_HOME="/opt/wildfly"
fi

if [[ "$1" == "domain" ]]; then
$WILDFLY_HOME/bin/domain.sh -c $2 -b $3
else
- $WILDFLY_HOME/bin/standalone.sh -c $2 -b $3
+ $WILDFLY_HOME/bin/standalone.sh -c $2 -b $3 -bmanagement $3
fi

서로 다른 서비스를 갖는 프로젝트 2개가 있고 두개의 프로젝트가 intellij에서 동시에 wildfly(jboss) 상에서 실행 되어야 할때, 어떻게 로컬 세팅을 하는지에 대한 기록 임

전제

각 프로젝트는 독립 적으로 이미 작동 시킬 수 있는 상태이다.

wildfly standalone 버전으로 서비스를 start할 거다

port는 서로 달라도 된다

Wildfly가 특정 폴더에 인스톨 되어있다.

wildfly 설정

  • wildfly 디렉토리 이하 standalone 폴더를 하나더 copy한다.

    • standalone2 라는 이름으로 standalone폴더와 같은 위치에 만든다
  • Wildfly > bin 디렉토리 이하 standalone.sh 또는 standalone.bat을 하나더 copy한다.

    • standalone2.sh 라는 이름으로 같은 위치에 만든다
  • standalone2.sh 를 수정한다

    # determine the default base dir, if not set
    if [ "x$JBOSS_BASE_DIR" = "x" ]; then
    - JBOSS_BASE_DIR="$JBOSS_HOME/standalone"
    + JBOSS_BASE_DIR="$JBOSS_HOME/standalone2"
    fi

intellij 설정

  • A프로젝트와 B프로젝트를 intellij에서 연다
  • A프로젝트는 다음과 같이 기본 설정한다. (Run > Run/Debug Configuration)
    • '+' > JBoss Server > wildfly > local > Application Server > 로컬 Jboss선택
      • 만약에 Jboss 선택에 아무것도 없다면 "Configuration" 버튼 클릭 JbossHome 선택
    • 'url' : http://localhost:8080/
    • Operating mode > standalone 선택
    • Deployment 탭 선택
      • 디플로이 하고자 하는 Artifact 선택
    • Startup/Connection 탭 선택
      • Startup Script : <>/bin/standalone.sh 선택
  • B프로젝트는 다음과 같이 기본 설정한다. (Run > Run/Debug Configuration)
    • '+' > JBoss Server > wildfly > local > Application Server > 로컬 Jboss선택
      • 만약에 Jboss 선택에 아무것도 없다면 "Configuration" 버튼 클릭 JbossHome 선택
    • 'url' : http://localhost:8090/
    • Operating mode > standalone 선택
      • Port offset : 10 선택
    • Deployment 탭 선택
      • 디플로이 하고자 하는 Artifact 선택
    • Startup/Connection 탭 선택
      • Startup Script : <>/bin/standalone2.sh 선택

offset 설정을 standalone.xml에서 설정할 경우 해당 설정 값을 intellij가 감지 하지 못한다. 반듯이 intellij에서 제공하는 offset으로 수정해줘야 한다. (management port 때문에라도 이렇게 해야한다.)

상위와 같이 했음에도 **Caused by: org.jboss.msc.service.DuplicateServiceException: Service jboss.undertow.deployment.default-server.default-host./.session is already registered**이런 오류가 나오는 경우에는 standalone2 디렉토리 이하에 있는 standalone.xml에 앞서 설정한 deployment가 남아 있을 수도 있다. 이경우에는 deployments tag를 아예 삭제하고 intellij에서 실행하자

  1. https://www.postgresql.org/download/linux/redhat/
  2. Select version : 11
  3. Select Platform : Redhat Enterprise
  4. Select Archtecture : x86_64
  5. yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

  6. yum install postgresql11

  7. yum install postgresql11-server

  8. default db install

/usr/pgsql-11/bin/postgresql-11-setup initdb
  1. change access control
[root@localhost data]# pwd
/var/lib/pgsql/11/data
[root@localhost data]# vi pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
+ host all all 0.0.0.0/0 md5
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all peer
host replication all 127.0.0.1/32 ident
host replication all ::1/128 ident
[root@localhost data]# vi postgresql.conf
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

+ listen_addresses = '*' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
#port = 5432 # (change requires restart)
max_connections = 100 # (change requires restart)
#superuser_reserved_connections = 3 # (change requires restart)
#unix_socket_directories = '/var/run/postgresql, /tmp' # comma-separated list of directories
# (change requires restart)
systemctl enable postgresql-11
systemctl start postgresql-11
[root@localhost data]# firewall-cmd --permantent --zone=public --add-port=5432/tcp
[root@localhost data]# firewall-cmd --permanent --zone=public --add-port=5432/tcp
  1. change postgre password
[root@localhost data]# su - postgres
마지막 로그인: 화 7월 16 19:25:36 KST 2019 일시 pts/1
-bash-4.2$ alter user postgres with password 'abcd'