이 글에서는 PhpMyAdmin의 최신 버전을 Apache 웹 서버와 함께 RHEL 기반 배포판에 설치하는 단계별 과정을 안내해 드리겠습니다. 이 과정은 CentOS Stream, Fedora, Rocky Linux, Alma Linux 등에서 적용할 수 있습니다.
목차
PhpMyAdmin이 무엇인가요?
PhpMyAdmin은 인기있고 강력한 웹기반 데이터베이스 관리 도구로, 최신 버전을 사용하면 최신 기능과 보안 강화 사항에 대한 접근이 보장됩니다. 이 가이드를 마칠 때까지 당신은 MySQL 또는 MariaDB 데이터베이스를 관리할 수 있는 능력을 갖추게 될 것입니다. PhpMyAdmin을 사용하여.
사전 준비
시작하기 전에 다음이 준비되어 있는지 확인하세요.
- RHEL, CentOS Stream, Fedora, Rocky Linux, 또는 AlmaLinux 시스템에 대한 접근.
- 루트 사용자로 로그인할 수 있거나 소프트웨어를 설치할 수 있는 sudo 권한이 있는지 확인하세요.
- 기존의 LAMP 스택, 이는 Apache, MySQL/MariaDB, PHP를 포함합니다. LAMP가 없다면 다음 단계를 따라 설정할 수 있습니다.
1단계: 시스템 업데이트
먼저 다음 dnf 명령어를 실행하여 시스템이 최신 상태인지 확인하는 것이 중요합니다.
sudo dnf update

이를 통해 시스템의 모든 패키지를 최신 버전으로 업데이트할 수 있습니다.
2단계: Apache 웹 서버 설치
PhpMyAdmin은 웹 기반 도구이므로, 다음 명령어를 사용하여 Apache 웹 서버를 설치해야 합니다.
sudo dnf install httpd

설치가 완료되면 Apache 서비스를 시작하고 부팅 시 자동으로 시작하도록 설정합니다.
sudo systemctl start httpd sudo systemctl enable httpd
3단계: MariaDB 또는 MySQL 설치
데이터베이스 서버도 필요합니다. MariaDB 또는 MySQL 중 선택하여 설치할 수 있지만, 이 예제에서는 MariaDB를 사용하겠습니다.
sudo dnf install mariadb-server

설치가 완료되면 MariaDB 서비스를 시작하고 부팅 시 자동으로 시작하도록 설정합니다.
sudo systemctl start mariadb sudo systemctl enable mariadb
다음으로, MariaDB 설치를 보안하기 위해 스크립트를 실행하세요. 이 스크립트는 루트 사용자의 암호를 입력하도록 요청하고, 원격 루트 로그인을 금지하며, 익명 사용자를 제거합니다. 또한 기본적으로 익명 사용자가 액세스할 수 있는 테스트 데이터베이스도 제거합니다.
sudo mysql_secure_installation

4단계: PHP 설치
PhpMyAdmin는 PHP로 구현되어 있으므로 PHP와 필요한 일부 확장 프로그램을 다음 명령어를 사용하여 설치해야 합니다.
sudo dnf install php php-mysqlnd php-json php-mbstring

5단계: PhpMyAdmin 설치
이제 다음과 같이 웹 서버의 문서 루트 디렉토리 /var/www/html로 이동하여 PhpMyAdmin을 리눅스 시스템에 설치해 보겠습니다.
cd /var/www/html
다음으로, 다음 wget 명령어를 사용하여 다음과 같이 PhpMyAdmin의 최신 버전을 다운로드하세요.
sudo wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz
다운로드가 완료되면 다운로드한 아카이브를 추출하고 편의를 위해 디렉토리 이름을 변경하세요.
sudo tar -xvzf phpMyAdmin-latest-all-languages.tar.gz sudo mv phpMyAdmin-*/ phpmyadmin
PhpMyAdmin에 대한 구성 파일을 생성하세요.
sudo cp /var/www/html/phpmyadmin/config.sample.inc.php /var/www/html/phpmyadmin/config.inc.php
구성 파일을 편집하세요:
sudo nano /var/www/html/phpmyadmin/config.inc.php
다음 줄을 찾아 자신의 blowfish_secret을 설정하세요:
$cfg['blowfish_secret'] = 'your_secret';
파일을 저장하고 종료하세요.
6단계: firewalld에서 Apache 포트 열기
기본적으로 아파치는 일반적으로 80 및 443 포트를 각각 HTTP 및 HTTPS에 사용합니다. 서버의 PhpMyAdmin에 대한 액세스를 허용하기 위해 Apache 포트를 열려면 다음을 실행하십시오:
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent sudo firewall-cmd --zone=public --add-port=443/tcp --permanent sudo firewall-cmd --reload
이러한 명령은 지정된 포트에 대한 인바운드 트래픽을 허용하는 규칙을 추가하고 방화벽을 다시 로드하여 변경 사항을 적용합니다.
7단계: Apache 웹 서버 다시 시작
마지막으로 변경 사항을 적용하려면 Apache를 다시 시작하십시오:
sudo systemctl restart httpd
8단계: PhpMyAdmin 액세스
이제 웹 브라우저를 통해 URL에서 서버의 IP 주소 또는 도메인 이름 뒤에 “phpmyadmin”을 추가하여 PhpMyAdmin에 액세스할 수 있습니다:
http://your_server_ip/phpmyadmin
MySQL 또는 MariaDB 자격 증명을 사용하여 로그인하십시오.


9단계: PhpMyAdmin에서 외부 액세스 허용
PhpMyAdmin 구성 파일을 엽니다.
sudo vi /etc/httpd/conf/httpd.conf
<Directory "/var/www/html">
섹션 또는 PhpMyAdmin가 구성된 섹션을 찾아 Require
지시문을 업데이트하여 모든 IP 주소가 PhpMyAdmin에 액세스할 수 있도록 합니다.
<Directory "/var/www/html/phpmyadmin"> ... Require all granted ... </Directory>
위의 구성은 모든 IP 주소에서 액세스를 허용하지만, 특정 IP에 대한 액세스를 제한하려면 Require all granted
를 Require ip your_ip
로 교체하십시오.
변경 사항을 적용하려면 Apache를 다시 시작하십시오.
sudo systemctl restart httpd
이제 서버의 IP 주소 또는 도메인을 사용하여 PhpMyAdmin에 외부 세계에서 액세스할 수 있어야 합니다.
http://your_server_ip/phpmyadmin
외부 세계에서 PhpMyAdmin에 액세스를 열리는 것은 보안 위험을 초래할 수 있다는 것을 기억하십시오. 강력한 인증 메커니즘을 구현하고 HTTPS를 사용하여 암호화된 통신을 고려하십시오. 또한 가능하면 신뢰할 수 있는 IP 주소에만 액세스를 제한하거나 PhpMyAdmin 로그인 URL 보안을 고려하십시오.
phpMyAdmin 로그인 URL 변경
phpMyAdmin의 기본 로그인 URL은 예측 가능하고 악의적인 요소가 취약성을 악용하려고 시도하는 데 자주 사용됩니다. 로그인 URL을 변경하면 데이터베이스 관리 인터페이스에 무단 액세스하는 것이 더 어려워집니다.
이렇게 하려면 /etc/httpd/conf.d/phpMyAdmin.conf 구성 파일을 만듭니다.
vi /etc/httpd/conf.d/phpMyAdmin.conf
다음으로 다음 구성을 추가하십시오.
#Alias /phpMyAdmin /var/www/html/phpmyadmin Alias /my /var/www/html/phpmyadmin <Directory /var/www/htm/lphpmyadmin> AddDefaultCharset UTF-8 <IfModule mod_authz_core.c> # Apache 2.4 <RequireAny> Require all granted # Additional IP or hostname-based access control can be added here </RequireAny> </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from All Allow from 127.0.0.1 Allow from ::1 # Additional IP or hostname-based access control can be added here </IfModule> </Directory>
원하는 사용자 정의 로그인 URL로 /my
를 교체하십시오. 변경 사항을 저장하고 텍스트 편집기를 종료하십시오.
구성 파일을 변경한 후 Apache를 다시 시작하여 변경 사항을 적용하세요:
systemctl restart httpd
웹 브라우저를 열고 새로운 phpMyAdmin 로그인 URL로 이동하세요.
http://yourdomain.com/my/

phpMyAdmin에 대한 SSL 설정
Apache 웹 서버와 phpMyAdmin 사이의 통신을 보안하는 것은 로그인 자격 증명 및 데이터베이스 콘텐츠와 같은 민감한 정보를 보호하는 데 중요합니다. 이를 달성하는 한 가지 효과적인 방법은 SSL (Secure Socket Layer)을 phpMyAdmin에 대해 Apache 웹 서버에 구성하는 것입니다.
이렇게 하려면 먼저 서버에 mod_ssl 모듈을 설치하세요.
yum install httpd mod_ssl openssl
다음으로, 인증서를 저장할 디렉토리를 생성하고 다음과 같이 자체 서명된 SSL 인증서와 개인 키를 생성하세요.
mkdir /etc/httpd/ssl openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/apache.key -out /etc/httpd/ssl/apache.crt

SSL 인증서와 키를 생성한 후 Apache SSL 구성 파일을 열어보세요.
vi /etc/httpd/conf.d/ssl.conf
다음으로 구성 파일에 다음 줄을 추가하세요.
SSLEngine on SSLCertificateFile /etc/httpd/ssl/apache.crt SSLCertificateKeyFile /etc/httpd/ssl/apache.key
변경 사항을 저장하고 Apache 웹 서버를 다시 시작하세요.
systemctl restart httpd
이제 phpMyAdmin 구성 파일을 열어보세요.
vi /var/www/html/phpmyadmin/config.inc.php
phpMyAdmin에 대해 SSL을 강제로 적용하기 위해 다음 줄을 추가하세요.
$cfg['ForceSSL'] = true;
변경 사항을 저장하고 텍스트 편집기를 종료하세요.
마지막으로 웹 브라우저를 열고 다음 URL로 이동하여 안전한 SSL 연결을 통해 phpMyAdmin에 액세스하세요.
https://yourdomain.com/my/
자체 서명된 인증서를 사용하고 있기 때문에 보안 연결을 나타내는 메시지가 나타나는 것에 유의하시기 바랍니다. 계속하려면 “고급”을 클릭하고 보안 예외를 확인하십시오.


결론
축하드립니다! 여러분은 RHEL, CentOS Stream, Rocky Linux 또는 AlmaLinux 시스템에 Apache와 함께 PhpMyAdmin을 성공적으로 설치했습니다. 이 웹 기반 도구는 데이터베이스 관리를 단순화하여 데이터베이스 생성, 쿼리 및 데이터 관리와 같은 작업을 쉽게 만들어줍니다.
Source:
https://www.tecmint.com/install-phpmyadmin-rhel-centos-fedora-linux/