예전에 우분투 14.04에서 우분투 16.04로의 업그레이드 방법을 정리했던 적이 있습니다.

콘솔창에서 진행하는 방법GUI 상에서 진행하는 방법 모두요.

당시에는 시스템 상의 오류가 없는지에만 신경을 썼었는데, 한글 입/출력 프로그램의 변경만 빼면 특별한 문제는 없었던 것으로 기억합니다.


그동안 우분투에 APM(Apache, PHP, MySQL/MariaDB)를 깔고 워드프레스를 얹어서 쓰다 보니 16.04에서 18.04로 업그레이드했을 때 워드프레스 자료들이 이상 없이 연계가 될지 궁금했습니다. 그래서 실제 서버에 적용하기 전에 가상머신에서 테스트해봤습니다.


참고로 포스팅 시점 기준으로

우분투 16.04의 Apache2 버전은 2.4.34 / PHP 버전은 7.0.30 / MariaDB 버전은 10.0.36 이고,

우분투 18.04의 Apache2 버전은 2.4.34 / PHP 버전은 7.2.7 / MariaDB 버전은 10.1.34 입니다.

(터미널 창에서 apache2 -v / php -v / sudo mysql -u root -p 명령어를 한 줄씩 입력해서 확인했습니다.)

워드프레스가 PHP 7.2 대응을 마쳤으니 PHP 버전 차이에 따른 문제는 없을 것 같고,

결국 MariaDB 버전 차이에 따른 문제 발생 여부를 살펴보는 기회가 되겠네요.


업그레이드는 콘솔창에서 진행할 겁니다.

개념상 어려운 것은 없습니다. 업그레이드 명령을 입력하고, 중간중간에 새로운 설정파일로 교체할 것인지 묻는 대화창이 뜨면 본인의 상황에 맞게 Y/N을 눌러 진행하면 됩니다.


우선, 콘솔 모드로 진입하거나(Ctrl+Alt+F1부터 Ctrl+Alt+F6까지 가능) 터미널 창을 띄우고(Ctrl+Alt+T) 아래의 명령어들을 입력하여 패키지를 최신 상태로 유지합니다.

sudo apt-get update

sudo apt-get upgrade

sudo apt-get dist-upgrade

sudo apt autoremove

(용량 부족하면 sudo apt-get clean 도 쳐보세요. 만약 용량이 매우매우 부족해서 파티션을 확장해야 한다면 “GParted로 스왑 파티션이 붙은 boot 파티션(/dev/sda1)을 확장하는 방법” <= 이 글을 참고하세요.)


만약 위 명령어들이 자동 진행되도록 하고 싶으면 아래처럼 한 줄에 입력하면 됩니다.

sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y && sudo apt autoremove -y


다음으로 update-manager-core패키지가 설치되어 있는지 확인할 겁니다. 콘솔모드에서 아래의 명령어를 입력하세요.

dpkg -l | grep update-manager-core

리스트에 update-manager-core가 있다면 다음으로 넘어가고, 없으면 아래의 명령어를 입력하여 update-manager-core를 설치합니다.

sudo apt-get install update-manager-core


혹시라도 가상머신(Hyper-V 등과 같은)에서 테스트하고 있다면 스냅샷/검사점 기능으로 백업해서 돌아올 수 있는 길을 마련해둡니다.

([윈도우10] Hyper-V 검사점 기능 : 스냅샷 찍어서 백업하고, 복구하는 방법)


이제 아래의 명령어를 입력하여 16.04.2로 업그레이드를 시도합니다.

sudo do-release-upgrade

진행 도중 [yN] [d] 등의 선택지가 나오면 설명을 읽어가면서 본인의 환경에 맞게 선택합니다. 대부분 기존의 설정파일을 유지할 것인지를 묻는 내용일 거예요.


▲ 참고로 SSH로 업그레이드를 시도하면 이런 경고 메세지가 뜹니다. 실패시 복구하기 힘들다고 하네요. 그래서 비추천. 정 원한다면 스샷의 안내대로 1022포트 개방하고 진행하세요(공유기, 우분투 방화벽 전부.).

윈도우 RDP(원격데스크톱) 연결로는 더더욱 업그로이드하지 마세요. 중간에 자동으로 끊기고 재연결이 안 됩니다.


만약 한글 우분투인데 콘솔창에서 한글이 깨져 보인다면 설명을 읽을 수 없으니까, 첫 선택지에서 N을 눌러서 중단하고 터미널 창에서 시도해 보세요. 그러면 한글이 잘 보일 겁니다.


▲ 이런 대화창은 무섭지 않습니다.^^


▲ y를 눌러야 업그레이드 되겠죠? 뭔가 무시무시하지만 진행했습니다(y).

(참고로 d를 눌러서 자세한 내용을 파악하는 도중에 빠져나오고 싶으면 q를 누르면 됩니다.)


▲ 크게 신경쓸 만한 것은 없어보입니다. OK.


▲ 일단 확인.


▲ 저는 XFCE 인터페이스를 써서 lightdm 을 선택했습니다. gdm3 선택했더니 먹통 되더군요.

(우분투 16.04 기본 인터페이스에서 18.04 기본 인터페이스로 넘어가는 분은 gdm3 선택하시뎐 되겠죠.)


나중에 터미널 창에서 sudo dpkg-reconfigure gdm3 라고 입력하면 다시 선택할 수 있다고 하며, gdm3도 기존 Ubuntu 16.04의 유니티 인터페이스처럼 원격 접속시 데스크톱 사용자 환경을 사용할 수 없다고 하는데... 솔직히 저는 잘 모르겠습니다. GDM3 써도 XFCE로 XRDP 쓰고 있는데;;;.


※ 참고 링크

https://www.linuxuprising.com/2018/04/how-to-install-unity-in-ubuntu-1804-lts.html

https://www.netsarang.co.kr/faq/xmanager/12364


▲ MariaDB가 10.1로 업그레이드 되면서 50-server.cnf 설정파일을 교체할 것인지를 물어옵니다. D를 눌러 살펴보니 제가 수정했던 부분이 있습니다. 그래도 Y를 눌러 교체했습니다. 기존의 설정 파일은 /etc/mysql/mariadb.conf.d/50-server.cnf.dpkg-old 파일로 백업되니까, 우분투 업그레이드 후에 비교해가면서 50-server.cnf 파일에 내용을 추가하면 됩니다. 설정파일 변경 후엔 sudo service mysql restart 해줘야겠죠?


▲ 아파치(Apache)도 교체되면서 apache2.conf 파일을 교체할 것인지를 물어오네요.

MariaDB처럼 일단 Y를 눌러 교체하고, 나중에 백업된 기존 설정 파일(/etc/apache2/apache2.conf.dpkg-old)과 비교하여 기존의 수정 부분을 반영할 겁니다. 설정파일 변경 후엔 sudo service apache2 restart 해줘야겠죠?


▲ 별로 중요할 것은 없어보입니다. y 를 눌러 계속 진행했습니다.


▲ 시스템을 다시 시작해줬죠.


재부팅 후 터미널 창에서 lsb_release -a 라고 입력했더니 우분투 버전이 18.04로 뜹니다. 일단 업그레이드는 성공.

Apache 설정파일(/etc/apache2/apache2.conf)과 MariaDB 설정파일(/etc/mysql/mariadb.conf.d/50-server.cnf)을 손보고 웹브라우저로 워드프레스 사이트에 접속해봤는데...


▲ php 코드가 그대로 보이네요. 아파치-PHP 연동이 깨진 것 같습니다.


/etc/apache2/mods-available/ 에 php7.2.conf 와 php7.2.load 파일이 있는지 확인해보니, 다행히 있습니다.

/etc/apache2/mods-enabled/ 에 php7.2.conf 와 php7.2.load 심볼릭링크가 있는지 확인해보니... 없습니다!!!

없으니까 터미널 창에서~


▲ sudo a2enmod php7.2 라고 입력하면 심볼릭링크가 생기면서 아파치-PHP 연동이 됩니다.

그리고 sudo service apache2 restart 입력 후 워드프레스 사이트 접속해보면...


접속이 될 겁니다!

결론만 말하면 우분투 16.04에서 18.04로 업그레이드하더라도 워드프레스 글은 보존됩니다.

다만 우분투 16.04의 패키지들이 찌꺼기처럼 남아있으므로 약간의 후작업이 필요했습니다.


▲ php7.2-curl 이 빠져있어서 추가 설치했고요,


dpkg -l | grep php7.0

이라고 쳐보니까 php7.0 패키지들(우분투 16.04용)이 남아있어서


▲ sudo apt-get purge php7.0

이라고 쳐서 제거해줬습니다.


▲ mariadb 10.0 (우분투 16.04 용)도 찌꺼기처럼 남아있어서

sudo apt-get purge mariadb-server-10.0 mariadb-client-10.0

이라고 쳐서 제거해준 다음

sudo service mysql start

언인스톨 때문에 중단됐던 mysql 서비스를 다시 시작해줬고요.




▲ 이외에도 XFCE 인터페이스를 설치했다면 “시스템 프로그램 오류를 발견했습니다.” 창이 뜰 수 있습니다.

plymouthd 관련 충돌인 것 같은데...


https://unix.stackexchange.com/questions/423856/xubuntu-16-plymouthd-crashes-on-every-boot

검색해보니까 버그라고 하네요?

대답 중에 “plymouth를 시냅틱 패키지 관리자로 삭제+재설치해서 효과를 봤다”는 문구가 있는데, 저는 터미널 창에서 sudo apt-get --reinstall install plymouth 라고 친다음 재부팅해서 해결되었습니다.

재부팅 했는데도 “시스템 프로그램 오류를 발견했습니다.” 창이 계속 뜬다면 /var/crash/ 디렉토리에 plymouthd 관련 충돌 기록이 남아있어서 그러는 것일 수 있으니까, 해당 기록을 삭제해보시고요.



돌고 돌아 우분투 18.04 데스크톱 버전으로 업그레이드를 마쳤는데, 대응만 잘 하면 굳이 클린설치 안해도 될 것 같습니다. 웹문서 데이터(아파치는 기본값이 /var/www/ )와 워드프레스 DB 데이터( /var/lib/mysql/DB명/)가 살아있기 때문에 클린설치보다 후반 작업이 수월했고요.

다만 처음 경험하는 부분에서 대처를 잘못했다가 먹통 되면 답이 없으니까, 백업은 필수+세컨드 PC(또는 가상머신)에 시뮬레이션 꼭 해보고 메인PC 업그레이드를 진행하는 것을 주천합니다.

반응형