에러 | 우분투 Apache php-pdo 설치하기 (PHP 7.4)

|

요약

서버를 옮기기 위해 환경 설정을 하는 도중 pdo 에러가 나와 해결한 방법입니다.

문제 환경

Notice : Undefined variable: pdo in /var/www/html/controller/file.php on line 17

Fatal error: Uncaught Error: Call to a member function prepare() on null in /var/www/html/controller/file.php:17 Stack trace: #0 {main} thrown in /var/www/html/controller/file.php on line 17

에러 전문
$sql = "SELECT * FROM register WHERE id =:id";
$query = $pdo->prepare($sql);

해결법

sudo phpenmod -v 7.4 pdo_mysql

enmod 는 켜고 dismod 는 끄는 설정방법입니다.
이 코드를 실행하게 되면 자동으로 php.ini 에 값을 입력하게 됩니다.

php.ini 설정

error_reporting = E_ALL & ~E_DEPREACTED & ~E_STRICT

에러를 출력하는 설정입니다.

extension = pdo_mysql.so
extension_dir = "{경로}"
  • 주의 : 직접 경로를 입력하면 문제가 생길 수 있습니다.

그렇기에 sudo phpenmod -v 7.4 pdo_mysql 와 같은 명령어를 통해 설치를 하는 것을 추천드립니다.

autoremove 삭제

sudo apt-get autoremove

autoremove 명령어는 다른 의존성 때문에 설치되었지만 지금은 사용하지 않는 패키지를 삭제합니다.

필수 php 설치

sudo apt install php7.4-common

grep 설치

sudo apt install grep

리스트를 한번에 볼 수 있게 grep을 설치합니다.

apt list --installed | grep php7.4

한 서버에 php-8.0 과 php-7.4를 설치하였을 경우에는 각자에 설치된 라이브러리를 따로 봐야할 필요가 있습니다.

grep 명령어를 활용하면 해당 php 버전의 코드만 주르륵 뽑아낼 수있습니다.

PHP 버전 확인

php -v

PHP 재부팅

sudo service php7.0-fpm restart

참조

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

클릭하여 복사