Ubuntu 24 DB 서버와 Rocky 9 웹 서버 연동하기 (Apache & MariaDB 설정 가이드)
1. Rocky 9 서버에 Apache 설치 및 설정
Rocky 9 서버에서 Apache 웹 서버를 설치하고 설정하는 과정입니다. Apache는 HTTP 웹 서버로, 웹 사이트를 호스팅하는 데 사용됩니다.
Apache 설치
sudo dnf install -y httpd bash-completion
- httpd: Apache 웹 서버 패키지.
- bash-completion: 명령어 자동 완성 기능을 제공하여 편리하게 사용할 수 있습니다.
Apache 서비스 시작 및 상태 확인
sudo systemctl start httpd sudo systemctl status httpd
- start: Apache 웹 서버를 시작합니다.
- status: Apache 서비스 상태를 확인합니다.
Apache 서비스 자동 시작 설정
서버가 재부팅될 때 Apache가 자동으로 시작되도록 설정합니다.
sudo systemctl enable httpd
방화벽 설정
Rocky 9 서버에는 기본적으로 방화벽이 설정되어 있어 외부에서 HTTP 트래픽을 수신하려면 방화벽 규칙을 수정해야 합니다.
HTTP 서비스 허용
sudo firewall-cmd --permanent --add-service=http
80번 포트(TCP) 허용
sudo firewall-cmd --permanent --add-port=80/tcp
방화벽 규칙 적용
sudo firewall-cmd --reload
현재 방화벽 규칙 확인
sudo firewall-cmd --list-all
💡 중요: 방화벽 설정을 반드시 확인하여 HTTP 및 80번 포트가 허용되었는지 확인하세요. 이 과정으로 Apache 웹 서버가 외부에서 정상적으로 접근 가능해집니다.
2. 웹 사이트 파일 압축 및 전송
웹 사이트 파일을 Rocky 9 서버로 전송하기 전에 압축하고, 안전하게 전송하는 방법입니다.
웹 사이트 파일 압축
tar -cvf web-site.tar index.html error.html images
- tar 명령어를 통해 여러 파일들을 하나의 압축 파일로 만듭니다.
압축된 파일 확인
tar -tf web-site.tar
파일 전송 (Secure Copy, SCP 사용)
scp 명령어를 사용해 Ubuntu 서버에서 압축한 파일을 Rocky 9 서버로 전송합니다.
scp -i .ssh/id_rsa web-site.tar hyungs@Rocky9_IP:/home/hyungs/
scp: SSH 기반으로 안전하게 파일을 전송하는 명령어입니다.
- -i .ssh/id_rsa: SSH 키 인증을 사용하여 전송합니다.
Rocky 9 서버에서 파일 압축 해제
Rocky 9 서버에서 Apache 웹 서버의 기본 경로인 /var/www/html/에 압축을 해제합니다.
tar 패키지 설치
sudo dnf install -y tar
압축 해제
sudo tar -xvf web-site.tar -C /var/www/html/ --no-same-owner
위 명령어로 파일이 웹 서버 디렉토리에 정상적으로 복사됩니다.
3. Ubuntu 24에서 MariaDB 외부 접근 허용
Ubuntu 서버에서 MariaDB가 외부에서 접근 가능하도록 설정하는 과정입니다.
MariaDB 설정 파일 수정
sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf
- bind-address = 127.0.0.1 줄을 찾아 주석 처리하거나 0.0.0.0으로 변경합니다. 이는 모든 IP에서 접근을 허용한다는 의미입니다.
💡 중요: bind-address 설정을 제대로 수정하지 않으면 외부에서 MariaDB로의 연결이 차단될 수 있습니다.
MariaDB 외부 접근을 허용할 사용자 생성
sudo mysql -u root -p
비밀번호를 입력한 후, 다음과 같이 명령어를 실행합니다.
CREATE USER '사용자이름'@'%' IDENTIFIED BY '비밀번호'; CREATE DATABASE IF NOT EXISTS 데이터베이스이름; GRANT ALL PRIVILEGES ON 데이터베이스이름.* TO '사용자이름'@'%'; FLUSH PRIVILEGES;
- %: 모든 IP에서 접속을 허용하는 설정입니다.
- 데이터베이스와 사용자를 정확하게 생성하고, 권한을 부여해야 외부에서 접근이 가능합니다.
MariaDB 서비스 재시작
sudo systemctl restart mariadb
⚠️ 주의: 설정을 변경한 후 반드시 MariaDB 서비스를 재시작해야 적용됩니다.
4. Rocky 9에서 MariaDB 접근
Rocky 9 웹 서버에서 Ubuntu DB 서버의 MariaDB에 연결하려면 다음 명령어를 사용합니다.
mysql -h "Ubuntu_IP" -u 사용자아이디 -p
비밀번호를 입력하면 Ubuntu 서버의 MariaDB에 정상적으로 연결할 수 있습니다.
5. SELinux 설정 수정 및 방화벽 관리
SELinux 설정 확인
Apache 웹 서버에서 파일 접근이 제한되는 경우, SELinux 설정을 확인하고 필요 시 비활성화할 수 있습니다.
sudo sestatus
- enabled 상태라면, Apache 웹 서버가 파일에 접근하는 데 문제가 생길 수 있습니다.
SELinux 비활성화
설정 파일을 열어 SELinux를 비활성화합니다.
sudo vi /etc/sysconfig/selinux
- SELINUX=enforcing을 찾아 SELINUX=disabled로 수정합니다.
서버 재부팅
SELinux 설정을 적용하려면 서버를 재부팅해야 합니다.
sudo reboot
💡 SELinux가 비활성화되지 않으면, Apache 웹 서버가 파일에 접근하지 못할 수 있으니 설정을 반드시 확인하세요.