강의 자체는 한 언어를 배울 때 다루는 반복문 조건문 함수 배열....등을 다뤘었다.
물론 나한텐 그게 핵심이 아니었지만 말이다.
어제 bind9과 apache2가 제대로 동작하지 않는 사태에 이어서 오늘은 php와 MariaDB가 아예 실행되질 않았다. 게다가 간단하게 sudo apt purge 해서 삭제했던 bind9, resolvconf, apache2 랑 달리 삭제 절차가 더 까다로웠던 건 덤.
php 삭제 명령어 (출처)
sudo apt remove php*
sudo apt-get purge 'php*'
sudo apt-get purge php.*
이후 php 재설치 (출처)
sudo apt install php libapache2-mod-php php-mysql
apt list php-* php7.4-*
sudo apt install php-{bz2,imagick,imap,intl,gd,mbstring,pspell,curl,readline,xml,xmlrpc,zip}
이런 방식으로 localhost/phpinfo.php 에서 php 실행 확인을 정상적으로 마무리했다.
참고로 저 php 파일의 코드는 고작 저 한줄이 전부다:
<?php phpinfo(); ?>
마침 이제 강의에서도 php와 DB 연동을 다루고 있겠다, php가 해결됐으니 이제 무사히 DB 연결만 확인하면 되겠다 싶었다. 그런데 또 MariaDB 마저 실행이 되질 않는다. 앞서 php 제거하고 재설치하는 과정에서 php-mysql을 install 한다는게 원인이지 않았나 싶기도 하고.
특히 이번에는 purge란 purge는 다해봤는데도 중간에 자꾸 무슨 에러가 떠서 더 골칫거리기도 했다.
MariaDB 삭제 후 재설치 (출처)
sudo apt update
sudo apt upgrade
sudo apt purge mariadb-* 후 관련 경고문(?)에서 yes 선택
sudo apt autoremove
dpkg -l | grep mysql로 마저 남은 mysql 패키지가 있다면 제거
sudo apt purge mysql-common
sudo reboot
sudo apt install mariadb-server --fix-missing --fix-broken
이제 이렇게 재설치만 하면 다 끝난줄 알았다. 그랬는데 전에 했던 실습 결과물도 죄다 같이 날아가는 바람에 처음부터 다시해야 했다. 거기까지는 괜찮았지만 이젠 DB 연동 php 코드의 결과물이 아예 뜨질 않는 것이다. 심지어 가상머신 밖 MariaDB 클라이언트에서도 서버에서 세팅한 유저명과 패스워드로도 접속이 안됐다.
이 문제는
sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf 입력 후
43번째 줄 bind-address = 127.0.0.1 을 주석처리
하여 해결했다. (출처)
참고로 php의 DB 연동 관련 함수 중 가장 많이 쓰이는건
mysqli_fetch_array()
라고 한다. DB SELECT 문의 실행 결과에서 결과 행을 추출한단다.
이런 식으로 드디어 연동 성공했다ㅠㅠㅠㅠㅠㅠㅠㅠ
어제오늘 해서 bind9/resolvconf/apache2/php/MariaDB가 전부 안되는 총체적 난국이었어서 그거 다시 세팅하는 것 자체만으로도 시간을 매우 많이 잡아먹어서 수업 진도는 거의 못따라갔다.
그건 그렇고 이번주 내내 프로젝트 코딩하느라 시간 갈 줄 알았는데 의외로 수업 진도도 착실하게 나가고 있어서 프로젝트 진행은 어떻게 될지 모르겠다. 분명 자기소개 페이지라고 하는데 이게 DB연동이랑은 또 무슨 연관인걸까....