아파치 설치 및 Maria DB연동(Linux)

리눅스 서버에 아파치 설치 및 Maria DB를 연동하는 방법에 대해서 간단하게 알려볼려고 합니다.

단순하게 php 파일을 활용한 DB 연결 체크로써 이 단계 이후 포스팅에서는 간단하게 APM 구조에서 웹페이지를 만들겠습니다.


1. Apache(httpd) 설치 및 설정

Apache 설치

모든 과정은 root 권한으로 실행되니 참고 해주시면 됩니다.

root 가 불가능한 경우 sudo 등을 활용하여 작업을 진행합니다.

아파치 패키지 설치 및 서비스 시작을 합니다. status 상태 active 확인을 합니다.

# Apache 설치
dnf install httpd -y

# Apache 서비스 시작
systemctl start httpd

# 시스템 부팅 시 자동 시작 설정
systemctl enable httpd

# 상태 확인
systemctl status httpd

방화벽 설정

http, https 포트인 80,443을 리눅스 서버 방화벽에서 오픈 및 재실행

# HTTP(80) 포트 개방
firewall-cmd --permanent --add-service=http

# HTTPS(443) 포트 개방 (필요한 경우)
firewall-cmd --permanent --add-service=https

# 방화벽 설정 reload
firewall-cmd --reload

2. MariaDB 설치 및 설정

MariaDB 설치

아파치 설치와 동일하게 MariaDB 설치 및 서비스 시작을 하여 status 상태가 정상인지 확인합니다.

# MariaDB 설치
dnf install mariadb-server mariadb -y

# MariaDB 서비스 시작
systemctl start mariadb

# 시스템 부팅 시 자동 시작 설정
systemctl enable mariadb

# 상태 확인
systemctl status mariadb

MariaDB 초기 보안 설정

mysql_secure_installation 설정의 경우 하단 글을 참고해주세요.

# 보안 설정 실행
mysql_secure_installation

3. MariaDB 사용자 생성 및 권한 설정 방법

MariaDB 접속

디비 보안 설정이 완료되면 php에서 사용할 데이터베이스 사용자 생성 및 설정을 진행합니다.

mysql -u root -p

your_username -> 사용자 이름 지정

your_password -> 사용자 패스워드 지정

CREATE USER 'your_username'@'localhost' IDENTIFIED BY 'your_password';

데이터베이스 생성 (your_database_name -> 데이터 베이스 이름 지정)

CREATE DATABASE your_database_name;

여기까지 완료가 되시면 만드신 계정에 대한 권한을 부여합니다.

(your_database_name -> 데이터베이스 이름 지정, your_username -> 이름 지정)

GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_username'@'localhost';
FLUSH PRIVILEGES;

4. PHP 설치 (Apache와 MariaDB 연동을 위해)

php 패키지 설치 및 재실행 진행.

# PHP 및 필요한 모듈 설치
dnf install php php-mysqlnd php-json php-gd php-xml -y

# Apache 재시작
systemctl restart httpd
아파치 재실행

5. 연동 테스트

테스트용 PHP 파일 생성

테스트용 php 파일을 생성 후 예시 처럼 파일 내용 작성

데이터베이스 연동 확인 용 php파일 생성
nano /var/www/html/test.php

<?php
$servername = "localhost";
$username = "your_name";
$password = "your_password";  // 설정한 비밀번호
$dbname = "testdb";          // 수정된 데이터베이스 이름

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "MariaDB 연결 성공!";
} catch(PDOException $e) {
    echo "연결 실패: " . $e->getMessage();
}
?>

이후 보안을 위해 파일 권한 변경 진행

파일 보안 설정
# 웹 디렉토리 권한 설정
sudo chown -R apache:apache /var/www/html/
sudo chmod -R 755 /var/www/html/

chown -R apache:apache /var/www/html/

chown : 파일/디렉토리의 소유자를 변경

-R : 하위 디렉토리와 파일들에도 재귀적으로 적용

apache:apache: 소유자와 그룹을 apache로 설정

(Apache 웹 서버가 필요한 파일에만 접근 가능)

chmod -R 755 /var/www/html/

명령어 설명

chmod : 파일/디렉토리의 권한을 변경

-R : 하위 디렉토리와 파일들에도 재귀적으로 적용

755 : 권한 설정 값소유자(7): 읽기(4) + 쓰기(2) + 실행(1)그룹(5): 읽기(4) + 실행(1)기타(5): 읽기(4) + 실행(1)

( 웹 서버만 파일 수정 가능, 다른 사용자는 읽기만 가능, 웹 페이지 표시를 위한 읽기 권한, 불필요한 쓰기 권한 제한 )


여기까지 완료가 되신 분들은 웹 브라우저 실행 후

http://your_server_ip/test.php -> 리눅스 서버의 IP입력 후 아래 사진 처럼 정상 접근이 되는지 확인.

데이터베이스 아파치 연동 성공

By Low ahn

리눅스를 처음 접하시는 분들은 위한 다양한 리눅스 정보를 공유합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다