서버를 옮기기 위해 환경 설정을 하는 도중 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_mysqlenmod 는 켜고 dismod 는 끄는 설정방법입니다.
이 코드를 실행하게 되면 자동으로 php.ini 에 값을 입력하게 됩니다.
error_reporting = E_ALL & ~E_DEPREACTED & ~E_STRICT에러를 출력하는 설정입니다.
extension = pdo_mysql.so
extension_dir = "{경로}"그렇기에 sudo phpenmod -v 7.4 pdo_mysql 와 같은 명령어를 통해 설치를 하는 것을 추천드립니다.
sudo apt-get autoremoveautoremove 명령어는 다른 의존성 때문에 설치되었지만 지금은 사용하지 않는 패키지를 삭제합니다.
sudo apt install php7.4-commonsudo apt install grep리스트를 한번에 볼 수 있게 grep을 설치합니다.
apt list --installed | grep php7.4한 서버에 php-8.0 과 php-7.4를 설치하였을 경우에는 각자에 설치된 라이브러리를 따로 봐야할 필요가 있습니다.
grep 명령어를 활용하면 해당 php 버전의 코드만 주르륵 뽑아낼 수있습니다.
php -vsudo service php7.0-fpm restart