CentOs 설치 및 간단한 설정
순서
- 0.CentOs 설치
- 1.Apache 및 Apache 에 필요한 파일 설치
- 2.Java , Tomcat , Tomcat-connector 설치
- 3.Apache Setting
- 4.Vi color Setting
- 5.Etc
0. CentOs 설치
-
언어 한글 변경
-
시간 아시아/서울 변경
- [설치 목적지] 선택 설치하려는 디스크 선택
- 저장소 구정 custom 선택 완료
- 표준 파티션 변경
- 자동생성 클릭 및 완료
-
설치시작
-
root 암호 설정
- 하단 다운로드 마무리 되면 재부팅 시작
- 재부팅 시 부팅순서가 USB 일 경우 CentOs 로 변경
없을 시 OS 들어가는 부팅메뉴가 있을듯
- 재부팅 시 부팅순서가 USB 일 경우 CentOs 로 변경
- GUI 환경 일 시 우측 상단 설정에서 네트워크 변경
- 실제 사용 할 렉 장비쪽 네트워크 안쓰는 IP 확인 후 고정IP 로 변경.
- 작업이 완료되면 원격접속 가능하게 SSH 부터 변경
(기본 20 이나 보안상 바꿔주는게 좋다) - semanage port -a -t ssh_port_t -p tcp 2022
( SELINUX 보안상 해당 PORT 만 풀어주기) - vi /etc/ssh/sshd_config 파일 PORT 변경
- firewall-cmd –list-all 확인 후 2022 없을 시 추가
- firewall-cmd –permanent –zone=public –add-port=2022/tcp
- disk 추가 시
- console 실행 후 fdisk -l 로 disk 및 Device 확인
- Device 있을 경우 데이터가 남아있는 디스크!
(파티션만 나눈 경우 || raid 로 나눈 경우) 초기화 필요 - [ mkfs.xfs , mkfs.ext4 (xfs 가 확장성이 높음) ] mkfs.xfs /dev/sd*
- 파티션 나누기 fdisk /dev/sd*
- 신규 파티션을 xfs 시스템으로 변경 3번과 동일
- 마운트 하기 mount /dev/sd**
- df -Th 마운트 확인
- 재부팅 후에도 마운트 해제 안되도록 설정
- blkid UUID 확인 및 복사
- vi /etc/fstab 에 맞춰서 작성
※ 마운트 해제 umount /dev/sd**
1. Apache 및 Apache 에 필요한 파일 설치
※ Apache는 2.4부터 apr, apr-util이 빠졌다. 별도로 설치
/usr/local/src 위치하기 위해 wget(web get)으로 설치함, dnf 혹은 yum 으로 설치 시 다른 곳에 설치..
※ 설치 전 CenOs 는 일반적인 지원 목록에서 없어져 기존 운영체제에서 새 Stream 배포판으로 이전
sudo sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-*
sudo sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-*
dnf update
※ 패키지 설치
dnf install -y gcc gcc-c++ pcre-devel expat-devel
cd /usr/local/src
apache 최신버전 / 이전버전 링크 / 패키지 설치
이전버전 : https://archive.apache.org/dist/
최신버전 : https://downloads.apache.org
※ 패키지 설치
dnf 일 시 dnf install -y gcc gcc-c++ pcre-devel expat-devel
yum 일 시 install -y gcc gcc-c++ pcre-devel expat-devel
1. httpd : 2.4.58
wget https://archive.apache.org/dist/httpd/{버전에 맞는 tar.gz 파일}
tar -xvf apr-{버전에 맞는 tar.gz 파일}
2. apr : 1.7.4
wget https://archive.apache.org/dist/apr/apr-{버전에 맞는 tar.gz 파일}
tar -xvf apr-{버전에 맞는 tar.gz 파일}
3. apr-util : 1.6.3
wget https://archive.apache.org/dist/apr/apr-util-{버전에 맞는 tar.gz 파일}
tar -xvf apr-util-{버전에 맞는 tar.gz 파일}
4. 압축해제한 파일들을 apache소스의 srclib안으로 넣어준다.
mv apr-1.7.4 httpd-2.4.58/srclib/apr
mv apr-util-1.6.3 httpd-2.4.58/srclib/apr-util
5. pcre : 8.45
wget https://sourceforge.net/projects/pcre/files/pcre/{버전}/pcre-{버전에 맞는 tar.gz 파일}
tar -xvf pcre-{버전에 맞는 tar.gz 파일}
6. configure
[configure 컴파일 설치 과정 간단 설명]
-
설치 파일 디렉터리로 접근합니다.
-
configure configure 명령어를 이용해 현재 디렉터리(설치 파일 디렉터리)에서 configure라는 이름을 갖는 스크립트 파일을 찾고 이를 실행하여 Makefile을 생성합니다. 이 과정에서 설치 시 필요한 필요한 도구가 다 있는지, 라이브러리는 다 있는지 같은 것들을 체크해줍니다. 옵션을 이용하여 설치 경로(–prefix)등을 지정할 수 있습니다. configure 단계에서 에러를 내며 멈출 경우 설치를 위한 준비(필수 라이브러리 등)가 잘 되어있는지 다시 확인합니다. configure 옵션을 잘 못해서 다시 시작하고 싶을 때 make distclean(초기 압축을 풀었던 상태로 되돌려 줌) 명령어를 입력하면 configure 설정을 모두 제거해줍니다.
-
make make 명령어로 생성된 Makefile을 이용하여 프로그램 코드를 컴파일하고 실행 가능한 형태로 만듭니다. Setup파일을 만든다고 보면 됩니다. 이 과정에서 모든 실행파일들은 여러분이 소프트웨어를 압축 해제한 임시 디렉터리에 생성됩니다. 에러가 날 경우 make clean 명령어를 입력 후 다시 make 명령어를 입력해 컴파일합니다. 컴파일: 소스파일을 사용자가 실행 가능한 파일로 만들어 주는 과정 make 유틸리티가 동작하기 위해서는 Makefile이라는 파일이 현재 작업공간에 존재해야 합니다.
-
make install make install을 이용해 make를 통해 만들어진 설치 파일(Setup)을 설치를 합니다. (위에서 임시 디렉터리에 생성된 실행파일들을 최종 디렉터리에 복사합니다. 이에 따라 사용자가 실행이 가능한 형태가 됩니다.)
6-1. PCRE 컴파일 설치
cd pcre-8.45
./configure --prefix=/usr/local/src
make && make install
6-2. Apache HTTP Server(httpd) 컴파일 설치
cd ../httpd-2.4.58/
./configure --prefix=/usr/local/apache --with-included-apr --with-pcre=/usr/local/src
make && make install
7. systemctl 에 등록해두기
vi /usr/lib/systemd/system/httpd.service
[Unit]
Description=Apache Service
[Service]
Type=forking
#EnvironmentFile=/usr/local/apache/bin/envvars
PIDFile=/usr/local/apache/logs/httpd.pid
ExecStart=/usr/local/apache/bin/apachectl start
ExecReload=/usr/local/apache/bin/apachectl graceful
ExecStop=/usr/local/apache/bin/apachectl stop
KillSignal=SIGCONT
PrivateTmp=true
[Install]
WantedBy=multi-user.target
8. 포트 확인 및 오픈
firewall-cmd --zone=public --list-all
# 80 없을 시 아래 실행
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload
9. // 서비스 시작
systemctl status httpd
systemctl start httpd
systemctl status httpd
※ ip:80 접속 시 It works! 나오면 성공
2. Java , Tomcat , Tomcat-connector 설치
cd /usr/local/
1. Java open jdk 1.8 다운로드 // dnf 명령어로 설치함
1-1. dnf search java (devel 설치 해야 javac 가 있음)
dnf install -y java-1.8.0-openjdk-devel.x86_64
which javac (javac 위치 확인 있으면 정상)
1-2. 자바 환경변수 설정
which javac 로 확인 한 링크의 원본 파일 위치 확인
readlink -f /usr/bin/javac (혹은 그냥 find / -name java 로 찾아도 됨)
vi /etc/profile 하단에
- JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-2.el8_5.x86_64
- PATH=$PATH:$JAVA_HOME/bin
- export JAVA_HOME PATH
나와서 source /etc/profile
2. Tomcat // wget 로 설치함
wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.84/bin/apache-tomcat-9.0.84.tar.gz
tar zxvf apache-tomcat-9.0.84.tar.gz
mv apache-tomcat-9.0.84 tomcat9
3. ajp 연동시 필수 Tomcat-connector // wget 로 설치함
wget https://archive.apache.org/dist/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.49-src.tar.gz
tar zxvf tomcat-connectors-1.2.49-src.tar.gz
cd /usr/local/tomcat-connectors-1.2.49/native/
# configure 명령어를 통해 설치경로 정보(여기서는 아파치 설치 경로/usr/local/apache/bin/apxs)를 포함한 make 파일을 생성합니다.
./configure --with-apxs=/usr/local/apache/bin/apxs
# 정상적으로 make 파일이 생성되었다면 make 파일로 컴파일하고
# make install로 설치를 진행합니다
# 이 두 작업을 통시에 수행하기 위해 make && make install 명령을 사용합니다
# 정상적으로 설치가 완료되면 아파치홈/modules 경로에 mod_jk.so 파일이 생성되게 됩니다.
make && make install
3. Apache Setting
httpd-conf 설정
cd /usr/local/apache/conf
vi httpd-conf
# 80 포트 추가
LISTEN 80
# 모듈 추가
LoadModule jk_module modules/mod_jk.so
# ajp 사용을 위해 mod_jk.con 하단에 추가
includ conf/mod_jk.conf
# virtual host 셋팅을 위해 제일 하단에 추가
includ httpd-vhost.conf
# 저장
:wq
mod_jk 환경 셋팅
vi mod_jk.conf
<IfModule jk_module>
JkWorkersFile "conf/workers.properties"
JkLogFile "logs/mod_jk.log"
JkLogLevel info
JkLogStampFormat "[%y %m %d %H:%M:%S] "
JkRequestLogFormat "%w %V %T"
jkShmFile logs/modjk.shm
</IfModule>
Workers 셋팅
vi workers.properties
# worker list
worker.list=worker-lb,status
#client node1
worker.node1.port=18009
worker.node1.host=127.0.0.1
worker.node1.type=ajp13
worker.node1.ping_mode=A
worker.node1.lbfactor=1
#client node2
worker.node2.port=18010
worker.node2.host=127.0.0.1
worker.node2.type=ajp13
worker.node2.ping_mode=A
worker.node2.lbfactor=1
# Load-balancing behavior
worker.worker-lb.type=lb
worker.worker-lb.balance_workers=node1,node2
worker.worker-lb.sticky_session=1
worker.status.type=status
Virtual Host 셋팅
cd extra/
# ssl 적용 시 httpd-ssl.conf 사용
vi httpd-vhosts.conf
<VirtualHost *:80>
# 관리자 메일 주소
# ServerAdmin
# project 경로
DocumentRoot "/home/{경로}/ROOT"
ServerName 127.0.0.1
# JkMount Tomcat 에서 사용
JkMount /* worker-lb
JkMount /*.jsp worker-lb
JkMount /*.json worker-lb
JkMount /*.xml worker-lb
JkMount /*.do worker-lb
JkMount /resources worker-lb
# JkUnMount Apache 에서 사용
JkUnMount /js/* worker-lb
JkUnMount /css/* worker-lb
JkUnMount /img/* worker-lb
JkUnMount /fonts/* worker-lb
JkUnMount /upload/* worker-lb
# Apache 에서 읽을 수 있게 Alias
Alias /css /home/{경로}/css
Alias /fonts /home/{경로}/fonts
Alias /img /home/{경로}/img
Alias /js /home/{경로}/js
Alias /template /home/{경로}/template
Alias /upload /home/{경로}/upload
ErrorLog "logpath"
CustomLog "logpath" common
# Directory
# Options : 특정 디렉토리에서 사용할 수 있는 서버 기능을 제어한다.
- All : 모든 Options가 MultiViews에 허용된다.
- Indexes : 클라이언트가 요청한 디렉토리 경로에 DirectoryIndex 지시자에 설정한 파일이 없을 경우
디렉토리 목록을 화면에 표시한다. (디렉토리 리스팅)
- FollowSymLinks : 설정한 디렉토리에서 심볼릭 링크를 허용한다.
- 이외에도 다양함, 대중적으로 쓰는것만 적음
# AllowOverride : .htaccess 파일의 사용 여부를 결정한다.
- All | None
# Require : 해당 디렉토리의 접근 허용 여부를 설정한다.
- all denied(모든접근 거부) , all granted(모든 접근 허용) 이외에도 IP,도메인으로 셋팅 가능
# Order : 디렉토리 접근 권한을 위한 지시자
- allow, deny : 디렉토리에 접근에 대해 먼저 허용하고 그 다음이 거부하겠다
# Allow from : 모든곳에서 들어오는 접속을 허용
- all | domain
<Directory />
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
# 저장
:wq
# httpd 재시작
systemctl restart httpd
Tomcat Setting
cp -R /usr/local/tomcat /home/{경로}
cd /home/{경로}/conf
vi server.xml
# 신경써야 할 부분
# 1. 최상단 <Server> 태그의 port : Was Port
# 2. 중간 <Service> 안의 <Connector> 태그 : Ajp Port
# 3. 바로 아래 <Engine> 태그 : load balancing 을 위한 태그
# 4. 제일 하단 <Host> 태그 : 도메인 경로 , war 패키징 여부 , appBase 경로
======================================================================
# 첫 프로젝트라면 그냥 사용해도 무방
<Server port="8005">
# port : workers.properties 에서 작성한 port 사용
# secretRequired : workers.properties 에서 작성 가능 (보안상 작성하는게 좋음)
<Connector protocol="AJP/1.3"
port="18014"
redirectPort="8443"
address="0.0.0.0"
secretRequired="false"
/>
# jvmRoute workers.properties 에서 작성한 node 사용
<Engine name="Catalina" defaultHost="localhost" jvmRoute="node1">
#
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
# 저장
:wq
cd ../bin/
sudo ./startup.sh
4. Vi color Setting
ssh 호스트 , 디렉터리 컬러 변경
vi ~/.bashrc
제일 하단에 작성
export PS1='\033[01;31m[\u\[\033[01;32m\]@\h \[\033[01;34m\w]\[\033[00m\]\$ '
export LS_COLORS="di=00;36"
shell script 컬러 및 옵션 변경
vi ~/.bashrc
alias vi='vim' 작성 후 저장
source ~/.bashrc 적용
vi /home/.vimrc 파일 생성 하단 작성 후 저장
syntax enable
syntax on ## 하이라이트
filetype on ## 파일종류 자동인식
set autoindent ## 자동 들여쓰기
set background=dark ## 배경 컬러
set cindent ## C언어 자동들여쓰기
set history=100 ## 명령어 기록
set hlsearch ## 검색어 강조
set number ## 행 번호 표시
set paste! ## 계단현상 제거 (붙여넣기)
set shiftwidth=4 ## 들여쓰기 설정
set showmatch ## 괄호의 짝? 을 표시해줌
set statusline=%h%F%m%r%=[%l:%c(%p%%)] ## 상태정보라인 구성
set smartindent ## 스마트한 들여쓰기
set tabstop=4 ## 탭(tab) 간격
set textwidth=80 ## 자동줄 바꿈 길이
set title ## 현재 수정중인 파일명 표시
set ruler ## 좌표 표시
colo koehler ## 색상 테마
Etc
※ 하드웨어
- 랙 장비
- 랙 PC 별 cmos 기능이 다름
- disk raid1 잡은후 복구 기능확인 필요!!!
다음 내용엔 Jenkins Setting 에 관한걸 작성해보겠습니다.