방금 Apache, MySQL 및 PHP와 함께 Debian Lenny를 설치했으며 PDOException을 받고 could not find driver
있습니다.
이것은 특정 코드 줄입니다.
$dbh = new PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_NAME, DB_USER, DB_PASS)
DB_HOST
, DB_NAME
, DB_USER
, 그리고 DB_PASS
내가 정의했다고 상수이다. 프로덕션 서버 및 이전 Ubuntu Server 설정에서 제대로 작동합니다.
PHP 설치와 관련이 있습니까?
인터넷을 검색해도 도움이되지는 않았지만 전문가 교환 및 예제 만 있으면되지만 해결책은 없습니다.
답변
pdo_mysql이라는 모듈이 필요합니다. phpinfo ()에서 다음을 찾고,
pdo_mysql
PDO Driver for MySQL, client library version => 5.1.44
답변
코드의 dsn은 mysql 드라이버와 연결을 시도하고 있음을 나타냅니다. 오류 메시지는이 드라이버를 사용할 수 없음을 나타냅니다.
서버에 mysql 확장이 설치되어 있는지 확인하십시오.
우분투 / 데비안에서는 다음을 사용하여 패키지를 확인하십시오.
dpkg --get-selections | grep php | grep mysql
php5-mysql 패키지가 없으면 설치하십시오.
우분투 / 데비안에서는 다음을 사용할 수 있습니다.
- PHP5 :
sudo apt-get install php5-mysql
- PHP7 :
sudo apt-get install php7.0-mysql
마지막으로, 작동하려면 웹 서버를 다시 시작해야합니다.
- 아파치 :
sudo /etc/init.d/apache2 restart
- Nginx :
sudo /etc/init.d/nginx restart
답변
업데이트 : 최신 버전 php-sqlite3
대신 패키지를 사용해야 합니다 php5-sqlite
. 최신 우분투 버전을 사용하는 경우 이것을 사용하십시오.
sudo apt-get install sqlite php-sqlite3
질문에 대한 원래 답변은 다음과 같습니다.
sudo apt-get install sqlite php5-sqlite
sudo /etc/init.d/apache2 restart
phpinfo ()가 pdo_sqlite 줄 (내 경우에는 우분투 서버)을 표시하지 않으면 위의 줄을 실행하면됩니다.
답변
PHP 7.0이 설치된 최신 버전의 Ubuntu의 경우 php-mysql
패키지를 얻을 수 있습니다 .
sudo apt-get install php-mysql
그런 다음 서버를 다시 시작하십시오.
sudo service apache2 restart
답변
나는 같은 문제가 있었다. 솔루션은 OS에 따라 다릅니다. 내 경우에는 데비안이 있으므로 해결해야합니다.
- 내 PHP 버전을 ( php5에서 php7로 ) 업데이트했습니다.
-
php-mysql 및 php7.0-mysql 설치
apt-get install php-mysql apt-get install php7.0-mysql
-
php.ini
/etc/php/7.0/apache2/php.ini에서 위치를 편집했습니다.uncomment the line : extension=php_pdo_mysql.dll
-
그런 다음 아파치를 다시 시작하십시오.
service apache2 restart
이것은 내 문제를 해결
답변
내 Windows 컴퓨터에서 php.ini의 확장 디렉토리에 대한 절대 경로를 제공해야했습니다.
extension_dir = "c:\php5\ext"
답변
우분투에서는 그냥 실행하십시오.
sudo apt-get install php5-mysql