install Oracle 11g on CentOS7

[21.02.02 수정] CentOS 7에 Oracle 11g 설치 완벽정리!

– 사전준비

Oracle 11g 파일을 준비합니다.

https://www.oracle.com/database/technologies/oracle-database-software-downloads.html

Database Software Downloads | Oracle

Oracle Database 11g Release 2 Standard Edition, Standard Edition One, and Enterprise Edition 7/13: Patch Set 11.2.0.4 for Linux and Solaris is now available on support.oracle.com. Note: it is a full installation (you do not need to download 11.2.0.1 first)

www.oracle.com

들어갈때마다 페이지 구성이 바뀌는 오라클 홈페이지에서 Oracle Database 11g Release 2 중 Linux x86-64(64비트) 혹은 Linux-x86(32비트)를 다운로드 받습니다.

File1, File2 모두 다운받아주세여

 

소유한 리눅스의 비트를 확인하는 명령어는 다음과 같습니다.

[root@localhost ~]# getconf LONG_BIT

– 설치 시작

1. 의존 라이브러리 설치

root 계정으로 설치합니다.

yum -y install compat-libstdc++-33.x86_64 binutils elfutils-libelf elfutils-libelf-devel
yum -y install glibc glibc-common glibc-devel glibc-headers gcc gcc-c++ libaio-devel
yum -y install libaio libgcc libstdc++ libstdc++ make sysstat unixODBC unixODBC-devel
yum -y install unzip
yum -y install compat-libstdc++-33.x86_64 binutils elfutils-libelf elfutils-libelf-devel

마지막에 Complete! 문구가 출력됐는지 확인합니당.

(Nothing to do 라고 출력이 되면 이미 최신버전으로 다운로드가 되어있는것을 의미합니다.)

** 21.02.02 추가 **

[ 오류 내용 ]
위의 명령어를 실행할때 다음과 같은 오류가 발생할 경우가 있습니다.

YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
Eg. Invalid release/repo/arch combination/
removing mirrorlist with no valid mirrors: /var/cache/yum/x86_64/6/base/mirrorlist.txt
Error: Cannot find a valid baseurl for repo: base
 
YumRepo Error: All mirror URLs are not using ftp, http[s] or file. Eg. Invalid release/repo/arch combination/removing mirrorlist with no valid mirrors: /var/cache/yum/i386/6/base/mirrorlist.txt
Error: Cannot find a valid baseurl for repo: base

CentOS6 버전 업데이트 지원이 종료되면서 yum update 등 명령어 사용 시 발생합니다.
이때, 해결방법을 알려드리겠습니다.
32bit, 64bit 에 따라 명령어가 다르니 getconf LONG_BIT명령어를 통해 리눅스의 비트를 확인해주세여!

[ 해결방법 ]
// 32bit
[root@localhost ~]# echo “https://vault.centos.org/6.10/os/i386/” > /var/cache/yum/i386/6/base/mirrorlist.txt
[root@localhost ~]#  echo “http://vault.centos.org/6.10/extras/i386/” > /var/cache/yum/i386/6/extras/mirrorlist.txt
[root@localhost ~]# echo “http://vault.centos.org/6.10/updates/i386/” > /var/cache/yum/i386/6/updates/mirrorlist.txt

// 64bit
[root@localhost ~]# echo “https://vault.centos.org/6.10/os/x86_64/” > /var/cache/yum/x86_64/6/base/mirrorlist.txt
[root@localhost ~]# echo “http://vault.centos.org/6.10/extras/x86_64/” > /var/cache/yum/x86_64/6/extras/mirrorlist.txt
[root@localhost ~]# echo “http://vault.centos.org/6.10/updates/x86_64/” > /var/cache/yum/x86_64/6/updates/mirrorlist.txt

명령어 입력 후, 다음 명령어 실행해주세염
[root@localhost ~]# yum update

참고로 열라 오래걸리더라고여…
update가 모두 끝나면 에러났던 위의 yum install 설치 명령어들 다시 입력하면 잘 설치됩니다!

2. 파라미터 및 유저 리소스 설정

1) 커널 파라미터 값을 설정합니다.

[root@localhost ~]# vi /etc/sysctl.conf

다음과 같은 값을 추가합니다.

# Controls the maximum shared segment size, in bytes
kernel.shmmax = 68719476736

# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 10523004
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128

fs.aio-max-nr = 1048576
fs.file-max = 6815744

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586

변경 후 커널 파라미터 값을 적용시킵니다.

[root@localhost ~]# /sbin/sysctl -p

2) 유저의 자원 사용 제한값을 설정합니다.

[root@localhost ~]# vi /etc/security/limits.conf

해당 파일 맨 밑에 추가해주세염

oracle soft nproc 2048
oracle hard nproc 65536
oracle soft nofile 1024
oracle hard nofile 65536

3) SELINUX 설정을 해제합니다.

[root@localhost ~]# vi /etc/selinux/config

다음과 같이 변경합니다.

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing – SELinux security policy is enforced.
#     permissive – SELinux prints warnings instead of enforcing.
#     disabled – No SELinux policy is loaded.
SELINUX=disabled

3. 유저 생성, 환경변수 설정, 권한 설정

오라클을 사용할 유저를 생성하고 패스워드를 설정합니다.

[root@localhost ~]# groupadd dba
[root@localhost ~]# useradd -g dba oracle
[root@localhost ~]# passwd oracle

오라클을 설치할 디렉터리를 생성하고 위에서 만든 oracle 계정에 권한을 부여합니다.

[root@localhost ~]# mkdir -p /app/oracle
[root@localhost ~]# chown -R oracle:dba /app
[root@localhost ~]# chmod -R 775 /app

oracle 계정으로 접속하여 변수를 저장합니다.

[root@localhost ~]# su – oracle
[oracle@localhost ~]$ vi .bash_profile

export ORACLE_BASE=/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
export PATH=$PATH:$ORACLE_HOME/bin

# alias
alias ss=’sqlplus / as sysdba’

4. ORACLE 설치하기

FileZilla나 MobaXterm을 이용해서 로컬 컴퓨터에서 다운받은 오라클 파일을 리눅스 서버로 쉽게 옮길수 있지만

모르시는 분들은 밑에 더보기 란을 참고해서 명령 프롬프트(cmd)를 이용해 파일을 옮겨주세염

 

 

다운로드 받은 설치파일의 압축을 해제합니다.

[oracle@localhost ~]$ unzip linux.x64_11gR2_database_1of2.zip
[oracle@localhost ~]$ unzip linux.x64_11gR2_database_2of2.zip

압축 해제한 뒤 설치 디렉터리에서 실행합니다.

[oracle@localhost ~]$ su – root
암호 :
[root@localhost ~]# xhost +
[root@localhost ~]# su – oracle
[oracle@localhost ~]$ cd database
[oracle@localhost database]$ ./runInstaller

※ xhost + 했을 때 command not found 또는 unable to open display “” 뜨시는 분들은

[root@localhost ~]# yum install xorg*
[root@localhost ~]# export DISPLAY=localhost:0.0
[root@localhost ~]# su – oracle
[oracle@localhost ~]$ export DISPLAY=localhost:0.0
[oracle@localhost ~]$ cd database
[oracle@localhost database]$ ./runInstaller

>>>> Could not execute auto check for display colors using command /usr/bin/xdpyinfo. Check if the DISPLAY variable is set. Failed <<<<
에러가 날 경우 켜져있는 리눅스 서버를 모두 종료하고 다시 실행해주세요

[oracle@localhost ~]$ cd database
[oracle@localhost database]$ ./runInstaller

위에처럼 한글이 깨지면 밑에 사진을 참고해서 우선 종료해줍니다.

영어 설정하고 다시 실행 해줄게여

[oracle@localhost database]$ export LANG=C
[oracle@localhost database]$ export LC_ALL=C
[oracle@localhost database]$ ./runInstaller

체크 해제하고 Next (뭐라 창 뜨면 걍 yes하고 넘겨도됩니다)

데이터베이스 소프트웨어만 설치하는것으로 설정하고 Next

Single instance 웅앵웅 체크 Next

항구거 추가 후 ㄴㅅㅌ

Enterprise Edition 선택 후 ㄴㅅㅌ

아까 위에서 ORACLE_HOME 변수 선언해줬쥬? 경로값 확인 후 ㄴㅅㅌ

이것도 아까 위에서 유저 생성할대 부여한 Group과 Inventory 경로 확인 후 ㄴㅅㅌ

그룹명 확인 후 ㄴㅅㅌ

 

Ignore All 체크 후 ㄴㅅㅌ

최종 설정 값 확인 후 Finish

아래와 같이 설치가 잘 되다가

84% 쯤에 아래와 같은 에러가 발생하길래

설치중인 창을 끄지말고 새로 창을 열어서 oracle 계정을 로그인하고 저기 경로로 갑니다.

[oracle@localhost ~]$ cd /app/product/11.2.0/dbhome_1/ctx/lib
[oracle@localhost lib]$ vi ins_ctx.mk

아래와 같은 구문을 찾습니다.

ctxhx: $(CTXHXOBJ)
$(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)

아래와 같이 수정하고 저장합니다.

ctxhx: $(CTXHXOBJ)
-static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)

Retry 버튼을 선택해서 재시도합니다.

 

잘되다가 또 다른 에러가 발생하네염

또 저기 경로로 가서 파일을 수정해줍니다.

[oracle@localhost ~]$ cd /app/product/11.2.0/dbhome_1/sysman/lib
[oracle@localhost lib]$ vi ins_emagent.mk

아래와 같은 구문을 찾아서

$(SYSMANBIN) emdctl:
$(MK_EMAGENT_NMECTL)

아래와 같이 수정하고 저장합니다.

$(SYSMANBIN) emdctl:
$(MK_EMAGENT_NMECTL) -lnnz11

Retry 버튼을 선택해서 재시도합니다. 잘되는군염

 

완료될때쯤 쉘 스크립트 실행하라는 안내창이 뜹니다.

하라는대로 따라하면됩니다. 새 창을 열어서 root 계정으로 실행해줍니다.

[root@localhost ~]# /usr/oracle/oraInventory/orainstRoot.sh
Changing permissions of /app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /app/oraInventory to dba.
The execution of the script is complete.
[root@localhost ~]# /usr/oracle/app/product/11.2.0/dbhome_1/root.sh
Running Oracle 11g root.sh script…

The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME=  /app/oracle/product/11.2.0/dbhome_1

Enter the full pathname of the local bin directory: [/usr/local/bin]: [ENTER]키 누르세용
Copying dbhome to /usr/local/bin …
Copying oraenv to /usr/local/bin …
Copying coraenv to /usr/local/bin …

Creating /etc/oratab file…
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
Finished product-specific root actions.

설치가 완료되면 창을 종료하고 환경변수를 적용합니다.

[oracle@localhost database]$ source ~/.bash_profile

5. 리스너 생성

다음 명령어로 리스너를 생성합니다.

[oracle@localhost database]$ netca

※ netca command not found 웅앵웅 에러 뜰 경우 다음과 같은 명령어를 실행하세염

위에서 환경변수가 적용이 안되었거나 오라클이 설치된 path가 잘못될 경우 나타납니다.

[oracle@localhost ~]$ cd /app/oracle/product/11.2.0/dbhome_1/bin
[oracle@localhost ~]$ ./netca

Listener configuration 체크 후 Next

최초 구성이므로 Add 선택 후 Next

아묻따 Next

확인 후 넥스트

오라클 기본포트 1521 확인 후 넥스트

다른 리스터 추가 할거니? 아니 > 넥스트

끝났당 ㄴㅅㅌ

Finish 선택해서 창 종료

6. 데이터베이스 생성

다음 명령어로 데이터베이스를 생성합니다.

[oracle@localhost ~]$ dbca

생성시작 Next

Create a Database 선택하고 Next

웅웅 알겠어염 확인하구 Next

ORACLE SID를 orcl로 설정하고 넥스트

(SID를 orcl 말고 다른걸로 변경하고 싶으면 .bash_profile의 ORACLE_SID 변수 값도 변경해주어야해여)

고대로 넥스트

관리자 전체 계정에 동일 패스워드를 사용한다는 옵션 체크 후 패스워드 설정

(까먹으면 귀찮아지니까 쉬운걸로 설정하세염)

패스워드를 단순하게 설정하면 뜨는 확인창임다 Yes를 선택해서 무시하고 넘어가시져

넥스트

ㄴㅅㅌ

ㄴㅅㅌ

서버 메모리 사양에 따라 설정된 값임다 그대로 설정하고 [Sizing] 탭을 선택해주세여

확인하고 [Character Sets] 탭 선택하세여

UTF-8이랑 항구거로 설정하고 [Connection Mode] 선택

기본 설정값 고대로 ㄴㅅㅌ

설정된 값 확인하고 ㄴㅅㅌ

피니쉬

마지막으로 설치 전에 확인하고 OK

아래와 같이 설치됩니다

(나만그런가 설치 열라느림)

아래와 같은 창 뜨면 설치 완료된겁니다.

 

ㅎㅏ,, 이제 모두 설치 완료가 됐습니다.

이제 실행하는 것만 남았군여,,,

7. 데이터베이스 및 리스너 실행

아까 위에서 .bash_profile에 alias로 sysdba로 접속하는 별칭을 주었기 때문에 아래와 같은 명령어로 접속합니다.

[oracle@localhost ~]$ ss

SQL*Plus: Release 11.2.0.1.0 Production on Fri Jan 31 13:56:58 2020

Copyright (c) 1982, 2009, Oracle. All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> startup
ORA-01081: cannot start already-running ORACLE – shut it down first
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area   768294912 bytes
Fixed Size                       2217304 bytes
Variable Size                   486541992 bytes
Database Buffers              276824064 bytes
Redo Buffers                   2711552 bytes
Database mounted.
Database opened.
SQL > exit

리스너 기동 상태를 확인합니다.

[oracle@localhost ~]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.1.0 – Production on 31-JAN-2020 14:01:07

Copyright (c) 1991, 2009, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xx.xx.xx.xx)(PORT=1521)))
STATUS of the LISTENER
————————
Alias                                  LISTENER
Version                              TNSLSNR for Linux: Version 11.2.0.1.0 – Production
Start Date                           30-JAN-2020 17:28:30
Uptime                               0 days 20 hr. 32 min. 36 sec
Trace Level                          off
Security                              ON: Local OS Authentication
SNMP                                OFF
Listener Parameter File          /app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File                  /app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
Listening Endpoints Summary…
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xx.xx.xx.xx)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary…
Service “orcl” has 1 instance(s).
Instance “orcl”, status UNKNOWN, has 1 handler(s) for this service…
The command completed successfully

리스너는 lsnrctl start 또는 lsnrctl stop 명령어를 이용해서 끄고 켜고를 할 수 있습니다.

8. 데이터베이스 계정 생성

이제 데이터베이스에 계정을 생성해서 SQLDeveloper에 붙어볼겁니다.

 

저는 제 티스토리 주소인 xxsiyoung 이름으로 계정을 만들고 권한까지 줘보겠슴다.

참고로 저는 귀찮아서 계정 아디랑 비번을 똑같이 만들어요

밑에 명령어중에 identified by 뒤에는 비밀번호를 설정하는 겁니다.

권한은 데이터베이스 사용하는데 필요한 권한은 다 줬어요

자세한 권한 설명은 구글링 하시기 바랍니다,,

[oracle@localhost ~]# ss

SQL> CREATE USER xxsiyoung identified by xxsiyoung;

User created.

SQL> GRANT resource, connect, dba to xxsiyoung;

Grant succeeded.

다음과 같은 명령어로 생성한 계정이 잘 만들어졌는지 확인해주세여

SQL> SELECT * FROM ALL_USERS;

9. SQLDeveloper에 연결하기 (외부접속하기)

이제 생성을 했으면 사용하기 쉽게 SQLDeveloper에 연결할겁니다.

$ORACLE_HOME/network/admin 폴더에 있는 listener.ora 파일과 tnsnames.ora 파일을 수정해주어야 합니다.

우선 여러분의 .ora 파일들은 백업해주시고 제 파일을 참고해주세욤

 

listener.ora 파일

(여러분 서버 ip를 xx.xx.xx.xx 자리에 넣어주세여)

SID_LIST_LISTENER =
   (SID_LIST =
     (SID_DESC =
       (SID_NAME = orcl)
       (ORACLE_HOME = /app/oracle/product/11.2.0/dbhome_1)
     )
   )

LISTENER =
   (DESCRIPTION_LIST =
     (DESCRIPTION =
       (ADDRESS = (PROTOCOL = TCP)(HOST = xx.xx.xx.xx)(PORT = 1521))
       (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
     )
   )

ADR_BASE_LISTENER = /app/oracle

 

tnsnames.ora 파일

(여러분 서버 ip를 xx.xx.xx.xx 자리에 넣어주세여)

LISTENER_ORCL =
   (ADDRESS = (PROTOCOL = TCP)(HOST = xx.xx.xx.xx)(PORT = 1521))

ORACLR_CONNECTION_DATA =
    (DESCRIPTION =
        (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
        )
        (CONNECT_DATA =
           (SID = CLRExtProc)
           (PRESENTATION = RO)
        )
    )

ORCL =
    (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = xx.xx.xx.xx)(PORT = 1521))
        (CONNECT_DATA =
            (SERVER = DEDICATED)
            (SERVICE_NAME = orcl)
        )
    )

저장하고 리스너를 껐다가 다시 켭니다.

[oracle@localhost admin]$ lsnrctl stop
[oracle@localhost admin]$ lsnrctl start

 

이제 SQLDeveloper를 실행해서 새 접속을 합니다.

[테스트] 버튼을 눌러서 [성공] 이 바로 뜨면 좋겠지만,,

만약에 다음과 같은 에러가 난다,,?

접속에러가 난겁니다,, 한번 해결해봅시다 ㅠ

 

1) 방화벽을 엽니다

[root@localhost ~]# firewall-cmd –permanent –zone=public –add-port=1521/tcp
success

SQLDeveloper에서 테스트를 해봅니다. 그래도 에러가 나면,, ↓↓↓

 

2) 리스너 종료- 디비 종료 – 디비 연결 – 리스너 연결 – 리스너 동작확인 – sqlplus로 붙고 – SQLDeveloper에 연결

[oracle@localhost ~]$ lsnrctl stop
[oracle@localhost ~]$ lsnrctl start
[oracle@localhost ~]$ sqlplus /nolog

SQL> conn /as sysdba
SQL> shutdown immediate

SQL> startup

SQL> exit
[oracle@localhost ~]$ lsnrctl stop
[oracle@localhost ~]$ lsnrctl start
[oracle@localhost ~]$ lsnrctl status

SQLDeveloper에서 테스트를 해봅니다. 저는 이케 하니까 되더라구여 오예~

 

Installing Oracle 11g in CentOS 7

– 사전준비

Oracle 11g 파일을 준비합니다.

https://www.oracle.com/database/technologies/oracle-database-software-downloads.html

Database Software Downloads | Oracle

Oracle Database 11g Release 2 Standard Edition, Standard Edition One, and Enterprise Edition 7/13: Patch Set 11.2.0.4 for Linux and Solaris is now available on support.oracle.com. Note: it is a full installation (you do not need to download 11.2.0.1 first)

www.oracle.com

들어갈때마다 페이지 구성이 바뀌는 오라클 홈페이지에서 Oracle Database 11g Release 2 중 Linux x86-64(64비트) 혹은 Linux-x86(32비트)를 다운로드 받습니다.

File1, File2 모두 다운받아주세여

 

소유한 리눅스의 비트를 확인하는 명령어는 다음과 같습니다.

[root@localhost ~]# getconf LONG_BIT

– 설치 시작

1. 의존 라이브러리 설치

root 계정으로 설치합니다.

yum -y install compat-libstdc++-33.x86_64 binutils elfutils-libelf elfutils-libelf-devel
yum -y install glibc glibc-common glibc-devel glibc-headers gcc gcc-c++ libaio-devel
yum -y install libaio libgcc libstdc++ libstdc++ make sysstat unixODBC unixODBC-devel
yum -y install unzip
yum -y install compat-libstdc++-33.x86_64 binutils elfutils-libelf elfutils-libelf-devel

마지막에 Complete! 문구가 출력됐는지 확인합니당.

(Nothing to do 라고 출력이 되면 이미 최신버전으로 다운로드가 되어있는것을 의미합니다.)

** 21.02.02 추가 **

[ 오류 내용 ]
위의 명령어를 실행할때 다음과 같은 오류가 발생할 경우가 있습니다.

YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
Eg. Invalid release/repo/arch combination/
removing mirrorlist with no valid mirrors: /var/cache/yum/x86_64/6/base/mirrorlist.txt
Error: Cannot find a valid baseurl for repo: base
 
YumRepo Error: All mirror URLs are not using ftp, http[s] or file. Eg. Invalid release/repo/arch combination/removing mirrorlist with no valid mirrors: /var/cache/yum/i386/6/base/mirrorlist.txt
Error: Cannot find a valid baseurl for repo: base

CentOS6 버전 업데이트 지원이 종료되면서 yum update 등 명령어 사용 시 발생합니다.
이때, 해결방법을 알려드리겠습니다.
32bit, 64bit 에 따라 명령어가 다르니 getconf LONG_BIT명령어를 통해 리눅스의 비트를 확인해주세여!

[ 해결방법 ]
// 32bit
[root@localhost ~]# echo “https://vault.centos.org/6.10/os/i386/” > /var/cache/yum/i386/6/base/mirrorlist.txt
[root@localhost ~]#  echo “http://vault.centos.org/6.10/extras/i386/” > /var/cache/yum/i386/6/extras/mirrorlist.txt
[root@localhost ~]# echo “http://vault.centos.org/6.10/updates/i386/” > /var/cache/yum/i386/6/updates/mirrorlist.txt

// 64bit
[root@localhost ~]# echo “https://vault.centos.org/6.10/os/x86_64/” > /var/cache/yum/x86_64/6/base/mirrorlist.txt
[root@localhost ~]# echo “http://vault.centos.org/6.10/extras/x86_64/” > /var/cache/yum/x86_64/6/extras/mirrorlist.txt
[root@localhost ~]# echo “http://vault.centos.org/6.10/updates/x86_64/” > /var/cache/yum/x86_64/6/updates/mirrorlist.txt

명령어 입력 후, 다음 명령어 실행해주세염
[root@localhost ~]# yum update

참고로 열라 오래걸리더라고여…
update가 모두 끝나면 에러났던 위의 yum install 설치 명령어들 다시 입력하면 잘 설치됩니다!

2. 파라미터 및 유저 리소스 설정

1) 커널 파라미터 값을 설정합니다.

[root@localhost ~]# vi /etc/sysctl.conf

다음과 같은 값을 추가합니다.

# Controls the maximum shared segment size, in bytes
kernel.shmmax = 68719476736

# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 10523004
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128

fs.aio-max-nr = 1048576
fs.file-max = 6815744

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586

변경 후 커널 파라미터 값을 적용시킵니다.

[root@localhost ~]# /sbin/sysctl -p

2) 유저의 자원 사용 제한값을 설정합니다.

[root@localhost ~]# vi /etc/security/limits.conf

해당 파일 맨 밑에 추가해주세염

oracle soft nproc 2048
oracle hard nproc 65536
oracle soft nofile 1024
oracle hard nofile 65536

3) SELINUX 설정을 해제합니다.

[root@localhost ~]# vi /etc/selinux/config

다음과 같이 변경합니다.

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing – SELinux security policy is enforced.
#     permissive – SELinux prints warnings instead of enforcing.
#     disabled – No SELinux policy is loaded.
SELINUX=disabled

3. 유저 생성, 환경변수 설정, 권한 설정

오라클을 사용할 유저를 생성하고 패스워드를 설정합니다.

[root@localhost ~]# groupadd dba
[root@localhost ~]# useradd -g dba oracle
[root@localhost ~]# passwd oracle

오라클을 설치할 디렉터리를 생성하고 위에서 만든 oracle 계정에 권한을 부여합니다.

[root@localhost ~]# mkdir -p /app/oracle
[root@localhost ~]# chown -R oracle:dba /app
[root@localhost ~]# chmod -R 775 /app

oracle 계정으로 접속하여 변수를 저장합니다.

[root@localhost ~]# su – oracle
[oracle@localhost ~]$ vi .bash_profile

export ORACLE_BASE=/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
export PATH=$PATH:$ORACLE_HOME/bin

# alias
alias ss=’sqlplus / as sysdba’

4. ORACLE 설치하기

FileZilla나 MobaXterm을 이용해서 로컬 컴퓨터에서 다운받은 오라클 파일을 리눅스 서버로 쉽게 옮길수 있지만

모르시는 분들은 밑에 더보기 란을 참고해서 명령 프롬프트(cmd)를 이용해 파일을 옮겨주세염

 

 

다운로드 받은 설치파일의 압축을 해제합니다.

[oracle@localhost ~]$ unzip linux.x64_11gR2_database_1of2.zip
[oracle@localhost ~]$ unzip linux.x64_11gR2_database_2of2.zip

압축 해제한 뒤 설치 디렉터리에서 실행합니다.

[oracle@localhost ~]$ su – root
암호 :
[root@localhost ~]# xhost +
[root@localhost ~]# su – oracle
[oracle@localhost ~]$ cd database
[oracle@localhost database]$ ./runInstaller

※ xhost + 했을 때 command not found 또는 unable to open display “” 뜨시는 분들은

[root@localhost ~]# yum install xorg*
[root@localhost ~]# export DISPLAY=localhost:0.0
[root@localhost ~]# su – oracle
[oracle@localhost ~]$ export DISPLAY=localhost:0.0
[oracle@localhost ~]$ cd database
[oracle@localhost database]$ ./runInstaller

>>>> Could not execute auto check for display colors using command /usr/bin/xdpyinfo. Check if the DISPLAY variable is set. Failed <<<<
에러가 날 경우 켜져있는 리눅스 서버를 모두 종료하고 다시 실행해주세요

[oracle@localhost ~]$ cd database
[oracle@localhost database]$ ./runInstaller

위에처럼 한글이 깨지면 밑에 사진을 참고해서 우선 종료해줍니다.

영어 설정하고 다시 실행 해줄게여

[oracle@localhost database]$ export LANG=C
[oracle@localhost database]$ export LC_ALL=C
[oracle@localhost database]$ ./runInstaller

체크 해제하고 Next (뭐라 창 뜨면 걍 yes하고 넘겨도됩니다)

데이터베이스 소프트웨어만 설치하는것으로 설정하고 Next

Single instance 웅앵웅 체크 Next

항구거 추가 후 ㄴㅅㅌ

Enterprise Edition 선택 후 ㄴㅅㅌ

아까 위에서 ORACLE_HOME 변수 선언해줬쥬? 경로값 확인 후 ㄴㅅㅌ

이것도 아까 위에서 유저 생성할대 부여한 Group과 Inventory 경로 확인 후 ㄴㅅㅌ

그룹명 확인 후 ㄴㅅㅌ

 

Ignore All 체크 후 ㄴㅅㅌ

최종 설정 값 확인 후 Finish

아래와 같이 설치가 잘 되다가

84% 쯤에 아래와 같은 에러가 발생하길래

설치중인 창을 끄지말고 새로 창을 열어서 oracle 계정을 로그인하고 저기 경로로 갑니다.

[oracle@localhost ~]$ cd /usr/oracle/app/product/11.2.0/dbhome_1/ctx/lib
[oracle@localhost lib]$ vi ins_ctx.mk

아래와 같은 구문을 찾습니다.

ctxhx: $(CTXHXOBJ)
$(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)

아래와 같이 수정하고 저장합니다.

ctxhx: $(CTXHXOBJ)
-static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)

Retry 버튼을 선택해서 재시도합니다.

 

잘되다가 또 다른 에러가 발생하네염

또 저기 경로로 가서 파일을 수정해줍니다.

[oracle@localhost ~]$ cd /usr/oracle/app/product/11.2.0/dbhome_1/sysman/lib
[oracle@localhost lib]$ vi ins_emagent.mk

아래와 같은 구문을 찾아서

$(SYSMANBIN) emdctl:
$(MK_EMAGENT_NMECTL)

아래와 같이 수정하고 저장합니다.

$(SYSMANBIN) emdctl:
$(MK_EMAGENT_NMECTL) -lnnz11

Retry 버튼을 선택해서 재시도합니다. 잘되는군염

 

완료될때쯤 쉘 스크립트 실행하라는 안내창이 뜹니다.

하라는대로 따라하면됩니다. 새 창을 열어서 root 계정으로 실행해줍니다.

[root@localhost ~]# /usr/oracle/oraInventory/orainstRoot.sh
Changing permissions of /app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /app/oraInventory to dba.
The execution of the script is complete.
[root@localhost ~]# /usr/oracle/app/product/11.2.0/dbhome_1/root.sh
Running Oracle 11g root.sh script…

The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME=  /app/oracle/product/11.2.0/dbhome_1

Enter the full pathname of the local bin directory: [/usr/local/bin]: [ENTER]키 누르세용
Copying dbhome to /usr/local/bin …
Copying oraenv to /usr/local/bin …
Copying coraenv to /usr/local/bin …

Creating /etc/oratab file…
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
Finished product-specific root actions.

설치가 완료되면 창을 종료하고 환경변수를 적용합니다.

[oracle@localhost database]$ source ~/.bash_profile

5. 리스너 생성

다음 명령어로 리스너를 생성합니다.

[oracle@localhost database]$ netca

※ netca command not found 웅앵웅 에러 뜰 경우 다음과 같은 명령어를 실행하세염

위에서 환경변수가 적용이 안되었거나 오라클이 설치된 path가 잘못될 경우 나타납니다.

[oracle@localhost ~]$ cd /app/oracle/product/11.2.0/dbhome_1/bin
[oracle@localhost ~]$ ./netca

Listener configuration 체크 후 Next

최초 구성이므로 Add 선택 후 Next

아묻따 Next

확인 후 넥스트

오라클 기본포트 1521 확인 후 넥스트

다른 리스터 추가 할거니? 아니 > 넥스트

끝났당 ㄴㅅㅌ

Finish 선택해서 창 종료

6. 데이터베이스 생성

다음 명령어로 데이터베이스를 생성합니다.

[oracle@localhost ~]$ dbca

생성시작 Next

Create a Database 선택하고 Next

웅웅 알겠어염 확인하구 Next

ORACLE SID를 orcl로 설정하고 넥스트

(SID를 orcl 말고 다른걸로 변경하고 싶으면 .bash_profile의 ORACLE_SID 변수 값도 변경해주어야해여)

고대로 넥스트

관리자 전체 계정에 동일 패스워드를 사용한다는 옵션 체크 후 패스워드 설정

(까먹으면 귀찮아지니까 쉬운걸로 설정하세염)

패스워드를 단순하게 설정하면 뜨는 확인창임다 Yes를 선택해서 무시하고 넘어가시져

넥스트

ㄴㅅㅌ

ㄴㅅㅌ

서버 메모리 사양에 따라 설정된 값임다 그대로 설정하고 [Sizing] 탭을 선택해주세여

확인하고 [Character Sets] 탭 선택하세여

UTF-8이랑 항구거로 설정하고 [Connection Mode] 선택

기본 설정값 고대로 ㄴㅅㅌ

설정된 값 확인하고 ㄴㅅㅌ

피니쉬

마지막으로 설치 전에 확인하고 OK

아래와 같이 설치됩니다

(나만그런가 설치 열라느림)

아래와 같은 창 뜨면 설치 완료된겁니다.

 

ㅎㅏ,, 이제 모두 설치 완료가 됐습니다.

이제 실행하는 것만 남았군여,,,

7. 데이터베이스 및 리스너 실행

아까 위에서 .bash_profile에 alias로 sysdba로 접속하는 별칭을 주었기 때문에 아래와 같은 명령어로 접속합니다.

[oracle@localhost ~]$ ss

SQL*Plus: Release 11.2.0.1.0 Production on Fri Jan 31 13:56:58 2020

Copyright (c) 1982, 2009, Oracle. All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> startup
ORA-01081: cannot start already-running ORACLE – shut it down first
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area   768294912 bytes
Fixed Size                       2217304 bytes
Variable Size                   486541992 bytes
Database Buffers              276824064 bytes
Redo Buffers                   2711552 bytes
Database mounted.
Database opened.
SQL > exit

리스너 기동 상태를 확인합니다.

[oracle@localhost ~]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.1.0 – Production on 31-JAN-2020 14:01:07

Copyright (c) 1991, 2009, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xx.xx.xx.xx)(PORT=1521)))
STATUS of the LISTENER
————————
Alias                                  LISTENER
Version                              TNSLSNR for Linux: Version 11.2.0.1.0 – Production
Start Date                           30-JAN-2020 17:28:30
Uptime                               0 days 20 hr. 32 min. 36 sec
Trace Level                          off
Security                              ON: Local OS Authentication
SNMP                                OFF
Listener Parameter File          /app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File                  /app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
Listening Endpoints Summary…
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xx.xx.xx.xx)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary…
Service “orcl” has 1 instance(s).
Instance “orcl”, status UNKNOWN, has 1 handler(s) for this service…
The command completed successfully

리스너는 lsnrctl start 또는 lsnrctl stop 명령어를 이용해서 끄고 켜고를 할 수 있습니다.

8. 데이터베이스 계정 생성

이제 데이터베이스에 계정을 생성해서 SQLDeveloper에 붙어볼겁니다.

 

저는 제 티스토리 주소인 xxsiyoung 이름으로 계정을 만들고 권한까지 줘보겠슴다.

참고로 저는 귀찮아서 계정 아디랑 비번을 똑같이 만들어요

밑에 명령어중에 identified by 뒤에는 비밀번호를 설정하는 겁니다.

권한은 데이터베이스 사용하는데 필요한 권한은 다 줬어요

자세한 권한 설명은 구글링 하시기 바랍니다,,

[oracle@localhost ~]# ss

SQL> CREATE USER xxsiyoung identified by xxsiyoung;

User created.

SQL> GRANT resource, connect, dba to xxsiyoung;

Grant succeeded.

다음과 같은 명령어로 생성한 계정이 잘 만들어졌는지 확인해주세여

SQL> SELECT * FROM ALL_USERS;

9. SQLDeveloper에 연결하기 (외부접속하기)

이제 생성을 했으면 사용하기 쉽게 SQLDeveloper에 연결할겁니다.

$ORACLE_HOME/network/admin 폴더에 있는 listener.ora 파일과 tnsnames.ora 파일을 수정해주어야 합니다.

우선 여러분의 .ora 파일들은 백업해주시고 제 파일을 참고해주세욤

 

listener.ora 파일

(여러분 서버 ip를 xx.xx.xx.xx 자리에 넣어주세여)

SID_LIST_LISTENER =
   (SID_LIST =
     (SID_DESC =
       (SID_NAME = orcl)
       (ORACLE_HOME = /app/oracle/product/11.2.0/dbhome_1)
     )
   )

LISTENER =
   (DESCRIPTION_LIST =
     (DESCRIPTION =
       (ADDRESS = (PROTOCOL = TCP)(HOST = xx.xx.xx.xx)(PORT = 1521))
       (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
     )
   )

ADR_BASE_LISTENER = /app/oracle

 

tnsnames.ora 파일

(여러분 서버 ip를 xx.xx.xx.xx 자리에 넣어주세여)

LISTENER_ORCL =
   (ADDRESS = (PROTOCOL = TCP)(HOST = xx.xx.xx.xx)(PORT = 1521))

ORACLR_CONNECTION_DATA =
    (DESCRIPTION =
        (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
        )
        (CONNECT_DATA =
           (SID = CLRExtProc)
           (PRESENTATION = RO)
        )
    )

ORCL =
    (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = xx.xx.xx.xx)(PORT = 1521))
        (CONNECT_DATA =
            (SERVER = DEDICATED)
            (SERVICE_NAME = orcl)
        )
    )

저장하고 리스너를 껐다가 다시 켭니다.

[oracle@localhost admin]$ lsnrctl stop
[oracle@localhost admin]$ lsnrctl start

 

이제 SQLDeveloper를 실행해서 새 접속을 합니다.

[테스트] 버튼을 눌러서 [성공] 이 바로 뜨면 좋겠지만,,

만약에 다음과 같은 에러가 난다,,?

접속에러가 난겁니다,, 한번 해결해봅시다 ㅠ

 

1) 방화벽을 엽니다

[root@localhost ~]# firewall-cmd –permanent –zone=public –add-port=1521/tcp
success

SQLDeveloper에서 테스트를 해봅니다. 그래도 에러가 나면,, ↓↓↓

 

2) 리스너 종료- 디비 종료 – 디비 연결 – 리스너 연결 – 리스너 동작확인 – sqlplus로 붙고 – SQLDeveloper에 연결

[oracle@localhost ~]$ lsnrctl stop
[oracle@localhost ~]$ lsnrctl start
[oracle@localhost ~]$ sqlplus /nolog

SQL> conn /as sysdba
SQL> shutdown immediate

SQL> startup

SQL> exit
[oracle@localhost ~]$ lsnrctl stop
[oracle@localhost ~]$ lsnrctl start
[oracle@localhost ~]$ lsnrctl status

출처 : [21.02.02 수정] CentOS 7에 Oracle 11g 설치 완벽정리! (tistory.com)

about docker basic

docker  – written by Go language.  anounced 2013.03 — 도커엔진 – 컨테이너를 생성하고 관리하는 주체

가상머신 – 도커 컨테이너 비교 — 배포, 성능에서 우위, 여러 애플리케이션의 독립성과 확장성 제공.

도커엔진 – 2017년 이전 1.13 최후 버전, 이후는 도커EE, 도커CE로 구분 17.03-CE (출시년도)-(출시월)-(도커엔진종류)

리눅스 도커엔진설치 – 사전확인사항
1. 커널확인(최소 3.10 version 이상 유효) – host# uname -r
2. 64비트, 지원 기간내 배포판 확인 (우분투 14.04, 16.04, 18.04 및 CentOS 7 등)
3. sudo 통해 설치 or root 권한 소유 계정에서 설치 진행

우분투 14.04, 16.04, 18.04
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –
# add-apt-repository \
“deb [arch=amd64] https://download.docker.com/linux/ubuntu $(1sb_release -cs) stable”
# apt-get update
# apt-get install docker-ce

CentOS7, RHEL7
# yum install -y yum-utils
# yum-config-manager \
–add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
# yum install -y docker-ce
# systemctl start docker

도커 이미지
[저장소 이름]/[이미지 이름]:[태그]  alicek106/ubuntu:14.04           ubuntu:latest

도커 컨테이너
1. 버전 확인
# docker -v
2. docker run -i -t ubuntu:14.04 — 도커허브에서 자동으로 이미지 내려 받음.
3. 컨테이너에서 기본 사용자는 root 이고 호스트 이름은 무작위 16진수 해시값. 컨테이너 고유 ID의 앞 일부분
4. root@0f4c5b82c03f:/# ls
root@0f4c5b82c03f:/# exit or  Ctrl + D — 빠져 나오면서 컨테이너 정지시킴<-> Ctrl + P, Q

# docker pull centos:7  — 이미지 다운
# docker images — 이미지 목록 확인
# docker create -i -t –name mycentos centos:7  — run -> create(생성만 할 뿐, 진입하지 않음)
# docker start mycentos
# docker attach mycentos — 내부진입, Ctrl+P, Q 로 빠져나옴

컨테이너 목록 확인
# docker ps
# docker ps -a
# docker inspect mycentos | grep Id
# docker run -i -t ubuntu:14.04 echo hello world!
# docker rename angry_morse my_container
컨테이너 삭제
# docker rm angry_morse
# docker ps -a
# docker rm mycentos — 실행 중 컨테이너는 삭제 안됨. 정지 후 삭제, 강제옵션
# docker stop mycentos
# docker rm mycentos
# docker rm -f mycentos  — 강제옵션
# docker container prune — 연습용 모든 컨테이너 삭제
# docker ps -a -q — q는 컨테이너의 ID만 출력
# docker sop $(docker ps -a -q)  — 컨테이너 목록을 변수로 모든 컨테이너 삭제
# docker rm $(docker ps -a -q) — 컨테이너 삭제시 데이타 모두 삭제됨.

컨테이너를 외부에 노출
# docker run -i -t –name network_test ubuntu:14.04
root@26081d500bf5:/# ifconfig
# docker run -i -t –name mywebserver -p 80:80 ubuntu:14.04  — [host port]:[container port]
# docker run -i -t -p 3306:3306 -p 192.168.0.100:7777:80 ubuntu:14.04 –복수개 포트 포워딩 > 컨테이너 생성 진입 후 아래 명령으로 apache 웹서버 설치
root@7d50b96b237b:/# apt-get update
root@7d50b96b237b:/# apt-get install apache2 -y
root@7d50b96b237b:/# service apache2 start

데이터베이스와 워드프레스 웹서버 컨테이너 연동 예
# docker  run -d \
–name wordpressdb \
-e MYSQL_ROOT_PASSWORD=password \
-e MYSQL_DATABASE=mysql \
mysql:5.7

# docker run -d \
-e WORDPRESS_DB_PASSWORD=password \
–name wordpress \
–link wordpressdb:mysql \
-p 80 \
wordpress

# docker ps
# docker port wordpress  — wordpress 컨테이너가 사용 중인 포트 출력
웹브라우즈에서 [호스트 IP]:32769에 접근 확인
-d: Detached 모드로 컨테이너 백그라운드 실행
-e: 컨테이너 내부 환경변수 설정
# echo ${ENVIRONMENT_NAME}
컨테이너 내부에서 echo로 환경변수 출력
root@a0897ecfbbae:/# echo $MYSQL_ROOT_PASSWORD

# docker exec -i -t wordpressdb /bin/bash
root@a0897ecfbbae:/# echo $MYSQL_ROOT_PASSWORD

# docker exec wordpressdb ls /
root@a0897ecfbbae:/# mysql -u root -p
–link: 내부 ip 알 필요 없이 컨테이너 alias로 접근

# docker start(stop) wordpress wordpressdb  여러 개 컨테이너 시작(종료)

도커 볼륨
호스트 볼륨 공유

 

 

 

 

 

 

 

 

hide the y axis by setting the value of yAxis.pointOnColumn

  1. For line chart, you can hide the y axis by setting the value of yAxis.pointOnColumn, yAxis.showLabel option to false as shown below.
var options = {
    ...
    yAxis: {
        pointOnColumn: false,
        showLabel: false
    },
    ...
}
  1. Can control the thickness of lines by giving series.pointWidth option as below, but there is no way to change the line weight of specific series group to different.
var options = {
    ...
    series: {
        pointWidth: 1
    },
    ...
}

indexOf barThickness boxWidth

var a = [1,2,3,4,5,1,2,3]
a.indexOf(3) //2
a.indexOf(6) //-1
scales: {
xAxes: [{
barThickness: 16,
barPercentage: 0.5
maxBarThickness: 100,
}],
}

Increase spacing between legend and chart

javascript – Custom Legend with ChartJS v2.0 – Stack Overflow

[chartjs] 오른쪽에도 y축 값 생성하기 : Multiple Y axis Chart.js (tistory.com)

코딩벌레 :: [JS] 배열속 원하는 값 찾기(indexOf, includes) (tistory.com)

DataTables 사용법 및 예제 JSON, jQuery – Grid 라이브러리 (tistory.com)

javascript – Click event on stacked bar chart – ChartJs – Stack Overflow

Chart.js Gradients (codepen.io)

[JS] Chart.js 원형 차트, 사용자 지정 범례 그리기!(pie chart, custom legend) (tistory.com)

Stacked Horizontal Charts with Chart.js (codepen.io)

[chartjs] 그리기 순서 변경 하기, Z-index, legend 순서 변경 (tistory.com)

( chart.js ) 그래프 오류 해결 / 이전 데이터 오류 / 데이터 초기화 (tistory.com)

JS Array 이해, push(), pop(), sort(), splice() | TutorialPost (apptilus.com)

JavaScript에서 두 날짜를 비교하는 방법 | Delft Stack

[javascript] 이번 달 1일, 마지막 일 구하기 :: 뻔뻔한 개발자 (tistory.com)

JavaScript를 사용하여 테이블 만들기 | Delft Stack

Traversing an HTML table with JavaScript and DOM Interfaces – Web APIs | MDN (mozilla.org)

$(“input[name=’radioName’]:checked”).val();

 legend: {
    display: true,
    position: "right",
    labels: {
      fontFamily: "Comic Sans MS",
      boxWidth: 20,
      boxHeight: 2
    }
  }

Free SSL Certificate

  1. goto https://www.sslforfree.com/
  2.  goto https://www.sslshopper.com/ssl-converter.html

3 month only , able to update every 3 month

one of three method, I choose second(Manual),

first at 1,
use  manual verification, use www.yourdomain.com -> Validation for www.yourdomain.com and yourdomain.com

 

  • Get domain verification files by clicking the button below
  • Upload domain verification files to domain (Need help?)
  • Download your free ssl certificate
    1. Download File #1
    2. Download File #2  , download 1, 2 file and upload your website folder = http://www.yourdomain.com/.well-known/acme-challenge/    using ftp, just copy on remote terminal on your server
    do not omit ‘.’ well-known folder
  • verify below links
  • http://www.yourdomain.com/.well-known/acme-challenge/puS6WI9pMYH8XxKIKffrRHpgA4JW57j0VzNzpUeGkPohttp://yourdomain.com/.well-known/acme-challenge/2P8Gjnt_jwUc6uqvOrX2IW2yxvv-noV_wLpclMFV4-Y
  •  Download SSL Certificate(ca_buldle.crt, certificate.crt, private.ke)

first at 2,

  • then goto http://www.sslshopper.com/ssl-converter.html
  • Certificate File to C0nvert —  choose  certificate.crt file
  •  Type to Convert To — choose PFX/PKCS#12
  •  Private Key File — choose private.ke
  •  Type of Current Certificate — choose Standart PEM
  •  confirm Convert Certificate
  •  downloaded “certificate.pfx” file

go go your server web site (this case IIS)

in website root,  Server Certificate – import “certificate.pfx”

and  go to www.yourdomain.com site ,  in binding menu, add https, www.yourdomin.com with check “required showing server name” and choose certificate = ‘www.yourdomain.com’ file and then add https, yourdomain.com with check, and choose certificate = ‘yourdomain.com’ file .  just Done Simple