phpmyadmin과 wordpress를 nginx에서 동작할 수 있어야한다.
mysql은 널리 쓰이는 관계형 데이터베이스 관리 시스템(RDBMS)으로 그냥 DB의 생성, 수정, 삭제하는데 쓰는 오픈소스라고 생각하자. 우리가 사용할 것은 MariaDB로 오픈소스 DB다. 명령은 mysql 인데 알맹이는 MariaDB다. MariaDB는 mysql과 뿌리가 같아 얼핏 보기에 별 차이가 없다. phpmyadmin은 mysql을 웹에서 관리할 수 있도록 도와주는 오픈소스 프로그램이다. phpmyadmin을 쓰지 않고도 mysql을 관리할 수 있지만 쓰면 일일히 sql문을 던져주지 않아도 DB를 관리할 수 있게 해준다.
터미널에서 mysql로 DB생성 phpmyadmin단순히 DB를 생성하는 작업을 한다고 생각해보자. 위의 이미지들에서 보듯 MySQL로 DB를 생성하려면 한 줄의 sql문을 작성해야한다. 반명에 phpmyadmin은 붉게 표시된 버튼을 누르고 DB명을 입력하고 생성 버튼을 클릭하면 DB를 생성할 수 있다.
이제 phpmyadmin을 container에 설치해보자.
apt-get -y install wget mariadb-server php-mysql
phpmyadmin은 apt-get으로 설치 못해서 wget을 통해서 url로 직접 받아와야 한다고 한다. wget은 웹 서버로부터 콘텐츠를 가져오는 프로그램이다. 우선 위의 명령으로 mysql과 wget을 설치한다.
wget https://files.phpmyadmin.net/phpMyAdmin/5.0.2/phpMyAdmin-5.0.2-all-languages.tar.gz
phpmyadmin의 압축파일을 받는다.
tar -xvf phpMyAdmin-5.0.2-all-languages.tar.gz mv phpMyAdmin-5.0.2-all-languages phpmyadmin mv phpmyadmin /var/www/html cp -rp var/www/html/phpmyadmin/config.sample.inc.php var/www/html/phpmyadmin/config.inc.php
압축을 해제하고 해제한 디렉토리를 서버의 root 디렉토리에 넣는다. 여기서 말하는 root 디렉토리는 서버의 index.html이 위치하는 시작점이라고 하겠다. 이곳을 기준으로 url을 받아서 해당하는 문서를 찾아 클라이언트에게 응답하게된다. nginx의 설정파일에 보면 root /var/www/html; 로 지정된 것을 볼 수 있다. 이후에 phpmyadmin의 sample설정파일명을 수정해서 설정파일로 쓰도록해준다.
vi var/www/html/phpmyadmin/config.inc.php
이름을 수정한 설정파일을 연다.
$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ $cfg['Servers'][$i]['AllowNoPassword'] = false;
위의 코드를 아래처럼 수정해 준다.
$cfg['blowfish_secret'] = '$2a$07$yOB1CqFATrrnBvfyyaZxzu8UJ0rkiBbqZRqB3lX5IOJ5nAJ68y8gi'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ $cfg['Servers'][$i]['AllowNoPassword'] = true;
blowfish_secret 의 입력값은 blowfish 해시생성기에서 적당히 생성한 hash문자열이다. 너무 짧으면(32자 권장 by docs) 에러가 난다고한다. AllowNoPassword의 경우 phpmyadmin을 비밀번호 입력 없이 사용할 수 있게 해준다. 다음으로 mysql을 사용할 수 있도록 계정과 권한을 설정해준다.
service mysql start mysql
mysql을 service로 백그라운드에서 동작시키고 mysql(설정 및 DB를 직접 관리하기 위한)을 실행한다.
GRANT ALL PRIVILEGES ON wordpress.* TO 'root'@'localhost' WITH GRANT OPTION; update mysql.user set plugin='' where user='root'; FLUSH PRIVILEGES;
짧게 요약하면 root 라는 계정을 생성하고 wordpress DB에 대한 권한을 설정해주는 명령이다. 직접 DB를 사용할 프로그램은 wordpress이니 wordpress를 위한 DB도 하나 만들어준다.
CREATE DATABASE wordpress;
브라우저의 주소창에 "localhost/phpmyadmin"을 입력해서 로그인 화면이뜨는지 보자.
mysql로 생성한 root 계정으로 로그인해준다. 위에서 비밀번호 입력 없이도 사용할 수 있게 설정했으니 root만 사용자명에 입력하고 실행한다.
wordpress를 위한 DB생성도 잘 됐다.
wordpress는 블로그 호스팅을 위한 온갖 기능들을 제공한다. 본인의 블로그도 wordpress를 사용하고 있다. phpmyadmin과 마찬가지로 wget으로 직접 받아 온다.
wget https://wordpress.org/latest.tar.gz tar -xvf latest.tar.gz mv wordpress/ var/www/html/ chown -R www-data:www-data /var/www/html/wordpress
받은 압축파일을 압축해제하고 서버의 root 디렉토리에 옮기고 wordpress의 소유자와 그룹을 변경해준다. "localhost/wordpress" 로 wordpress에 들어가서 블로그를 만들어보자.
한국어를 선택하고 계속을 클릭해준다. 설치시작을 클릭!우리가 생성한 root 계정, 암호는 없이 전송 해준다! 아주 좋다고한다. 설치실행을 누르고 블로그정보를 작성한다. 여기서 암호를 적당히 외울 수 있게 입력해줘야 로그인해 볼 수 있다.
사이트제목, 사용자명, 암호를 적당히 입력하되 사용자명과 암호는 이후 로그인에서 사용하니 외우거나 기록해두도록하자. 비밀번호 강도가 약하면 '취약한 암호 사용 확인'란을 체크해줘야한다. 이메일 주소까지 적당히 입력하고 설치하기를 한다. 이후 로그인하기를 클릭하고 방금 작성한 사용자명과 암호를 입력하고 로그인한다.
블로그관리화면을 볼 수 있다. 다시 localhost/phpmyadmin으로 돌아가면 그 전에는 비어 있던 wordpress DB에 이것저것 기록된 것을 확인할 수 있다.