반응형
반응형
반응형

npm : node package manager
nvm : node version manager

###################
# NVM 설치 #########
###################
https://github.com/nvm-sh/nvm#install-script
$ wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash
$ source .bash_profile


###################
# node 설치 ########
###################
$ nvm install node # "node" is an alias for the latest version

# 특정 버전 설치 시.
$ nvm install v12.16.1

# LTS 버전 설치 시.
$ nvm install --lts

# node 버전 확인.
$ node -v
v12.16.1

# 설치된 버전으로 사용.
$ nvm use node

# 특정 버전 사용 설정.
nvm use v12.16.1

# 환경 설정 적용.
$ source .bash_profile

# 설치된 Node.js 정보 조회
$ nvm ls


###################
# npm 업그레이드 #####
###################
# npm으로 npm을 설치.
npm install -g npm

반응형

'프로그래밍 > nodejs' 카테고리의 다른 글

[nodejs] 버전 업데이트  (0) 2021.07.20
package.json 설명 링크.  (0) 2018.09.12
반응형

#############
# nginx 설치 #
#############

## 설치
# yum repo 설정.
$ cat << EOF > /etc/yum.repos.d/nginx.repo
[nginx]
name=Nginx Repository \$basearch - Archive
baseurl=http://nginx.org/packages/centos/\$releasever/\$basearch/
enabled=1
gpgcheck=1
gpgkey=https://nginx.org/keys/nginx_signing.key
EOF

# yum install
$ yum install nginx

# version
$ nginx -v
nginx version: nginx/1.16.1


## 설정
# nginx 환경설정 파일을 수정.
$ vi /etc/nginx/conf.d/default.conf

server {

# 캐릭터셋 변경
    #charset koi8-r;
    charset utf-8;
    
    # root 디렉토리 설정.
    # location / {} 안에 설정한 root 폴더를 밖으로.
    root /var/www;
 
    location / {
        # root 디렉토리 변경
        # root   /usr/share/nginx/html;
        # php 연동할 경우 location root 설정은 제거
        index  index.html index.htm;
    }
 
    location ~ \.php$ {
    # /var/run/php-fpm/www.sock 경로에 파일이 있는지 확인
    fastcgi_pass   unix:/var/run/php-fpm/www.sock;
    fastcgi_index  index.php;

    #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

    include        fastcgi_params;
}
}


## 시작
# 서비스 시작.
$ systemctl start nginx



###############
# php-fpm 설치 #
###############

## 설치
# yum 패키지매니저에 저장소 REMIREPO 설치
$ yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
$ yum install epel-release yum-utils

# remirepo php7.3 활성화
$ yum-config-manager --disable remi-php54
$ yum-config-manager --enable remi-php73

# 설치(설치할때 7.3.X 버전으로 설치하고있는지 주의)
$ yum install php-fpm

# 기타 php 확장라이브러리 설치
yum install php-fpm php-cli php-brotli php-intl php-gd php-gmp php-imap php-bcmath php-interbase php-json php-mbstring php-mysqlnd php-odbc php-opcache php-tidy php-pdo php-pdo-dblib php-pear php-pgsql php-process php-pecl-apcu php-pecl-geoip php-pecl-gmagick php-pecl-hrtime php-pecl-json php-pecl-mongodb php-pecl-rar php-pecl-pq php-pecl-yaml php-pecl-zip

# version
$ php -version
PHP 7.3.15 (cli) (built: Feb 18 2020 09:25:23) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.15, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.15, Copyright (c) 1999-2018, by Zend Technologies


## 시작
# 서비스 시작.
$ systemctl restart php-fpm


## 설정
# php-fpm 설정파일 수정
$ vi /etc/php-fpm.d/www.conf

# php-fpm: fast CGI 모듈
; socket 통신으로 설정
;listen = 127.0.0.1:9000
listen = '/var/run/php-fpm/www.sock'

# 사용자 설정 (웹 데몬 설정)
listen.acl_users = nginx

# 아래를 해두지 않으면 php-fpm 으로 www.sock 이 실행되어도 권한때문에 연결이 되지 않는다.
listen.owner = nginx
listen.group = nginx
listen.mode = 0660

# ?
chdir = /var/www

# catch_workers_output
#  - no : worker 가 출력하는 error log 가 /dev/null 로 가 버리므로 에러가 발생해도 원인을 찾기가 어렵다.
#  - yes : main error log 파일에 worker 의 에러 로그가 같이 남게 된다.
catch_workers_output = yes



## 재시작
# 설정 후 재시작.
systemctl restart php-fpm
systemctl restart nginx


## 추가 설정
# 서비스 자동시작 등록
$ systemctl enable php-fpm
$ systemctl enable nginx

 

반응형

'Server' 카테고리의 다른 글

http header 정보.  (0) 2017.04.12
반응형

spring boot 에서 Log4jdbc 를 사용해 실행된 쿼리 로그 확인.

1. log4jdbc를 dependency에 추가

<!-- log4jdbc -->
<dependency>
    <groupId>org.bgee.log4jdbc-log4j2</groupId>
    <artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
    <version>1.16</version>
</dependency>


2. datasource 설정.
 - spring.datasource.driverClassName 은 모든 DBMS 공통.
 - spring.datasource.url 은 jdbc-db name 사이에 log4jdbc 추가.
spring.datasource.driverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
spring.datasource.url=jdbc:log4jdbc:mysql://localhost:3306/test


3. log4j2 설정 파일 생성.
- 파일 path
resources/log4jdbc.log4j2.properties

 - 파일 내용.
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
log4jdbc.dump.sql.maxlinelength=0
(sql문 최대 출력 라인 수. 0:무제한, 미설정 : 한줄)


4. Logger 추가.

<logger name="jdbc" level="OFF"/>

<!-- SQL문만 로깅, PreparedStatement일 경우 관련된 argument 값으로 대체된 SQL문 출력 -->
<logger name="jdbc.sqlonly" level="OFF"/>

<!-- SQL문과 수행 시간 정보(milliseconds) 포함 -->
<logger name="jdbc.sqltiming" level="DEBUG"/>

<!-- ResultSet을 제외한 모든 JDBC 호출 정보 로깅. JDBC 문제를 추적해야 할 필요가 있는 경우에만 사용 -->
<logger name="jdbc.audit" level="OFF"/>

<!-- ResultSet을 포함한 모든 JDBC 호출 정보 로깅. 로그양이 많음 -->
<logger name="jdbc.resultset" level="OFF"/>

<!-- SQL 결과를 table 형태로 로깅 -->
<logger name="jdbc.resultsettable" level="DEBUG"/>

<!-- Connection의 연결과 종료에 관련된 로깅. 메모리 누수 확인? -->
<logger name="jdbc.connection" level="OFF"/>

 

※ Altibase  DB 에 적용 시.
VM옵션 추가 
   -Dlog4jdbc.drivers=Altibase.jdbc.driver.AltibaseDriver

 

반응형

'프로그래밍 > Java' 카테고리의 다른 글

Too many open files  (2) 2021.06.14
환경변수 값 읽어오기.  (0) 2021.04.05
Rabbit MQ 간단 사용.  (0) 2018.12.21
singleton 객체.  (0) 2018.12.06
openfire(xmpp) client  (0) 2018.11.06
반응형

프로세스의 쓰레드 갯수 확인.

 

$ ps -Lf -p [PID]

LWP : 쓰레드 ID

NLWP : 프로세스에서 동작하는 프로세스 갯수.

 

$ ps -Lf -p 1528

UID        PID  PPID   LWP  C NLWP STIME TTY          TIME CMD
test     1528     1  1528  0   79 Oct23 ?        00:00:00 /usr/bin/java -jar ..
test     1528     1  1529  0   79 Oct23 ?        00:00:38 /usr/bin/java -jar ..
test     1528     1  1530  0   79 Oct23 ?        00:00:03 /usr/bin/java -jar ..
test     1528     1  1531  0   79 Oct23 ?        00:00:03 /usr/bin/java -jar ..
test     1528     1  1532  0   79 Oct23 ?        00:00:03 /usr/bin/java -jar ..
test     1528     1  1533  0   79 Oct23 ?        00:00:03 /usr/bin/java -jar ..
test     1528     1  1542  0   79 Oct23 ?        00:00:00 /usr/bin/java -jar ..

.....

 

반응형

'OS > Linux' 카테고리의 다른 글

CentOS 7 에서 PHP7.4 설치하기.  (1) 2021.06.28
[linux] 디스크 읽기/쓰기 속도  (0) 2021.06.14
rpm 사용법  (0) 2019.05.09
[링크] 파일 권한  (0) 2019.05.09
tcpdump  (2) 2019.02.11
반응형

 

-- 컬림 추가.

ALTER TABLE TEST_TB ADD COLUMN (update_time date);

 

-- 데이터 타입 변경.

ALTER TABLE TEST_TB MODIFY COLUMN (update_time varchar(10) NOT NULL);

 

-- default 설정 추가.

ALTER TABLE TEST_TB ALTER (update_time SET DEFAULT '1');

 

-- default 설정 삭제.

ALTER TABLE TEST_TB ALTER (update_time DROP DEFAULT);

 

-- 컬럼 이름 변경.

ALTER TABLE TEST_TB RENAME COLUMN update_time TO test_var;

 

-- 컬럼 삭제.

ALTER TABLE TEST_TB DROP COLUMN test_var;

 

반응형
반응형

Request 샘플.

 

 

POST /upload HTTP/1.1
content-type: multipart/form-data; boundary=--------------------------968146443668612378265595
content-length: 201783

----------------------------968146443668612378265595
Content-Disposition: form-data; name="upload_file"; filename="test.png"
Content-Type: image/png

[Binary Data]
----------------------------968146443668612378265595
Content-Disposition: form-data; name="userName"

myName
----------------------------968146443668612378265595
Content-Disposition: form-data; name="userAge"

25
----------------------------968146443668612378265595--

 

반응형

'프로그래밍 > Html' 카테고리의 다른 글

찾아보기 버튼 바꾸기  (0) 2016.08.05
simple table (아래 글의 css 적용)  (0) 2015.10.30
simple table css  (0) 2015.10.30
모바일웹에서 app 설치 확인  (0) 2014.03.24
모바일 웹  (0) 2014.03.24
반응형

rpm 설치 확인.
옵션)
 -q : 질의시에 꼭 써야하는 옵션이다. 패키지를 찾으면 패키지이름과 버전만 표시한다.
 -i : 설치된 패키지의 정보를 보여준다. -p옵션과 사용하면 패키지 파일정보를 보여준다.
 -l : 패키지에 포함된 모든 파일을 보여준다. -p옵션과 함께 사용 가능. (--list)
 -p 파일명: 패키지의 파일에 대한 정보를 보여준다. 정확한 이름을 입력해야 한다.
 -a : 시스템에 설치된 모든 패키지목록을 보여준다. (--all)
 -f 파일명: 지정된 파일이 포함된 패키지를 출력한다.
 -c : 해당패키지의 설정파일이나 스크립트파일을 보여준다.
 -d : 해당패키지의 문서파일을 출력한다.
 -R : 어떤 패키지에 의존하고 있는지를 보여준다. (--requires)

예제)
# 설치된 패키지이름과 버전을 보여준다.
$ rpm -q mysql-community-server

# 패키지의 많은 정보를 보여준다.
$ rpm -qi mysql-community-server

# 현재 설치된 모든 패키지를 보여준다.
$ rpm -qa | grep mysql

# 설치되어 있는 경로를 보여준다.
$ rpm -ql mysql-community-server

# 파일을 사용하는(관련된) 패키지를 보여준다.
$ rpm -qf /etc/my.cnf

# 관련 문서파일을 보여준다.
$ rpm -qd mysql-community-server

# 의존하고 있는 패키지를 보여준다.
$ rpm -qR mysql-community-server

# 패키지가 설치되는 파일들을 보여준다.(정확한 파일 명을 적어야 한다.)
$ rpm -qlp /root/rpm/mysql/mysql-community-server-5.7.13-1.el7.x86_64.rpm



rpm 설치.
옵션)
 -i : 새로운 패키지를 설치할 때 사용한다.
 -U : 기존의 패키지를 새로운 버전의 패키지로 업그레이드할 때 사용하고 설치된 패키지가 없을 경우 패키지를 설치를 한다.
 -F : 이전 버전이 설치되어 있는 경우에만 설치한다.(--freshen)
 -v : 메시지를 자세히 보여준다.
 -h : '#'기호로 표시해 준다.
 --force : 기존에 설치된 패키지와 관계없이 강제로 설치 한다. 
 --nodeps : 의존성 관계를 무시하고 설치 한다.
 -vv : 메시지를 아주 자세히 보여준다.
 --oldpackage : 구버전으로 다운그레이드할 때 사용한다.
 --rebuilddb : 특정한 패키지 설치후에 rpm패키지로 검색했으나 나타나지 않을 때 rpm 데이터베이스를 업데이트한다.


예제)
# 새로운 패키지 설치
$ rpm -ivh mysql-community-server-5.7.13-1.el7.x86_64.rpm

# 업그레이드하거나 새로운 패키지 설치
$ rpm -Uvh mysql-community-server-5.7.13-1.el7.x86_64.rpm

# 이전 버전의 패키지가 있는 경우에만 패키지 설치
$ rpm -Fvh mysql-community-server-5.7.13-1.el7.x86_64.rpm



rpm 삭제.
옵션)
  -e : 설치된 패키지를 제거한다.
  --nodeps : 제거시 의존성을 무시한다.

예제)
# sendmail-devel-8.11.6-27.73 라는 rpm 패키지를 삭제 한다.
$ rpm -e sendmail-devel-8.11.6-27.73 

# 삭제시 의존성 에러 메세지로 삭제가 안될 경우 --nodeps를 붙이면 강제로 삭제를 하는데 주의를 요한다.
# 패키지에 의존성이 있더라도 무조건 제거한다.
$ rpm -e sendmail-devel-8.11.6-27.73 --nodeps



rpm 패키지 검사
 - 설치된 패키지 파일들을 검증한다. 보통 보안상 침입자에 의해 실행파일들이 권한획득을  위해 변조되는 경우가 있는데 이러한것을 찾아낼 때 유용하다.

옵션)
    -V : verify의 약자로 검증할때 쓰는 기본 옵션이다.
    -a : 모든 패키지를 검사한다.

예제)
# 패키지를 검사
$ rpm -V mysql-community-server
S.5....T.  c /etc/my.cnf

모든 패키지를 검사한다.
$ rpm -Va


RPM 검증코드)
 - 5 : MD5체크섬을 변경
 - S : 파일의크기를 변경
 - L : 심볼릭 링크를 변경
 - T : 파일의 수정일을 변경
 - D : 장치파일을 변경
 - U : 파일사용자/소유자가 변경
 - G : 파일 그룹이 변경
 - M : 파일모드(권한과 파일형태)가 변경
 - ? : 원인을 알 수 없거나 예측하지 못한 결과인 경우

반응형

'OS > Linux' 카테고리의 다른 글

[linux] 디스크 읽기/쓰기 속도  (0) 2021.06.14
프로세스 thread 갯수 확인  (0) 2019.10.31
[링크] 파일 권한  (0) 2019.05.09
tcpdump  (2) 2019.02.11
crontab  (0) 2018.09.12
반응형
반응형

'OS > Linux' 카테고리의 다른 글

프로세스 thread 갯수 확인  (0) 2019.10.31
rpm 사용법  (0) 2019.05.09
tcpdump  (2) 2019.02.11
crontab  (0) 2018.09.12
CentOS 버전 정보 확인.  (0) 2018.07.31
반응형


사용법.

tcpdump [options] [expression]


예제)

$ sudo tcpdump -v -n -i eth0 "udp and dst host 127.0.0.1 and dst portrange 10000-20000"


[options]

-v : 좀 더 많은 정보 출력.

-n : 주소를 번역하지 않음.

-i [interface] : 특정 interface 의 패킷 캡쳐.

-w [file name] : 패킷 저장 파일.

-s [length]: 패킷들로부터 추출하는 샘플을 default값인 68 byte외의 값으로 설정.


[expression]

프로토콜 : tcp | udp | .....

방향 : src | dst

타입 : host | port(portrange) | net

연산 : and | or | not


src port (O)

dst host (O)

udp dst port (O)

udp dst host (X)




반응형

'OS > Linux' 카테고리의 다른 글

rpm 사용법  (0) 2019.05.09
[링크] 파일 권한  (0) 2019.05.09
crontab  (0) 2018.09.12
CentOS 버전 정보 확인.  (0) 2018.07.31
쉘 스크립트(shell script) - 예제.  (0) 2016.02.22
반응형



// "guest"/"guest" by default, limited to localhost connections

ConnectionFactory factory = new ConnectionFactory();


factory.setHost("localhost");

factory.setPort(5672);

factory.setVirtualHost("/");

factory.setUsername("name");

factory.setPassword("pw");


//factory.setUri("amqp://name:pw@localhost:5672");


Connection conn = factory.newConnection();

Channel channel = conn.createChannel();


// autoDelete(true) : exchange 를 사용하는 곳이 없으면 삭제. durable 속성과는 상관없음.

// durable : 브로커 재시작 후에도 큐의 상태를 유지 여부.

//channel.exchangeDeclare("aiif.test", "direct", false/*durable*/, false/*autoDelete*/, null);




// exclusive

// connection close 되면 큐 삭제 됨.

// durable, autoDelete 속성과는 상관없음.

//channel.queueDeclare("ExclusiveQueue", false/*durable*/, true/*exclusive*/, false/*autoDelete*/, null);


// auto delete

// queue 에 consuming 하는 client 가 없으면 삭제.

// 일단 queue 를 생성 후 consuming 하는 client 가 있다가 없어진 경우에 삭제됨.

channel.queueDeclare("AutoDeleteQueue", false, false, false, null);


//channel.queueBind("AutoDeleteQueue", "aiif.test", "AutoDeleteQueue");


//DefaultConsumer consumer = new DefaultConsumer(channel);

final boolean autoAck = true;

String tag = channel.basicConsume("AutoDeleteQueue", autoAck/*auto ack*/, new DefaultConsumer(channel) {


        @Override

        public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {

                String message;

                if (body == null) {

                        message = "";

                        System.out.println("body null");

                } else {

                        message = new String(body);

                        System.out.println("message : " + message);

                }

                Map<String, Object> h = properties.getHeaders();

                System.out.println(h);


                String routingKey = envelope.getRoutingKey();

                String contentType = properties.getContentType();

                long deliveryTag = envelope.getDeliveryTag();

                System.out.println("routingKey : " + routingKey);

                System.out.println("contentType : " + contentType);

                System.out.println("deliveryTag : " + deliveryTag);



                MQMessage mqMessage = MQMessageMaker.make(message);

                System.out.println(mqMessage.toString());


                MQMessageBodyHB mqMessageBodyHB = (MQMessageBodyHB)mqMessage.getBody();

                System.out.println(mqMessageBodyHB.getLoad_level());

                System.out.println(mqMessageBodyHB.getAiif_id());


                if(!autoAck) {

                        channel.basicAck(deliveryTag, false/*multiple*/);

                }

        }

});


System.out.println("subscribe queue : AutoDeleteQueue");

//Thread.sleep(10000);


channel.basicCancel(tag);

System.out.println("unsubscribe queue : AutoDeleteQueue");

Thread.sleep(10000);


channel.queueDelete("AutoDeleteQueue");

System.out.println("delete queue : AutoDeleteQueue");

Thread.sleep(10000);


channel.close();

System.out.println("channel close");

Thread.sleep(10000);


conn.close();

System.out.println("connection close");



반응형

'프로그래밍 > Java' 카테고리의 다른 글

환경변수 값 읽어오기.  (0) 2021.04.05
[Spring Boot] log4jdbc 설정.  (1) 2020.01.16
singleton 객체.  (0) 2018.12.06
openfire(xmpp) client  (0) 2018.11.06
openfire 플러그인 개발.  (0) 2018.11.06

+ Recent posts