MySQL에서 MariaDB로 전환했더니 체감될 만큼의 속도 향상이 있었습니다. 그래서 아파치도 Nginx로 교체하고 싶어졌습니다.
사실 Apache만 지우고 엔진엑스를 설치하면서 아파치-PHP 연동모듈인 libapache2-mod-php7.2 패키지도 Nginx-PHP 연동모듈인 php-fpm으로만 교체하는 식으로 대응하는 게 제일 효율적일텐데, 포스팅 소재 확보를 위해(ㅠㅠ) APM 구성요소들을 전부 삭제하고 LEMP를 재구성하는 과정 전부를 정리하려 합니다.
그러니까 아파치만 엔진액스로 바꾸실 분들은 이 글에서 Apache2 및 관련 패키지들을 지우는 과정만 뽑아서 보신 다음 Nginx 설치 과정을 검색해보면 되겠습니다(시간이 지나면 제 블로그에도 정리되어 올라오겠지요.).
1. phpMyAdmin 삭제
php와 DB를 베이스로 해서 돌아가는 프로그램이니, MariaDB를 지우기 전에 먼저 지우는 게 깔끔하겠죠?
▲ dpkg -l | grep phpmyadmin
라고 입력해서 phpmyadmin 패키지가 있는 것을 확인한 다음
sudo apt-get purge phpmyadmin
라고 입력해서 phpmyadmin 패키지를 지웁니다. 계속하겠냐고 물으면 y를 누르면 되겠죠?
▲ 이후 sudo apt autoremove --purge 라고 입력해서 남아있는 의존성 패키지들을 지웁니다.
▲ /var/log/dbconfig-common/ 디렉토리가 비어 있지 않아서 안 지웠다네요? 해당 디렉토리를 조회해보니 로그파일밖에 없길래 지워버려도 문제가 생기지 않을 것으로 판단하여
sudo rm -rf /var/log/dbconfig-common/
라고 쳐서 지웠습니다.
phpMyAdmin 삭제 완료.
2. MariaDB 삭제
사용하던 DB는 백업해두세요.
▲ dpkg -l | grep mariadb
라고 쳐서 설치된 mariadb 관련 패키지들을 확인해보니... 복잡한 게 많네요.
▲ sudo apt-get purge mariadb*
이라고 패키지명 옆에 *을 붙여서 mariadb라고 이름이 붙은 것들을 한꺼번에 삭제 시도합니다.
▲ 마리아DB를 업그레이드할 계획이 있다면 DB 데이터를 유지하는 것이 맞겠지만, 저는 깔끔하게 제거하는 것이 목적이라 <예>를 선택했습니다.
▲ /etc/mysql/mariadb.conf.d 디렉토리 잔재가 남아있음을 기억.
▲ 이후 sudo apt autoremove --purge 라고 입력해서 남아있는 의존성 패키지들을 지웁니다.
MariaDB가 MySQL에서 파생되어 그런지 mysql 글씨가 눈에 띄네요. 기억.
▲ /etc/mysql 디렉토리도 남았다네요. 기억.
▲ dpkg -l | grep mysql 로 mysql이 붙은 패키지들을 검색.
이후 sudo apt-get purge 블라블라~ 로 해당 패키지들을 지웁니다.
(PHP-MySQL 연동 모듈인 것 같네요.)
▲ 기억해뒀던 /etc/mysql 디렉토리와 /etc/mysql/mariadb.conf.d 디렉토리에 뭐가 있나 살펴봤더니, 별 게 없네요. sudo rm -rf /etc/mysql 이라고 쳐서 두 찌꺼기 디렉토리를 한 번에 삭제했습니다.
▲ app-install 관련 파일들은 우분투 소프트웨어 센터랑 관련 있는 것 같으니 남겨두고, 이제 MariaDB 삭제 작업이 어느정도 끝난 것 같은데...
위 스샷에서 /etc/apparmor.d/cache/usr.sbin.mysqld 파일이 보이네요?
[우분투 18.04] MariaDB apparmor 충돌 문제 해결기
▲ 위 글에서 조치했던 것들 중에 있었기 때문에 익숙한데. 그래서
sudo rm /etc/apparmor.d/cache/usr.sbin.mysqld
라고 입력해서 삭제.
그리고 위 스크린샷을 보면 /etc/systemd/system 디렉토리에 mysql.service 같은 파일들이 있잖아요? 우분투 부팅할 때 실행되는 서비스들 중에서 mysql에 해당하는 부분 같은데, 속성을 살펴보면 심볼릭링크인데 MariaDB 지우면서 링크가 깨졌다고 나올 겁 겁니다. 그래서...
▲ sudo find -L /etc/systemd/ -type l -lname '*' -delete
라고 입력해서 /etc/systemd/ 디렉토리(+하위경로)의 깨진 심볼릭링크 파일들을 삭제해줍니다.
(삭제 전에 입력했던 명령어는 깨진 심볼릭링크를 찾는 명령어임.)
/etc/systemd/system/ 경로와 /var/lib/systemd/deb-systemd-helper-enabled/ 경로, /var/lib/systemd/deb-systemd-helper-enabled/multi-user.target.wants/ 경로가 관련이 있는지 서비스 파일들이 중복된 것들이 많았는데, /var/lib/systemd/ 디렉토리 내의 서비스 파일들은 혹시라도 잘못될까 봐 건들지 않았습니다. 관련 경로 역할 잘 아시는 분은 이 곳 파일들 지워도 되는지 피드백 좀 해주세요. 본문에 반영하겠습니다.
( /var/lib/systemd/deb-systemd-helper-enabled/mysql.service
/var/lib/systemd/deb-systemd-helper-enabled/mysqld.service
/var/lib/systemd/deb-systemd-helper-enabled/mariadb.service.dsh-also
/var/lib/systemd/deb-systemd-helper-enabled/multi-user.target.wants/mariadb.service )
MariaDB 삭제는 이쯤에서 마무리.
3. PHP 삭제
Apache - PHP - Mysql(MariaDB) 에서 PHP가 양쪽을 연결하는 역할을 하므로 PHP를 먼저 지웠어야 하지 않나 싶은데, 이미 엎지른 물이니까(ㅠㅠ) PHP 제거를 진행하겠습니다.
▲ 의존성에 문제가 없다면
sudo apt-get purge php
sudo apt autoremove --purge
명령어로 PHP 제거가 끝납니다. libapache2-mod-php 같은 아파치-PHP 연동모듈까지 알아서 지워지네요.
▲ 경고 뜨는 경로는 기억해뒀다가 수동으로 내용 살펴보고 지워줘야 하겠고요.
▲ 그런데 삭제 이후에도 dpkg 명령어로 php 관련 패키지들을 찾아봤을 때 이렇게 뭐가 나온다면...
sudo apt-get purge php*
sudo apt autoremove --purge
두 명령어로 잔여 PHP 패키지들을 지워줍니다.
sudo rm -rf /etc/php
sudo rm -rf /var/lib/php
두 명령어로 잔여 PHP 디렉토리도 지워줍니다.
/etc/apparmor.d/abstractions/ 경로에 있는 php 관련 권한 설정 파일들은 지워도 되는지 모르겠습니다. 좀 알려주세요.
PHP 삭제는 이쯤에서 마무리.
4. ModSecurity 삭제
아파치 설치 후에 보안을 위해 modsecurity를 설치했었습니다. Nginx로 전환하면 (엔진액스에서도 모드시큐리티가 잘 돌아가기 전까지) 이걸 못 쓰게 되는 게 아쉽긴 하네요. 아무튼 아파치 삭제 전에 ModSecurity 지우도록 하겠습니다.
▲ sudo apt-get purge libapache2-mod-security2
sudo apt autoremove --purge
라고 치면 코어룰셋(crs)까지 지워질 겁니다.
5. 아파치(Apache2) 삭제
Nginx 설치할 때 아파치 설정파일 구조 보면서 엔진엑스 설정파일 구성하시려면 아파치 설정파일 백업해 두고(/etc/apache2/apache2.conf 파일, /etc/apache2/sites-enabled/ 경로에 심볼릭링크 걸린 /etc/apache2/sites-available/ 경로의 원본 파일 등), 필요하다면 웹문서 데이터도 백업해둡니다(예 : /var/www/ )
터미널 창에서
sudo apt-get purge apache2*
sudo apt autoremove --purge
라고 쳐서 아파치 패키지들을 지우고,
sudo rm -rf /var/lib/apache2/
sudo rm -rf /var/www/
라고 쳐서 찌꺼기 디렉토리와 웹문서 디렉토리를 지웁니다.
아파치 삭제 끝.
LEMP(Linux+Nginx+MariaDB+PHP) 설치 과정 정리 글에서 뵙겠습니다.
'도움이 되는 Tip > 리눅스&워드프레스' 카테고리의 다른 글
[우분투 18.04 데스크톱] LEMP : 엔진엑스(Nginx) 설치 과정 정리 (4) | 2018.11.29 |
---|---|
[우분투 18.04 데스크톱] 패키지 의존성 깨졌을 때 대처했던 경험 (0) | 2018.11.22 |
[우분투18.04] 마우스/터치패드 휠 스크롤 방향 변경 방법 (0) | 2018.11.16 |