MySQL에서 MariaDB로 전환했더니 체감될 만큼의 속도 향상이 있었습니다. 그래서 아파치도 Nginx로 교체하고 싶어졌습니다.

사실 Apache만 지우고 엔진엑스를 설치하면서 아파치-PHP 연동모듈인 libapache2-mod-php7.2 패키지도 Nginx-PHP 연동모듈인 php-fpm으로만 교체하는 식으로 대응하는 게 제일 효율적일텐데, 포스팅 소재 확보를 위해(ㅠㅠ) APM 구성요소들을 전부 삭제하고 LEMP를 재구성하는 과정 전부를 정리하려 합니다.

그러니까 아파치만 엔진액스로 바꾸실 분들은 이 글에서 Apache2 및 관련 패키지들을 지우는 과정만 뽑아서 보신 다음 Nginx 설치 과정을 검색해보면 되겠습니다(시간이 지나면 제 블로그에도 정리되어 올라오겠지요.).



1. phpMyAdmin 삭제


php와 DB를 베이스로 해서 돌아가는 프로그램이니, MariaDB를 지우기 전에 먼저 지우는 게 깔끔하겠죠?


ubuntu phpmyadmin delete purge remove

▲ 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 관련 패키지들을 확인해보니... 복잡한 게 많네요.


ubuntu mariadb delete purge remove

▲ 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 제거를 진행하겠습니다.


ubuntu php delete purge remove


▲ 의존성에 문제가 없다면

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 지우도록 하겠습니다.


ubuntu modsecurity delete purge remove

▲ 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) 설치 과정 정리 글에서 뵙겠습니다.

반응형