sourcecode

PHP 7.0의 Laravel 5.4: PDO Exception - 드라이버를 찾을 수 없음(MySQL)

codebag 2023. 9. 15. 20:58
반응형

PHP 7.0의 Laravel 5.4: PDO Exception - 드라이버를 찾을 수 없음(MySQL)

저는 Ubuntu 14.04(Plesk 12.5.30 포함 VPS)에서 Laravel 5.4 프로젝트를 수행하고 있습니다.데이터베이스를 생성하고 필요한 정보를 가진 .env 파일을 설정한 후 Iranphp artisan migrate그리고 예외는 벗어났습니다.

[조명\데이터베이스\]](예외 ]
드라이버를 찾을 없습니다 수 및 graphics 선택 graphics에서 있는 마이그레이션이 p table_name = _ ation _ information_graphics에서 * 선택 sql )

[예외PDO 예외]
드라이버를 찾을 수 .다수를다수d .

.env 파일은 다음과 같습니다.

DB_CONNECTION=mysql

DB_HOST=127.0.0.1

DB_PORT=3306

DB_DATABase=pmaramaldb

DB_USERNAME=사용자

DB_PASSWORD=비밀번호

대부분의 가이드를 따라 이 오류를 해결했지만 긍정적인 결과는 없었습니다.

Extension 솔루션 사용:

PDO가 활성화됨

php.ini 파일이 자동으로 생성되고 있는데 Plesk에서 만든 것 같습니다.파일의 시작 부분에는 다음과 같이 적혀 있습니다.

!
;
으로 생성되었기 이은로기에오지오지에o기은로이e;etsytsmyd,..오o>
; 따라서 다음 번에 파일이 생성될 때 모든 변경 사항이 손실됩니다.

그래서 저도 해봤어요.그 후에 아파치를 다시 시작해보고 다시 시도해봤어요...안 됐어요.

php7.0-mysql 솔루션을 설치하는 중:

다음과 같은 경우 MySQL을 설치하려고 했습니다.

user@server:/var/www/vhosts$ sudo apt-get install php7.0-hosts

레이엔도 리스트 데파케...헤초

크레안도아르볼데데종렌시아스

레이엔돌라 인포마시온 데이스타도...헤초

php7.0-208은 이미 최신 버전입니다.

0 실루리자도스, 0 세스탈란, 0 파라 탈락 67 실루리자도스 없음

** SQL Lite 설치 솔루션:**

질문 링크에 나와 있는 대로 시도해 보았습니다.sudo apt-get install php5-sqlite결과는 다음과 같습니다.

user@server:/var/www/vhosts/system/maramal.io/etc$ sudo apt-get install php5-sqlite

레이엔도 리스트 데파케...헤초

크레안도아르볼데데종렌시아스

레이엔돌라 인포마시온 데이스타도...헤초

php5-sqlite는 이미 최신 버전입니다.

0 실루리자도스, 0 세스탈란, 0 파라 탈락 67 실루리자도스 없음

Composer 덤프 자동 로드 솔루션:

그것도 효과가 없었습니다.노력했습니다.composer dump-autoload효과가 없었어요

후 을 한 한 php -i:

PDO

PDO 지원 => 사용

PDO 드라이버 =>

...

PHP Version => 5.6.30-1+basessury.org ~trusty+1

글쎄, 이것이 오류와 관련이 있는지는 모르겠지만, 실행중에 표시된 버전입니다.php -v다음과 같습니다.

user@server: ~/path$ php -v

PHP 5.6.30-1+deb.sury.org~trusty+1 (cli)

Copyright (c) 1997-2016 The PHP Group

Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, Zend Technologies사

As an alternative solution be sure you have installed php7-mysql

try to run command below

sudo apt install php7.0-mysql

or, if you want to automatically install the current version

sudo apt install php-mysql

Same problem, ubuntu 17.10, Laravel 5.5.

$sudo apt install php7.1-pdo php7.1-mysql

enter image description here

enter image description here

A nice quick fix, hope this helps

There's a conflict between the PHP that is used by Apache and the PHP that is linked to the command line. (It happens more often that it should to be honest).

What is typically done is:

which php

명령 줄에서 실행할 때 어떤 php가 실행되는지 알려줍니다./usr/bin/php

mv /usr/bin/php /usr/bin/php.old

Then link or copy the correct PHP version to an executable path:

ln -s /path/to/php/bin/php /usr/bin/php

or the following should also work.

cp /path/to/php/bin/php /usr/bin/php

Also suggested if you want to be able to manually install mods:

ln -s /path/to/php/bin/phpize /usr/bin/phpize
ln -s /path/to/php/bin/php-config /usr/bin/php-config

This way your CLI will match your webserver.

Update:

If as noted in this answer if you are using Ubuntu with multiple alternative installations of PHP you can do:

sudo update-alternatives --set php /usr/bin/php<version>
sudo update-alternatives --set phar /usr/bin/phar<version>
sudo update-alternatives --set phar.phar /usr/bin/phar.phar<version> 
sudo update-alternatives --set phpize /usr/bin/phpize<version> 
sudo update-alternatives --set php-config /usr/bin/php-config<version>

I had the same scenario you have. I did resolve mine the following:

1) on your terminal, type

php --ini

this will output your current php.ini configuration file path.

2) edit php.ini using vim or your preferred editor.

vim /etc/php.ini

note that /etc/php.ini is your path file for your php.ini. it may be different on your machine.

3) find ;extension=php_pdo_mysql.dll and uncomment it by removing semicolon (;)

4) save your php.ini change/s

**5) restart the web server to apply the changes

sudo systemctl restart apache2

**6) Now run your command.

php artisan migrate

hope this helps for you.

in linux do like that

first check your php version like this :

php -v

after you get version number for example i get 7.1 then install like that

sudo apt-get install  php7.1-sqlite     //for laravel testing with sqlite
sudo apt-get install  php-mysql         //for default mysql
sudo apt-get install  php7.1-mysql      //for version based mysql 
sudo apt-get install  php7.1-common     //for other necessary package for php

and need to restart apache2

sudo service apache2 restart

You can try these following command

php artisan cache:clear
php artisan config:clear  

그런 다음 Apache 서버를 다시 시작합니다.그 다음에 다시 구성합니다..env파일

데이터베이스 드라이버가 없습니다.프로브렘을 풀기 위해서는

먼저 드라이버를 설치합니다.

우분투의 경우:mysql 데이터베이스의 경우.

sudo apt-get install php5.6-mysql/php7.2-mysql

다른 데이터베이스 시스템을 검색할 수도 있습니다.

드라이버를 검색할 수도 있습니다.

sudo apt-cache search drivername

네, 이런 오류를 경험한 적이 있습니다.이유는 모르겠지만 php 7.3에서 드라이버와 관련된 문제가 있거나 제가 했던 것이 php 7.2로 다시 전환되었고 모든 것이 잘 작동했습니다.

sudo apt install php7.2-pdo php7.2-mysql

투명한 장인 정신

php artisan cache:clear

그리고.

php artisan migrate:refresh

바로 그겁니다.

사실 PHP 버전을 잘 모르시고 잘못된 경로를 사용하신 것 같습니다.

벤더 PHP 버전(5.6 by sury.org )의 경우 PHP 명령어를 "/usr/bin/desclies"로 사용하지만 Plesk와 같은 다른 PHP 버전을 사용하면 경로가 달라집니다.

/opt/plesk/php/5.2/bin/php -v
/opt/plesk/php/5.3/bin/php -v
/opt/plesk/php/5.4/bin/php -v
/opt/plesk/php/5.5/bin/php -v
/opt/plesk/php/5.6/bin/php -v
/opt/plesk/php/7.0/bin/php -v
/opt/plesk/php/7.1/bin/php -v

PHP - 추가 PHP 버전(sury.org 에서 https://launchpad.net/ MAIN ppa PHP 버전을 설치한 경우 7.0 및 7.1)에 대한 명령은 다음과 같습니다.

/usr/bin/php7.0 -v
/usr/bin/php7.1 -v

각 PHP 버전에 대해 설치된 모듈을 "-m" 옵션 문자열과 함께 표시하고 정보를 보려면 "-i" 옵션 문자열을 사용합니다(예).

/opt/plesk/php/7.0/bin/php -m
/opt/plesk/php/7.0/bin/php -i
or
/usr/bin/php7.0 -m
/usr/bin/php7.0 -i

"composer"를 사용하려면 PHP 실행 파일의 전체 경로를 사용하는 것)를 사용하는 것이 좋습니다.

/opt/plesk/php/7.0/bin/php composer-setup.php
or
/usr/bin/php7.0 composer-setup.php

추가 "composer" - 명령어는 다음과 같습니다.

/opt/plesk/php/7.0/bin/php composer.phar AND-ADDITIONAL-STRINGS/OPTIONS-TO-BE-INCLUDED
or
/opt/plesk/php/7.0/bin/php composer.phar AND-ADDITIONAL-STRINGS/OPTIONS-TO-BE-INCLUDED

WSL2를 도커와 함께 사용하고 있는데 최근 DB 드라이버 전환에 문제가 발생한 경우 다음을 시도해 볼 수 있습니다.

docker ps (to retrieve your app image)
docker exec <app_code> php artisan cache:clear
docker exec <app_code> php artisan config:clear

창에 대한 내용은 "C:\프로그램 파일\PHP 또는 C:php.ini 파일의 \Program Files(x86)"입니다.

거기서 ";"을 찾아 제거하면 다음과 같습니다.

extension=mysqli extension=pdo_mysql

AMMPS 또는 IIS를 사용하는 경우 서비스를 다시 시작해야 할 수도 있습니다.

언급URL : https://stackoverflow.com/questions/42909397/laravel-5-4-on-php-7-0-pdo-exception-could-not-find-driver-mysql

반응형