저는 Windows 10을 사용하고 있으며 Apache2.4, PHP7.2 및 MySQL을 설치했습니다. pdo_mysql용 드라이버를 설치하는 데 문제가 있습니다.
내 php.ini 파일을 편집했고 확장 섹션에 다음이 있습니다.
extension=pdo_mysql
또한 Extension_dir 지시어를 다음과 같이 설정했습니다.
"C:\php72\ext"
명령 콘솔에 "php -m"을 입력하면 PDO와 pdo_mysql이 모두 나열된 것을 볼 수 있습니다.
Apache를 다시 시작했지만 둘 중 하나를 포함하는 .php 파일을 실행하면 PDO용 드라이버가 설치되어 있지 않은 것을 볼 수 있습니다 print_r(PDO::getAvailableDrivers());
.phpinfo();
내 httpd.conf 파일에는
PHPIniDir “C:\php72\”
나는 이것을 정방향 및 백슬래시를 사용하도록 변경하고 후행 슬래시를 포함 및 제거하고 각 변경 후에 Apache를 다시 시작하려고 시도했습니다. 여전히 pdo_mysql 드라이버를 로드할 수 없습니다.
문제는 PHP가 아닌 Apache에 있는 것 같습니다(명령 콘솔에서 php -m을 실행할 때 pdo_mysql 모듈이 나타남). 그러나 내가 무엇을 잘못했는지 이해하지 못합니다. 같은 문제를 겪고 있는 다른 사람들을 찾아봤지만 해결책은 항상 PHPIniDir인 것 같았습니다. 제가 올바르게 설정한 것 같습니다.
내가 사용하고 있는 컴퓨터는 이미 IIS를 실행하고 있었기 때문에 Apache는 기본값이 아닌 포트 8090을 수신하고 있습니다. 이것이 관련이 있는지 없는지 잘 모르겠습니다.
어떤 도움이라도 주시면 감사하겠습니다!
답변1
Apache 서비스를 제거하고 C:\Apache24를 삭제하고 처음부터 설치한 후 이전과 같이 pdo_mysql을 설치하는 단계를 수행했습니다.
답변2
cli를 통해 실행할 때 모듈이 로드되었지만 Apache를 통해 동일한 PHP 구성을 실행할 때는 로드되지 않는 것과 동일한 문제가 있었습니다.
내 경우 해결책은 extension_dir
php.ini 파일을 모듈 폴더의 절대 경로(내 경우에는 C:\php80\ext)로 설정하는 것이었습니다.
이제 cli와 Apache 모두 모듈을 올바르게 로드하고 있습니다.
답변3
나에게는 Apache로 Fast CGI를 설정하기 위해 따라야 했던 어리석은 지침 때문에 ini 파일이 있어야 할 위치에 exe 파일을 넣어야 했습니다.
# Where is your php.ini file?
FcgidInitialEnv PHPRC "c:/Program Files/php/php.exe" // should be ini
나는 그것을 ini로 변경했고 작동했습니다. PHP에서 php.exe를 ini 파일로 설정할 수 있다는 사실에 놀랐습니다.