Rocky Linux 9 서버 초기 설정 세팅 - epel, remi, mc, fail2ban, certbot, sshfs, bind, APM
페이지 정보

본문
Rocky Linux 9 서버 초기 설정 세팅
0. 설치
설치는 가상 서버 호스팅을 이용하는 것으로 한다.
root 로그인 후 진행한다.
1. 패키지 최신버전으로 업데이트
```
# dnf list updates
# dnf -y update &
```
현재 버전을 확인해 보자.
```
# cat /etc/redhat-release
Rocky Linux release 9.2 (Blue Onyx)
```
dnf 실행시에 'Failed to set locale, defaulting to C.UTF-8' 와 같은 오류가 뜬다면, langpacks-en 을 설치해 준다.
```
# dnf install langpacks-en
```
* 참고 : https://www.baragi.net/dev/8899
2. 추가 저장소 설치
1) epel 저장소 설치 및 업데이트 확인
```
# dnf install epel-release
# dnf list updates
```
epel 저장소를 설치한 후에 dnf 명령 실행시 Killed 가 뜨거나, 원격 접속이 종료(로그아웃) 되어버린다면,
서버의 메모리가 부족한 경우이다.
이때는, 가상메모리를 512M 또는 메모리의 2배 정도 추가해 보자.
* 참고 : https://www.baragi.net/dev/8755
2) remi 저장소 설치
```
# dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm
# dnf list updates
```
* 참고 : https://unixcop.com/enable-remi-repository-rocky-linux/
remi 저장소를 설치하는 이유는, php 버전을 최신버전으로 설치하기 위해서다.
기본 저장소에는 보수적으로 약간 아래 버전까지만 올라와 있다.
아래 명령어로 확인해 볼 수 있다.
```
# dnf module list php
```
2-1. mc (Midnight Commander) 설치
```
# dnf install mc
```
3 fail2ban 설치
```
# dnf install fail2ban
# systemctl enable fail2ban
# systemctl start fail2ban
```
* 참고 : https://www.baragi.net/dev/8782
firewalld 가 실행되지 않았을 수 있으므로, 실행한다.
```
# systemctl enable firewalld
# systemctl start firewalld
```
4. APM 설치
1) 설치 가능한 패키지들 확인해 보기
```
# dnf module list httpd
# dnf module list mariadb
# dnf module list php
```
근데, 록키 리눅스 8 과는 다르게, httpd 와 mariadb 의 모듈 리스트는 없다고 나온다.
php 는 아래와 같이 설치 가능한 여러 버전들이 나온다. 록키리눅스9 기본저장소에는 php 7.* 가 없다.
```
Rocky Linux 9 - AppStream
php 8.1
Remi's Modular repository for Enterprise Linux 9 - x86_64
php remi-7.4
php remi-8.0
php remi-8.1
php remi-8.2
```
2) 설치
apache
```
# dnf install httpd
```
mariadb
```
# dnf install mariadb-server mariadb
```
php 8
php 는 8 을 설치한다. 최신 버전 설치를 위해서, remi 저장소가 필요하다.
현재 설치 가능한 php 버전 목록
```
# dnf module list php
```
remi 저장소의 php 8.2 을 enable 시키기
```
# dnf module enable php:remi-8.2
```
php 설치
```
# dnf install php
# dnf install php-mysqlnd
```
* 참고 : https://www.linuxcapable.com/ko/how-to-install-php-8-1-on-rocky-linux-8/
3) 서비스 구동
httpd
```
# systemctl enable httpd
# systemctl start httpd
```
mariadb
```
# systemctl enable mariadb
# systemctl start mariadb
```
php
```
# systemctl enable php-fpm
# systemctl start php-fpm
```
4) 방화벽 오픈
방화벽에서 웹서비스 포트 추가하고, reload 를 해 줘야 적용이 된다.
```
# firewall-cmd --permanent --add-port=80/tcp
# firewall-cmd --permanent --add-port=443/tcp
# firewall-cmd --reload
```
or
```
# firewall-cmd --permanent --add-service=http
# firewall-cmd --permanent --add-service=https
# firewall-cmd --reload
```
5. letsencrypt certbot
참고 : https://www.baragi.net/dev/8929
6. logrotate 설정
/etc/logrotate.conf 파일에서 로그로테이트 설정 변경
```
## weekly 대신에 로그파일 크기로
size 1M
## keep 9
rotate 9
## 확장자는 날짜 대신 1,2,3...
#dateext
## 압축하기로 변경
compress
```
7. sshfs 설치
CentOS 8 에서는 어렵게 설치를 했으나, 록키 9 에서는 쉽게 설치가 된다.
```
# dnf install sshfs
```
8.bind 설치
```
# dnf install bind bind-utils
```
네임서버를 활성화 하고 시작하기
```
# systemctl enable named
# systemctl start named
# systemctl status named
```
방화벽에서 열어주기
```
# firewall-cmd --permanent --add-service=dns
# firewall-cmd --reload
# firewall-cmd --list-services
```
DNS 설정 방법은 아래를 참조.
https://www.baragi.net/dev/8922
9. SELinux
참고로, 록키 리눅스 9 에서는 기본적으로 SELinux 가 disabled 되어 있다.
그래서 이 과정은 pass!
```
# sestatus
```
SELinux 에서 apache http 를 허용해 주기
```
# semanage permissive -a httpd_t
```
실행시간이 많이 걸린다. 분단위.
그외
```
# getsebool -a
# setsebool -P httpd_enable_homedirs 1
# setsebool -P httpd_unified 1
```
* 참고
https://www.baragi.net/dev/8822
https://www.baragi.net/dev/8780
https://mr.kikni.com/tip/3438
10. phpMyAdmin
DB 를 설치하지 않았다면, 여기도 pass!
1) 설치
repo 저장소에 phpMyAdmin 이 없기 때문에, 소스를 다운받아 설치해야 한다.
기본적인 설치법은 Centos 8 과 같다.
https://www.baragi.net/dev/8781
2) blowfish_secret 설정
PMA Blowfish Secret Generator
https://www.motorsportdiesel.com/tools/blowfish-salt/pma/
3) 오류해결
phpMyAdmin 을 웹브라우저로 불렀는데, blank page ( white screen ) 가 나오는 경우,
phpMyAdmin 에서 필요한 php 모듈이 전부 설치되어 있는지 확인해 보라.
참고로, 필자의 경우, php-mysqlnd 모듈이 설치되지 않아서 blank page 가 나왔는데,
이를 해결하기 위해서 몇일을 삽질했다.
* 참고
https://docs.phpmyadmin.net/en/latest/
https://vlog.tion.co.kr/phpmyadmin-%EC%84%A4%EC%B9%98-centos-8-php-7-4-yum-install/
0. 설치
설치는 가상 서버 호스팅을 이용하는 것으로 한다.
root 로그인 후 진행한다.
1. 패키지 최신버전으로 업데이트
```
# dnf list updates
# dnf -y update &
```
현재 버전을 확인해 보자.
```
# cat /etc/redhat-release
Rocky Linux release 9.2 (Blue Onyx)
```
dnf 실행시에 'Failed to set locale, defaulting to C.UTF-8' 와 같은 오류가 뜬다면, langpacks-en 을 설치해 준다.
```
# dnf install langpacks-en
```
* 참고 : https://www.baragi.net/dev/8899
2. 추가 저장소 설치
1) epel 저장소 설치 및 업데이트 확인
```
# dnf install epel-release
# dnf list updates
```
epel 저장소를 설치한 후에 dnf 명령 실행시 Killed 가 뜨거나, 원격 접속이 종료(로그아웃) 되어버린다면,
서버의 메모리가 부족한 경우이다.
이때는, 가상메모리를 512M 또는 메모리의 2배 정도 추가해 보자.
* 참고 : https://www.baragi.net/dev/8755
2) remi 저장소 설치
```
# dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm
# dnf list updates
```
* 참고 : https://unixcop.com/enable-remi-repository-rocky-linux/
remi 저장소를 설치하는 이유는, php 버전을 최신버전으로 설치하기 위해서다.
기본 저장소에는 보수적으로 약간 아래 버전까지만 올라와 있다.
아래 명령어로 확인해 볼 수 있다.
```
# dnf module list php
```
2-1. mc (Midnight Commander) 설치
```
# dnf install mc
```
3 fail2ban 설치
```
# dnf install fail2ban
# systemctl enable fail2ban
# systemctl start fail2ban
```
* 참고 : https://www.baragi.net/dev/8782
firewalld 가 실행되지 않았을 수 있으므로, 실행한다.
```
# systemctl enable firewalld
# systemctl start firewalld
```
4. APM 설치
1) 설치 가능한 패키지들 확인해 보기
```
# dnf module list httpd
# dnf module list mariadb
# dnf module list php
```
근데, 록키 리눅스 8 과는 다르게, httpd 와 mariadb 의 모듈 리스트는 없다고 나온다.
php 는 아래와 같이 설치 가능한 여러 버전들이 나온다. 록키리눅스9 기본저장소에는 php 7.* 가 없다.
```
Rocky Linux 9 - AppStream
php 8.1
Remi's Modular repository for Enterprise Linux 9 - x86_64
php remi-7.4
php remi-8.0
php remi-8.1
php remi-8.2
```
2) 설치
apache
```
# dnf install httpd
```
mariadb
```
# dnf install mariadb-server mariadb
```
php 8
php 는 8 을 설치한다. 최신 버전 설치를 위해서, remi 저장소가 필요하다.
현재 설치 가능한 php 버전 목록
```
# dnf module list php
```
remi 저장소의 php 8.2 을 enable 시키기
```
# dnf module enable php:remi-8.2
```
php 설치
```
# dnf install php
# dnf install php-mysqlnd
```
* 참고 : https://www.linuxcapable.com/ko/how-to-install-php-8-1-on-rocky-linux-8/
3) 서비스 구동
httpd
```
# systemctl enable httpd
# systemctl start httpd
```
mariadb
```
# systemctl enable mariadb
# systemctl start mariadb
```
php
```
# systemctl enable php-fpm
# systemctl start php-fpm
```
4) 방화벽 오픈
방화벽에서 웹서비스 포트 추가하고, reload 를 해 줘야 적용이 된다.
```
# firewall-cmd --permanent --add-port=80/tcp
# firewall-cmd --permanent --add-port=443/tcp
# firewall-cmd --reload
```
or
```
# firewall-cmd --permanent --add-service=http
# firewall-cmd --permanent --add-service=https
# firewall-cmd --reload
```
5. letsencrypt certbot
참고 : https://www.baragi.net/dev/8929
6. logrotate 설정
/etc/logrotate.conf 파일에서 로그로테이트 설정 변경
```
## weekly 대신에 로그파일 크기로
size 1M
## keep 9
rotate 9
## 확장자는 날짜 대신 1,2,3...
#dateext
## 압축하기로 변경
compress
```
7. sshfs 설치
CentOS 8 에서는 어렵게 설치를 했으나, 록키 9 에서는 쉽게 설치가 된다.
```
# dnf install sshfs
```
8.bind 설치
```
# dnf install bind bind-utils
```
네임서버를 활성화 하고 시작하기
```
# systemctl enable named
# systemctl start named
# systemctl status named
```
방화벽에서 열어주기
```
# firewall-cmd --permanent --add-service=dns
# firewall-cmd --reload
# firewall-cmd --list-services
```
DNS 설정 방법은 아래를 참조.
https://www.baragi.net/dev/8922
9. SELinux
참고로, 록키 리눅스 9 에서는 기본적으로 SELinux 가 disabled 되어 있다.
그래서 이 과정은 pass!
```
# sestatus
```
SELinux 에서 apache http 를 허용해 주기
```
# semanage permissive -a httpd_t
```
실행시간이 많이 걸린다. 분단위.
그외
```
# getsebool -a
# setsebool -P httpd_enable_homedirs 1
# setsebool -P httpd_unified 1
```
* 참고
https://www.baragi.net/dev/8822
https://www.baragi.net/dev/8780
https://mr.kikni.com/tip/3438
10. phpMyAdmin
DB 를 설치하지 않았다면, 여기도 pass!
1) 설치
repo 저장소에 phpMyAdmin 이 없기 때문에, 소스를 다운받아 설치해야 한다.
기본적인 설치법은 Centos 8 과 같다.
https://www.baragi.net/dev/8781
2) blowfish_secret 설정
PMA Blowfish Secret Generator
https://www.motorsportdiesel.com/tools/blowfish-salt/pma/
3) 오류해결
phpMyAdmin 을 웹브라우저로 불렀는데, blank page ( white screen ) 가 나오는 경우,
phpMyAdmin 에서 필요한 php 모듈이 전부 설치되어 있는지 확인해 보라.
참고로, 필자의 경우, php-mysqlnd 모듈이 설치되지 않아서 blank page 가 나왔는데,
이를 해결하기 위해서 몇일을 삽질했다.
* 참고
https://docs.phpmyadmin.net/en/latest/
https://vlog.tion.co.kr/phpmyadmin-%EC%84%A4%EC%B9%98-centos-8-php-7-4-yum-install/
추천0
댓글목록
등록된 댓글이 없습니다.