Ubuntu 14.04(Plesk 12.5.30を使用したVPS)にLaravel 5.4プロジェクトがあります。データベースを作成し、必要な情報を含む。envファイルを設定した後、php artisan migrate
を実行し、例外がスローされました。
[Illuminate\Database\QueryException]
ドライバーが見つかりませんでした(SQL:select * from information_schema.tables where table_schema = pmaramaldb and table_name = migrations)[PDOException]
ドライバーが見つかりませんでした
私の。envファイルには次のものがあります:
DB_CONNECTION = mysql
DB_Host = 127.0.0.1
DB_PORT = 3306
DB_DATABASE = pmaramaldb
DB_USERNAME = user
DB_PASSWORD = password
ほとんどのガイドに従ってこのエラーを解決しましたが、良い結果は得られませんでした。
拡張ソリューションの有効化:
php.iniファイルは自動的に生成されます。これはPleskによって作成されたと思います。ファイルの冒頭には次のように書かれています。
;注意!
;
;このファイルは自動的に生成されるため、変更しないでください。
; SOすべての変更は、次回にファイルが失われるときにIS生成されます。
とにかく試してみました。その後、Apacheを再起動してから再試行しました...動作しませんでした。
php7.0-mysqlのインストールソリューション:
次の場合を除き、MySQLもインストールしようとしました。
user @ server:/ var/www/vhosts $ Sudo apt-get install php7.0-mysql
Leyendo lista de paquetes ...ヘチョ
Creandoárbolde dependencias
Leyendo lainformaciónde estado ... Hecho
php7.0-mysqlはすでに最新バージョンです。
0件のアクチュアライズド、0件のインスタララン、0件のパラエリミナルおよび67件のアクチュアライズドはありません。
** SQL Liteインストールソリューション:**
また、 question link のように試してみました:Sudo apt-get install php5-sqlite
と結果は次のとおりです。
user @ server:/var/www/vhosts/system/maramal.io/etc$ Sudo apt-get install php5-sqlite
Leyendo lista de paquetes ...ヘチョ
Creandoárbolde dependencias
Leyendo lainformaciónde estado ... Hecho
php5-sqliteはすでに最新バージョンです。
0件のアクチュアライザド、0件のインスタララン、0件のエリミナルおよび67件のアクチュアライザドはありません。
Composer Dump-autoload Solution:
うまくいきませんでした。 composer dump-autoload
を試しましたが、うまくいきませんでした。
コマンドphp -i
を実行した後:
PDO
PDOサポート=>有効
PDOドライバー=>
...
PHPバージョン=> 5.6.30-1 + deb.sury.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、著作権(c)1998-2016 Zend Technologies
Zend OPcache v7.0.6-dev、Copyright(c)1999-2016、Zend Technologies
Apacheで使用されるPHPと、コマンドラインにリンクされているPHPには競合があります。 (正直であるべきであることがより頻繁に起こります)。
通常行われることは次のとおりです。
which php
これにより、コマンドラインで実行したときにどのphpが実行されるかがわかります。例えば/usr/bin/php
mv /usr/bin/php /usr/bin/php.old
次に、正しいPHPバージョンを実行可能パスにリンクまたはコピーします。
ln -s /path/to/php/bin/php /usr/bin/php
または、以下も動作するはずです。
cp /path/to/php/bin/php /usr/bin/php
MODを手動でインストールできるようにする場合にも推奨されます。
ln -s /path/to/php/bin/phpize /usr/bin/phpize
ln -s /path/to/php/bin/php-config /usr/bin/php-config
これにより、CLIがWebサーバーに一致します。
更新:
この回答 に記載されているように、PHPの複数の代替インストールでUbuntuを使用している場合、次のことができます。
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>
代替ソリューションとして、php7-mysqlをインストールしたことを確認してください
以下のコマンドを実行してみてください
Sudo apt install php7.0-mysql
あなたと同じシナリオがありました。私は次の問題を解決しました:
1)端末で、タイプ
php --ini
これにより、現在のphp.ini設定ファイルのパスが出力されます。
2)vimまたは好みのエディターを使用してphp.iniを編集します。
vim /etc/php.ini
/etc/php.iniがphp.iniのパスファイルであることに注意してください。マシンによって異なる場合があります。
); extension = php_pdo_mysql.dllを検索し、セミコロン(;)を削除してコメント解除します
4)php.iniの変更を保存/ s
** 5)Webサーバーを再起動して変更を適用します
Sudo systemctl restart Apache2
** 6)コマンドを実行します。
pHPアーティザンの移行
これがあなたのお役に立てば幸いです。
データベースドライバーが見つかりません。プロブレムを解決するには
最初にドライバーをインストールします
Ubuntuの場合:mysqlデータベースの場合。
Sudo apt-get install php5.6-mysql/php7.2-mysql
他のデータベースシステムを検索することもできます。
ドライバーを検索することもできます:
Sudo apt-cache search drivername
これらの次のコマンドを試すことができます
php artisan cache:clear
php artisan config:clear
次に、Apacheサーバーを再起動します。その後、.env
ファイルを再構成します
私は一度このエラーを経験しました...理由はわかりませんが、PHP 7.3ではドライバーに関連する問題があるか、そこに私がしたことはPHP 7.2に切り替えてすべてがうまくいったようです...
linuxではそのようにします
まず、次のようにphpバージョンを確認します。
php -v
たとえば、バージョン番号を取得した後、7.1を取得し、そのようにインストールします
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
Apache2を再起動する必要があります
Sudo service Apache2 restart
職人のキャッシュをクリア
php artisan cache:clear
そして
php artisan migrate:refresh
それでおしまい
実際、PHP-バージョンを認識しておらず、間違ったパスを使用していると確信しています。
ベンダーのPHPバージョン(sury.orgによる5.6)では、PHP-コマンドを「/ usr/bin/php」として使用しますが、異なるPHP-バージョン、たとえばPleskのバージョンの場合、異なるパスがあります。
/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バージョンのコマンド(7.0および7.1の場合、sury.org MAIN ppa PHPバージョンを https:/ /launchpad.net/~ondrej/+archive/ubuntu/php ):
/usr/bin/php7.0 -v
/usr/bin/php7.1 -v
「-m」オプション文字列を使用して各PHPバージョンのインストール済みモジュールを表示し、情報に「-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
追加の「作曲家」-コマンドは次のとおりです。
/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