Last updated on 2023. 06. 17.
PHP 버전이 낮아서 설치 안되는 워드프레스 플러그인이 있어서 PHP 업데이트를 하기로 했습니다. PHP7.2 에서 PHP8.0 으로 업데이트하는 것은 어렵지는 않았습니다. 그런데 두 가지 문제가 발생했는데 첫 번째 문제는 PHP 버전 충돌로 인한 오류입니다.
아파치를 재시작 하려고 하는데 다음과 같은 에러가 발생하며 재 시작을 못했습니다.
apache2.service: Control process exited, code=exited status=139 apache2.service: Failed with result 'exit-code' Failed to start The Apache HTTP Server.
“status=139” 에러는 여러 버전의 PHP가 활성화되어 있을 때 발생하는 오류라고 합니다. 새로운 버전의 PHP를 활성화만 시키고 기존 버전의 PHP를 비활성화 시키지 않았을 때 발생하는 문제로 해결 방법은 만약 PHP7.2 를 사용하고 있었는데 PHP8.0 으로 업그레이드 했다면 다음 두 명령어를 실행시켜 줍니다.
[pi@localhost ~]# sudo a2dismod php7.2 [pi@localhost ~]# sudo a2enmod php8.0
이렇게 하면 기존 PHP는 비활성화되고 최근 설치한 PHP만 활성화됩니다. 이제 아파치를 재시작 해주면 정상 동작 합니다.
그런데… 이게 끝이 아니네요. 두 번째 문제가 발생하였는데 wordpress 접속을 해보았습니다.
“Your PHP installation appears to be missing the MySQL extension which is required by WordPress”
이런 메시지가 뜨며 접속이 안되니 정말 답답하네요. 먼저 MariaDB의 상태를 확인해 봅니다.
[pi@localhost ~]# /etc/init.d/mariadb status
중간에 이런 오류가 발견되었습니다.
Version check failed. Got the following error when calling the 'mysql' command line client ERROR 1045 (28000): Access denied for user 'root'@'localhost' FATAL ERROR: Upgrade failed
대강 요약해 보자면 PHP 업데이트 이후 뭔가 에러가 발생해서 MariaDB가 작동을 멈춘 상태였습니다. 즉 extension 이 없는 게 아니라 MariaDB 가 작동을 멈춘 상태로 생각이 됩니다. 근데 뭔가 로그를 보니깐 버전 체크 실패 에러가 뜨고 MariaDB에 루트로 접속을 못하고 있는거 같았습니다. 그래서 예전 기억을 되돌려 데이터 베이스 암호를 재설정 해줬습니다.
[pi@localhost ~]# sudo mysql -uroot -p
암호 입력하고 접속해서 워드프레스 DB 이름이 뭔지 꼭 확인해 줍니다.
MariaDB [(none)] > show databases;
아래와 같이 database 암호를 재 설정해 줬습니다.
MariaDB [(none)] > GRANT ALL PRIVILEGES ON wordpress.* TO 'root'@'localhost' IDENTIFIED BY 'YOURPASSWORD'; MariaDB [(none)] > FLUSH PRIVILEGES;
다 했으면 Ctrl + D를 눌러서 빠져나옵니다. 이제 아래와 같이 입력해서 재시작 해봅니다.
[pi@localhost ~]# /etc/init.d/mariadb start [pi@localhost ~]# apachectl restart
어찌어찌 겨우 해결했습니다.