Windows 10 PDOException с сообщением «не удалось найти драйвер» Laravel 5.6.33 Wampserver 3.1.7 x86 - PullRequest
0 голосов
/ 07 февраля 2019

Я знаю, что есть много вопросов по этой теме, касающихся StackOverflow, но моя проблема в том, что у меня уже нет комментариев к расширениям php, я внес необходимые изменения в database.php и .env, и я объявил и использовал необходимый путь к среде,Единственное, что я не сделал, это установил composer из-за моих ограничений прокси.У меня есть прокси-сервер поверх Kerberos Windows AD, и по какой-то причине ничто из того, что раньше работало с прокси-адресом, портом и учетными данными (пользователь и пароль), больше не работает, поэтому я нашел этот веб-сайт для загрузки библиотек php иего зависимости без композера и удалось заставить работать Laravel 5.6.33 или, по крайней мере, явно, потому что когда я пытался вызвать: C:\wamp\www\laravel> php artisan migrate:install я получил следующую ошибку: Illuminate\Database\QueryException : could not find driver (SQL: create table "migrations" ("id" serial primary key not null, "migration" varchar(255) not null, "batch" integer not null)) и следующую трассировку исключений: `Трассировка исключений:

1 PDOException: :( "не удалось найти драйвер") C: \ wamp \ www \ laravel \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Connectors \ Connector.php: 68

2 PDO :: __ construct ("pgsql: host = localhost; dbname = tienda; port = 5432", "postgres", "admin123", []) C: \ wamp \ www \ laravel \ vendor \ laravel \ framework \src \ Illuminate \ Database \ Connectors \ Connector.php: 68`

Я должен сказать, что я работаю над 64-разрядной версией Windows 10 версии 10.0.17134.1 и мой сервер wamp 3.1.7 с php 7.2.14

Любая помощь или указатель по этому вопросубуду признателен

1 Ответ

0 голосов
/ 11 февраля 2019

После долгих исследований и разочарований я подумал попробовать xampp и обнаружил, что с xampp xampp-win32-7.3.0-0-VC15.exe установлено, правильные расширения включены в php.ini

extension=pdo_pgsql
extension=pgsql

, который в случае xamp расположен по адресу

C: \ xampp \ php

Я установил путь для xampp php в моем Windows 10 Ent, это C: \ xampp \ php , а затем запустил команду

php C: \ wamp\ www \ laravel> php artisan tinker

, после того как в консоли tinker запустите

Psy Shell v0.9.9 (PHP 7.3.0 - cli) от Джастина Хайлемана >>> DB::connection()->getPdo()

И я получил то, на что надеялся:

    => PDO {#2863
     inTransaction: false,
     attributes: {
       CASE: NATURAL,
       ERRMODE: EXCEPTION,
       PERSISTENT: false,
       DRIVER_NAME: "pgsql",
       SERVER_INFO: "PID: 1764; Client Encoding: UTF8; Is Superuser: on; Session Authorization: postgres; Date Style: ISO, MDY",
       ORACLE_NULLS: NATURAL,
       CLIENT_VERSION: "9.6.9",
       SERVER_VERSION: "9.6.11",
       STATEMENT_CLASS: [
         "PDOStatement",
       ],
       EMULATE_PREPARES: false,
       CONNECTION_STATUS: "Connection OK; waiting to send.",
       DEFAULT_FETCH_MODE: BOTH,
     },
   }

enter image description here

Ответ, который означает, чтоон нашел драйвер, который всегда был там и мог использовать для доступа к базе данных, которая уже была установлена ​​и запущена.

Остальные настройки выполнены в wamp с виртуальным хостом и расширениями, включенными с помощью PHP версии 7.3.1 одинаковы и работают как шарм.

Я надеюсь, что это может помочь другим, пока команды вампиров и ловцов не найдут способ сделать laravel

php artisanперенести

команду для работы с wamp 3.1.7 только для архитектуры x86.

...