웹 인터페이스를 통해 데이터베이스 작업을 하려면 phpMyAdmin이라는 웹 편집기가 있습니다. 이 도구는 MySQL/MariaDB 데이터베이스에 연결하여 기존 데이터베이스를 표시하고, 새 데이터베이스를 생성하고, 테이블의 데이터를 편집할 수 있도록 해줍니다. 일반적으로 모든 것은 mysql 콘솔에서 수행할 수 있는 것과 동일하지만 특히 데이터를 자주 작업할 때 훨씬 더 편리하고 명확합니다. LAMP가 사전 설치된 Ubuntu 20.04에 phpMyAdmin을 설치하는 방법을 살펴보겠습니다.
모든 설정은 루트 사용자에서 수행합니다. 일반 사용자를 사용하는 경우 명령 앞에 sudo를 추가합니다.
1. 필요한 구성요소와 데이터베이스 편집기 자체를 설치해 보겠습니다
apt install php-mbstring
apt install phpmyadmin
설치 과정에서 사용자는 편집기를 구성해야 하는 웹 서버를 선택하라는 메시지를 받게 됩니다
- [*]apache2
- []lighttpd
우리의 경우 서버에는 LAMP가 사전 설치되어 있으며 apache2를 선택합니다.
다음으로 데이터베이스 편집기 자체에 대한 데이터베이스를 생성하라는 메시지가 표시됩니다. 여기에 편집기의 사용자 설정 및 작업에 필요한 기타 데이터가 저장됩니다. 여기에서 예 옵션을 선택하면 다음 창에서 phpmyadmin 사용자의 비밀번호를 생성하라는 메시지가 표시됩니다. 입력 오류를 방지하려면 비밀번호를 입력하고 다음 창에서 확인하세요.
설치 구성을 적용하기 위해 웹 서비스를 다시 시작하겠습니다.
/etc/init.d/apache2 restart
/etc/init.d/php7.4-fpm restart
2. 기본 설정
작업을 확인하려면 http://server-ip/phpmyadmin 링크로 이동하세요. 모든 데이터베이스의 로그인 및 비밀번호를 입력할 수 있습니다. 예를 들어 방금 생성한 데이터베이스, phpmyadmin 로그인 및 설정한 비밀번호를 입력할 수 있습니다. 때로는 편의상 한 사용자에게 여러 데이터베이스를 표시하기 위해 동시에 작업해야 하는 경우도 있습니다. 이를 생성하고 루트 사용자의 권한을 위임해야 합니다.
mysql -u root -p
CREATE USER 'alldbuser'@'localhost' IDENTIFIED BY 'пароль';
GRANT ALL PRIVILEGES ON . TO 'alldbuser'@'localhost';
FLUSH PRIVILEGES;
이제 alldbuser 사용자로 로그인하면 이 서버에 생성된 모든 데이터베이스가 표시됩니다.
3. 보안 설정
비밀번호 추측 및 잠재적인 취약점으로부터 데이터베이스 편집기를 보호하기 위해 비서버 수준에서 인증을 추가할 예정입니다.
nano /usr/share/phpmyadmin/.htaccess
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
사용자를 추가하고 해당 사용자의 비밀번호를 지정해 보겠습니다
htpasswd -c /etc/phpmyadmin/.htpasswd webdb-user
웹 서버 수준에서 설정을 적용하려면 /etc/apache2/apache2.conf 파일에서 전역 설정을 변경해야 합니다. AllowOverride 값은 All이었고 설정 블록은 다음과 같아야 합니다:
AllowOverride All
Require all granted
웹 서버에 따라 서비스를 다시 시작하십시오:
/etc/init.d/apache2 restart
/etc/init.d/php7.4-fpm restart
이제 http://server-ip/phpmyadmin 링크를 클릭하면 로그인과 비밀번호를 입력하는 창이 나타납니다. 우리의 경우 로그인은 webdb-user가 됩니다. 알 수 없는 IP 주소에서 비밀번호를 입력하라는 메시지가 표시되지 않고 사용자가 금지 메시지를 받도록 구성을 추가하고 파일에 줄을 추가하고 고정 IP 주소를 지정할 수도 있습니다:
nano /usr/share/phpmyadmin/.htaccess
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
Allow from 77.88.99.11 22.33.44.55
설정이 완료되었습니다. 데이터 가로채기를 방지하려면 SSL 인증서와 함께 https 프로토콜만 사용하여 비밀번호를 입력하는 것이 좋습니다.