리눅스 아파치 서버와 DB 연결

찌끅·2024년 9월 26일

리눅스 아파치 서버와 DB 연결

1. 서버와 클라이언트 환경 설정

서버 (Linux, Apache, PHP)

  1. Apache 설치: 서버에 Apache와 PHP가 설치되어 있어야 한다.
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install apache2

입력하여 아파치를 설치한 후 아파치 상태를 확인한다.

sudo systemctl status apache2
  1. PHP 설치:
sudo apt install php libapache2-mod-php

입력후 PHP 버전 확인:

php -v

두 개의 리눅스 시스템을 연결하여 하나는 서버, 하나는 데이터베이스를 관리하려면 다음과 같은 단계를 따른다.

2. 데이터베이스 머신 설정:

  • 원하는 데이터베이스(예: MySQL, PostgreSQL)를 설치한다.
  • 데이터베이스가 해당 머신의 공인 IP 주소에서 수신하도록 설정한다.

MySQL 예시:

  1. MySQL을 설치한 후, /etc/mysql/mysql.conf.d/mysqld.cnf 파일을 편집한다.
  2. bind-address 항목을 12.0.0.1에서 데이터베이스 머신의 IP주소(예: 192.188.x.x)로 변경한다. 여기서 0.0.0.0을 넣게 되면 모든 주소에서 접근할 수 있따.
[mysqld]
bind-address = 192.168.x.x
  1. MySQL에 외부 접속 권한을 부여하려면, 데이터베이스 사용자에게 외부 IP로 접속할 수 있는 권한을 준다.
GRANT ALL PRIVILEGES ON *.* TO '사용자명'@'서버IP' IDENTIFIED BY '비밀번호';
FLUSH PRIVILEGES;

오류 발생

E212: Can't open file for writing라는 에러가 발생하였는데 파일을 수정할 권한이 없을 때 발생하는 오류였다. 파일을 수정하려면 관리자 권한이 필요하다.

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

하지만 여전히 되지 않았고

sudo find /etc/ -name 'my.cnf'

로 찾아보니 sudo vi /etc/alternatives/my.cnf라는 수정할 수 있는 파일이 있었다.
여기에

[mysqld]
bind-address = 0.0.0.0

를 넣어준 후 sudo systemctl restart mysql 명령어로 MySQL을 다시 시작했다.

php-mysql을 연결해 주려면 한 가지 단계가 더 필요하다

sudo apt install php-mysql

3. 연결 확인

웹 서버쪽에서

mysql -u root -h ip -p

로 로그인을 해본다.

확인하였더니 로그인이 잘 되고 만들어 놓았던 데이터베이스도 확인할 수 있었다.

0개의 댓글