Telepítse a Microsoft PHP-hez szükséges illezőprogramokat Linuxon és macOS-en

Ezek az utasítások telepítik a PHP-t, a Microsoft ODBC Driver for SQL Server-t, valamint az SQLSRV és PDO_SQLSRV bővítményeket. Minden fül az adott fül által használt tároló által biztosított PHP-csomagot használja, így a parancsokban szereplő verzió fülenként eltér. Ha az a repozitórium más PHP-verziót kínál, cseréld le egy másik, a támogatási mátrixban felsorolt PHP-verzióra.

Az SQLSRV és PDO_SQLSRV illezőprogramok ugyanazt az ODBC függőséget használják, és önállóan telepíthetők. Telepítsd mindkét bővítményt, ha az alkalmazásod mindkét meghajtót használja.

Az eljárás végén a CLI-nek és a kiválasztott webkiszolgáló-futtatókörnyezetnek mindkét bővítményt kell betöltenie, mindkét PHP API elérhető legyen, és az egyes API-khoz tartozó minta visszaadja az adatbázis-kiszolgáló verzióját.

Mielőtt elkezdenéd

  1. Válassz egy olyan PHP-verziót, amelyet a jelenlegi illesztőprogram-kiadás támogat, és amely elérhető az operációsrendszer-kiadásodhoz.

  2. Döntsd el, melyik PHP futóidőre van szükséged:

    • CLI szkriptekhez, ütemezett feladatokhoz vagy feldolgozókhoz.
    • Apache modul az Apache-on futó PHP-hez.
    • PHP-FPM nginx vagy Apache FastCGI konfiguráció esetén.
  3. Ellenőrizze az operációs rendszer architektúráját. A kiadott Linux archívumok x64 binárisokat, míg a macOS archívumok Arm64 bináriákat tartalmaznak. A PIE a számítógépen található PHP-telepítéshez készül, és ez a cikk elsődleges telepítési útvonala.

  4. Telepítsd a Microsoft ODBC Drivert és az unixODBC fejlesztőcsomagot. A Microsoft csomag kezeli az adatbázis-kommunikációt. Az unixODBC csomag tartalmazza az SQLSRV és PDO_SQLSRV felépítéséhez szükséges fejléceket.

  5. Tervezd újraindítani az összes webszervert, PHP-FPM poolt és a hosszan futó workereket egy bővítmény telepítése vagy módosítása után.

A platform csomagkezelője telepíti a PHP-t és a natív függőségeket. A PIE építi és telepíti a PHP bővítményeket. A PHP konfiguráció szabályozza, hogy az egyes futtatókörnyezetek betöltik-e őket. Az ODBC illesztőprogram kezeli az adatbázis-kommunikációt és a titkosítást a bővítmény betöltése után.

Telepítsd a drivereket PIE-val

A PIE, a PHP-bővítmények telepítője, a jelenlegi illesztőprogram-kiadások támogatott bővítménytelepítője. Ez váltja fel az elavult PHP Extension Community Library (PECL) munkafolyamatot.

Végezze el a következő szakaszokban ismertetett, a platform előfeltételeiben szereplő lépéseket, mielőtt telepítené a drivereket. Ezután telepítsd a PIE-t és az egyes illesztőprogramokat külön-külön:

Telepítsd a PIE-t

A PIE PHP 8.1-en és újabb verziókon fut. Képes egy bővítményt telepíteni egy másik PHP-telepítésbe, ha kiválasztod az adott telepítés fejlesztői eszközeit.

Telepítsd a curl és a GitHub CLI-t a folytatás előtt. A platformszakaszok tartalmazzák a(z) curl elemet ott, ahol a minimális telepítés esetleg nem biztosítja azt.

Töltse le a PIE PHP archívumot (PHAR), és ellenőrizze a GitHub parancssori felülettel (CLI), mielőtt telepíti vagy futtatná:

pie_tmp=$(mktemp -d)
curl -fL --output "$pie_tmp/pie.phar" https://github.com/php/pie/releases/latest/download/pie.phar
gh attestation verify --owner php "$pie_tmp/pie.phar"

Csak akkor folytassa, ha az ellenőrzés sikeres:

sudo install -m 755 "$pie_tmp/pie.phar" /usr/local/bin/pie
rm "$pie_tmp/pie.phar"
rmdir "$pie_tmp"
unset pie_tmp

Az ideiglenes könyvtár csak a fiókod számára érhető el. Ha a letöltés vagy a hitelesítés nem sikerül, ne telepítsd vagy futtasd a PHAR-t. Távolítsd el az ideiglenes fájlt és könyvtárat, mielőtt újra próbálnád.

Győződj meg róla, hogy a telepített PHAR fut a PHP futtatható fájllal, amit használni tervezel:

php /usr/local/bin/pie --version

Telepítsd az SQLSRV-t és PDO_SQLSRV drivereket

Linuxon és macOS-en a PIE ellenőrzi, hogy rendelkezésre állnak-e a számára szükséges fordító- és PHP-fejlesztőeszközök. Telepítsd a platform ODBC fejlesztőcsomagját és egy C++ fordítót a PIE futtatása előtt. Indítsd a PIE-t egy interaktív terminálról. Kérheti a jelszavát sudo, amikor engedélyre van szüksége ahhoz, hogy fájlokat telepítsen a rendszerkönyvtárakba.

A PIE azt a PHP-telepítést célozza meg, amelyet a PIE meghívásához használnak. Verziózott telepítéshez adj hozzá --with-php-config minden telepítési parancshoz, hogy kiválasszd annak fejlesztői eszközeit. Például használja a(z) pie install --with-php-config=/usr/bin/php-config8.4 microsoft/sqlsrv elemet, ha a kívánt eszköz a(z) /usr/bin/php-config8.4. Alkalmazd ugyanezt az opciót .microsoft/pdo_sqlsrv Az Alpine verziózott futtatható neveket használ; kövesse az Alpine parancsokat a verziózatlan parancsok helyett ebben a szakaszban.

Futtass egy parancsot minden kiegészítéshez. Ezek a parancsok a PIE alapértelmezett PHP telepítését használják:

pie install microsoft/sqlsrv
pie install microsoft/pdo_sqlsrv

A PIE megpróbálja engedélyezni az egyes kiterjesztéseket a platform PHP-konfigurációs eszközeivel vagy egy extension= bejegyzéssel, és figyelmeztet, ha nem tudja. A PHP minden futtató környezethez szerveralkalmazási interfészt (SAPI) használ. Debian, Ubuntu és SUSE rendszereken a parancssor, az Apache és a PHP FastCGI Process Manager (PHP-FPM) konfigurációi eltérhetnek. Egy sikeres parancssoros telepítés nem igazolja, hogy a webkiszolgáló betölti az illesztőprogramokat.

Nézd meg a php --ini parancssort. Mielőtt ideiglenes phpinfo() oldalt hoznál létre a webszerver számára, korlátozd a diagnosztikai oldalhoz való hozzáférést. Ellenőrizd a betöltött konfigurációs fájlt és a beszkennelt .ini fájlokat minden futásidőhöz. Ha hiányoznak a bejegyzések, kövesd a Illesztőprogramok betöltése Linuxon és macOS-en útmutatást, hogy a megfelelő betöltési sorrendben add hozzá őket. Újraindítsa a webszervert vagy a PHP-FPM-et a konfigurációs változtatások után. A Red Hat a php.ini elemet általában több SAPI között is megosztja, de ellenőrizze az aktív konfigurációt, mielőtt egy PIE-futtatásra hagyatkozna.

Telepítés az Ön platformjára

Válaszd ki az operációs rendszeredet és a webszerver konfigurációdat. Végezd el a telepítési lépéseket abban a fülben, majd kövesd a A telepítés tesztelése útmutatót.

Telepítés az Ubuntu-on

Megjegyzés:

A következő parancsok a packages.sury.org PHP tárolót használják, így kiválaszthatsz egy támogatott PHP verziót. Használd a hivatalos Microsoft utasításokat az ODBC illesztőprogram telepítéséhez az Ubuntu kiadásodhoz.

1. lépés. A PHP telepítése (Ubuntu)

sudo apt-get update
sudo apt-get install ca-certificates apt-transport-https curl gnupg2 lsb-release -y
sudo install -d -m 755 /etc/apt/keyrings
sudo curl -fsSL https://packages.sury.org/php/apt.gpg -o /etc/apt/keyrings/php.gpg
sudo chmod 644 /etc/apt/keyrings/php.gpg
echo "deb [signed-by=/etc/apt/keyrings/php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
sudo apt-get update
sudo apt-get install php8.4 php8.4-dev php8.4-xml -y

2. lépés. Előfeltételek telepítése (Ubuntu)

Kövesse a Microsoft ODBC Driver for SQL Server telepítése Linux rendszeren című útmutatót, majd telepítse a fejlesztői fejléceket.

sudo apt-get install unixodbc-dev g++ make git -y

3. lépés. Telepítse a Microsoft SQL Server PHP drivereit PIE-vel (Ubuntu)

Kövesd a illesztőprogramok telepítése a PIE-vel útmutatást, és add hozzá a --with-php-config=/usr/bin/php-config8.4 elemet mindkét telepítési parancshoz. Ellenőrizd a parancssoros konfigurációs fájlokat php8.4 --ini.

/usr/local/bin/pie install --with-php-config=/usr/bin/php-config8.4 microsoft/sqlsrv
/usr/local/bin/pie install --with-php-config=/usr/bin/php-config8.4 microsoft/pdo_sqlsrv

4. lépés. Telepítse az Apache-t, és konfigurálja az illesztőprogram betöltését (Ubuntu)

sudo apt-get install apache2 libapache2-mod-php8.4 -y
sudo a2enmod php8.4

5. lépés. Indítsa újra az Apache-t, és tesztelje a mintaszkriptet (Ubuntu)

sudo systemctl restart apache2

A telepítés teszteléséhez tekintse meg a telepítés tesztelését a dokumentum végén.

PECL régi telepítése

A PECL a jelenlegi illesztőprogram-kiadásokhoz elavult. Használd a PIE-t új telepítésekhez és frissítésekhez. Ha egy meglévő telepítés a PECL-hez van rögzítve, a csomagverziókat a PHP futtatókörnyezethez igazítva kell tartani, és meg kell tervezni a PIE-re való átállást.

Teszteld a telepítésed

Ellenőrizd a parancssori futtatókörnyezetet. Alpine-on cseréld le a(z) php-t php84-re. Egy másik disztribúción verziózott PHP telepítéshez használd annak megfelelő futtatható fájlját.

php --ri sqlsrv
php --ri pdo_sqlsrv
php -m | grep -E "sqlsrv|pdo_sqlsrv"

Mindkét --ri parancsnak modul információt kell nyomtatnia, amely tartalmazza a(z) ExtensionVer-t. A modullistának külön sqlsrv és pdo_sqlsrv sorokat kell tartalmaznia.

A kapcsolat tesztelése előtt ellenőrizd mindkét PHP API felületet a(z) verify-php-drivers.php használatával:

<?php
$checks = [
    'SQLSRV' => extension_loaded('sqlsrv') && function_exists('sqlsrv_connect'),
    'PDO_SQLSRV' => extension_loaded('pdo_sqlsrv')
        && in_array('sqlsrv', PDO::getAvailableDrivers(), true),
];

$failed = false;
foreach ($checks as $name => $loaded) {
    echo "$name: " . ($loaded ? 'loaded' : 'missing') . PHP_EOL;
    $failed = $failed || !$loaded;
}

exit($failed ? 1 : 0);

Várt kimenet:

SQLSRV: loaded
PDO_SQLSRV: loaded

PHP-FPM vagy webszerver esetén korlátozd a diagnosztikai oldalhoz való hozzáférést, mielőtt ideiglenes phpinfo() oldalt hozz létre. Erősítsd meg a betöltött konfigurációs fájlt, extension_dir-t és mindkét illesztőprogram-szakaszt. Újraindítsd PHP-FPM vagy a webszervert a konfiguráció megváltoztatása vagy egy bővítmény cseréje után. Távolítsa el az oldalt az ellenőrzés után.

Az élő kapcsolat teszteléséhez hozz létre egy testsql.php nevű fájlt a rendszer dokumentumgyökerében. Ez az útvonal az /var/www/html Ubuntu, a Debian és a Red Hat, /srv/www/htdocs a SUSE, /var/www/localhost/htdocs az Alpine vagy $(brew --prefix)/var/www a macOS rendszeren érhető el. Állítsd be a PHP folyamathoz a SQL_SERVER_NAME, SQL_DATABASE, SQL_UID, és SQL_PWD környezeti változókat a szkript futtatása előtt. Ne kódolj be hitelesítési adatokat egy fájlba a dokumentumgyökér alatt.

Parancssoros teszthez használd az interaktív promptokat, hogy beállítsd a környezeti változókat jelszó beírása nélkül a shell előzményeibe.

Apache-modul teszteléséhez ne tartsd a hitelesítő adatokat a webhely általánosan olvasható konfigurációs fájljában:

  1. Hozz létre egy privát fájlt a dokumentum gyökeren kívül. Használj egy nem használt fájlnevet az Apache konfigurációs könyvtárában. Linux rendszeren:

    sudo install -o root -g root -m 600 /dev/null /etc/apache2/php-sql-driver-test.conf
    

    Red Haten cseréld le /etc/apache2-t /etc/httpd-re. macOS-en hozd létre a fájlt azzal a fiókkal, amely elindítja a Homebrew Apache-ot:

    install -m 600 /dev/null "$(brew --prefix)/etc/httpd/php-sql-driver-test.conf"
    

    Csak a fájl tulajdonosa és a root olvashatja ezeket a beállításokat. Az Apache-ot indító fióknak képesnek kell lennie a fájl olvasására.

  2. Szerkesztse a privát fájlt egy szövegszerkesztőben, és adja hozzá ezeket a bejegyzéseket:

    SetEnv SQL_SERVER_NAME "tcp:<server>,1433"
    SetEnv SQL_DATABASE "<database>"
    SetEnv SQL_UID "<user_id>"
    SetEnv SQL_PWD "<password>"
    

    A kettős idézőjelek közötti argumentumokban írj \\ minden szó szerinti fordított perjel helyére, és \" minden szó szerinti kettős idézőjel helyére. Tartsd meg az idézőjelek között a kezdő és záró szóközöket. Az Apache a ${NAME} hivatkozásokat is helyettesíti. Ha egy érték tartalmazza ezt a sorozatot vagy sortörést, használd helyette a parancssori ellenőrzést. További információért lásd: Apache konfigurációs idézőjelek használata és escaping.

  3. A weboldal virtuális hostjába adj hozzá egy Files blokkot, amely a privát fájlt tartalmazza, és csak a testsql.php esetén érvényes. Ha nincs konfigurálva virtuális gazdagép, helyezd el a blokkot a fő szerver konfigurációban. Cserélje le a helyőrzőt a privát fájl abszolút elérési útjával:

    <Files "testsql.php">
        Include "<absolute-path-to-private-file>"
    </Files>
    
  4. Indítsd újra az Apache-t. Tesztelés után távolítsd el a Files hozzáadott blokkot, töröld a privát fájlt, és indítsd újra az Apache-t. Tartsd meg a nem kapcsolódó webhelybeállításokat.

PHP-FPM alapértelmezés szerint töröli az örökölt környezeti változókat, és a nginx nem adja át a környezetét a PHP-FPM-nek. A következő Ubuntu vagy Red Hat eljárást csak egy izolált teszt PHP-FPM szolgáltatás és pool mellett használja. Ne adj teszt hitelesítő adatokat egy olyan szolgáltatáshoz vagy készlethez, amely más alkalmazásokat futtat: minden szkript abban a készletben el tudja olvasni őket. Ha megosztott tárhelyet használsz, inkább a parancssoros tesztet használd.

  1. Hozz létre egy root tulajdonú fájlt a dokumentum rootján kívül, például /etc/php-sql-driver-test.env, és korlátozzuk a hozzáférést:

    sudo touch /etc/php-sql-driver-test.env
    sudo chmod 600 /etc/php-sql-driver-test.env
    

    Adja hozzá a kapcsolati beállításokat a fájlba:

    SQL_SERVER_NAME="tcp:<server>,1433"
    SQL_DATABASE="<database>"
    SQL_UID="<user_id>"
    SQL_PWD="<password>"
    

    Minden beállítást tartsunk egy vonalon. A dupla idézőjelek között minden szó szerinti fordított perjel helyére írj \\-t, és minden szó szerinti dupla idézőjel helyére \"-et. A dollárjeleket és a backtickeket nem értékelik shell kifejezésként. Közvetlenül szerkeszd a fájlt, ne futtasd vagy töltsd be forrásként shellben. További információért lásd: systemd EnvironmentFile szintaxis.

  2. Futtassa a sudo systemctl edit php8.4-fpm parancsot Ubuntu-n vagy a sudo systemctl edit php-fpm parancsot Red Hat-en. Add meg ezt a systemd-felülbírálást:

    [Service]
    EnvironmentFile=/etc/php-sql-driver-test.env
    
  3. Ezeket a bejegyzéseket adjuk hozzá az aktív PHP-FPM pool konfigurációhoz. Gyakori helyek a következők: /etc/php/8.4/fpm/pool.d/www.conf az Ubuntu-n és /etc/php-fpm.d/www.conf a Red Hat-en:

    env[SQL_SERVER_NAME] = $SQL_SERVER_NAME
    env[SQL_DATABASE] = $SQL_DATABASE
    env[SQL_UID] = $SQL_UID
    env[SQL_PWD] = $SQL_PWD
    
  4. Töltse újra a systemd-t, és indítsa újra a vonatkozó PHP-FPM szolgáltatást:

    sudo systemctl daemon-reload
    sudo systemctl restart php8.4-fpm
    

    Red Hat alatt cseréld le a(z) php8.4-fpm helyére ezt: php-fpm.

Tesztelés után távolítsd el az ideiglenes környezeti fájlt, a hozzáadott EnvironmentFile= bejegyzést, a tesztpool-bejegyzéseket és a testsql.php-t. A szolgáltatás felülírási fájlt csak akkor töröld, ha ehhez a teszthez hoztad létre, és az nem tartalmaz más beállításokat. Tartsd meg az összes meglévő felülírást és készletbeállítást. Újratöltsd a systemd-t, majd indítsd újra a PHP-FPM-et a tesztkonfiguráció eltávolítása után.

SQLSRV-példa

Tartsd változatlanul a környezeti értékeket. Minden példa ellenőrzi, hogy nincsenek-e hiányzó vagy üres beállítások a csatlakozás előtt. Minden példa megduplázza a záró kapcsos zárójeleket, és külső kapcsos zárójeleket ad hozzá, mielőtt átadná az adatbázis nevét, a felhasználónevet és a jelszót az illesztőprogramnak. Ez a kódolás megőrzi a literális kapcsos zárójeleket, és megakadályozza, hogy a félvesszők elválasszák a csatlakozási lehetőségeket.

<?php
$serverName = getenv('SQL_SERVER_NAME');
$databaseName = getenv('SQL_DATABASE');
$uid = getenv('SQL_UID');
$pwd = getenv('SQL_PWD');

if ($serverName === false || $serverName === ''
    || $databaseName === false || $databaseName === ''
    || $uid === false || $uid === ''
    || $pwd === false || $pwd === '') {
    handle_failure("Set SQL_SERVER_NAME, SQL_DATABASE, SQL_UID, and SQL_PWD.");
}

$databaseName = '{' . str_replace('}', '}}', $databaseName) . '}';
$uid = '{' . str_replace('}', '}}', $uid) . '}';
$pwd = '{' . str_replace('}', '}}', $pwd) . '}';
$connectionOptions = array(
    "Database" => $databaseName,
    "UID" => $uid,
    "PWD" => $pwd,
    "Encrypt" => 1,
    "TrustServerCertificate" => 0
);

function handle_failure($message) {
    error_log($message);
    http_response_code(500);
    echo "<h1>Failure</h1>";
    echo "An error occurred. Check the server error log for details.";
    exit(1);
}

function format_errors($errors) {
    $lines = [];
    foreach ($errors as $error) {
        $lines[] = "SQLSTATE: {$error['SQLSTATE']}, code: {$error['code']}, message: {$error['message']}";
    }
    return implode(PHP_EOL, $lines);
}

$conn = sqlsrv_connect($serverName, $connectionOptions);
if ($conn === false) {
    handle_failure(format_errors(sqlsrv_errors()));
}

$tsql = "SELECT @@Version AS SQL_VERSION";

$stmt = sqlsrv_query($conn, $tsql);
if ($stmt === false) {
    handle_failure(format_errors(sqlsrv_errors()));
}

$row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
if ($row === null || $row === false) {
    handle_failure("Query returned no rows.");
}

echo "<h1>Success</h1>";
echo htmlspecialchars($row['SQL_VERSION']);

sqlsrv_free_stmt($stmt);
sqlsrv_close($conn);
?>

PDO_SQLSRV példa

<?php
$serverName = getenv('SQL_SERVER_NAME');
$databaseName = getenv('SQL_DATABASE');
$uid = getenv('SQL_UID');
$pwd = getenv('SQL_PWD');

if ($serverName === false || $serverName === ''
    || $databaseName === false || $databaseName === ''
    || $uid === false || $uid === ''
    || $pwd === false || $pwd === '') {
    handle_failure(new RuntimeException("Set SQL_SERVER_NAME, SQL_DATABASE, SQL_UID, and SQL_PWD."));
}

$databaseName = '{' . str_replace('}', '}}', $databaseName) . '}';
$uid = '{' . str_replace('}', '}}', $uid) . '}';
$pwd = '{' . str_replace('}', '}}', $pwd) . '}';

function handle_failure($exception) {
    error_log($exception->getMessage());
    http_response_code(500);
    echo "<h1>Failure</h1>";
    echo "An error occurred. Check the server error log for details.";
    exit(1);
}

try {
    $conn = new PDO(
        "sqlsrv:server=$serverName;Database=$databaseName;Encrypt=1;TrustServerCertificate=0",
        $uid,
        $pwd
    );
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $tsql = "SELECT @@Version AS SQL_VERSION";

    $stmt = $conn->query($tsql);
    $row = $stmt->fetch(PDO::FETCH_ASSOC);
    if ($row === false) {
        throw new RuntimeException("Query returned no rows.");
    }

    echo "<h1>Success</h1>";
    echo htmlspecialchars($row['SQL_VERSION']);
} catch (Throwable $exception) {
    handle_failure($exception);
}

unset($stmt);
unset($conn);
?>

Mutasson a böngészőre http://localhost/testsql.php (http://localhost:8080/testsql.php macOS rendszeren). Egy sikeres kapcsolat megjeleníti az adatbázis-szerver verziókarakterláncát. Mindkét példa hibaadatokat ír a PHP hibanaplóba. Ha az oldal hibát mutat, nézd meg azt a naplót.

A parancssori és a webszerver viselkedésének összehasonlításához állítsd be ugyanazokat a környezeti változókat a terminálhoz, és futtasd:

php testsql.php

Ha a parancssorról futni sikerül, de a böngészőben semmi sem jelenik meg, nézd meg az Apache naplófájlokat. További segítségért lásd: A PHP SQL illesztőprogram támogatási forrásai.

Értékeld külön a kapcsolódási programokat az SQL Server, az Azure SQL Database, az Azure SQL Managed Instance, az Azure Synapse Analytics, a Microsoft Fabric SQL-adatbázisa és a Microsoft Fabric Warehouse esetén. A kiválasztott hitelesítési módszert, a kapcsolati lehetőségeket és a lekérdezést a célpontnak támogatnia kell. A telepítés kliensoldali. Egy sikeres kiterjesztési ellenőrzés nem bizonyítja, hogy a célpont elfogadja a hitelesítő adatokat, megbízik az ügyfélben, vagy támogatja az összes adatbázis-funkciót.

Telepítés hibaelhárítása

Tünet Tulajdonosi réteg Helyesbítő intézkedés
A PIE nem talál phpize, php-config, vagy fejléceket PHP fejlesztési csomagok Telepítsd a fejlesztőcsomagot a cél PHP verzióhoz, és add meg a megfelelő --with-php-config opciót
A fordítás nem sikerül, mert hiányzik egy C++ fordító Operációs rendszer buildeszközei Telepítsd a C++ platform fordítócsomagját, például g++ vagy gcc-c++
A fordítás nem találja sql.h ODBC fejlesztőcsomag vagy fordító elérési útjai Telepítse a unixodbc-dev vagy a unixODBC-devel elemet; Apple szilíciumon állítsa be a Homebrew include és könyvtár zászlókat
php --ri azt mondja, a bővítmény nincs jelen PHP konfiguráció Vizsgáld meg a betöltött php.ini fájlt és a beolvasási könyvtárat, add hozzá a helyes bejegyzést, és indítsd újra a folyamatot
PDO-jelentések could not find driver PDO_SQLSRV betöltési vagy PDO betöltési sorrend Győződj meg arról, hogy a PDO először töltődik be, és a PDO_SQLSRV egy később beolvasott konfigurációs fájlt használ
A CLI működik, de az Apache, nginx vagy PHP-FPM meghibásodik SAPI-specifikus konfiguráció Hasonlítsd össze a CLI kimenetet a következővel: phpinfo(), konfiguráld a web SAPI-t, és indítsd újra.
A böngésző HTTP 502-t ad vissza nginx-en át nginx–PHP-FPM útválasztás Ellenőrizd a fastcgi_pass socketet a telepített PHP-FPM-verzióval, és ellenőrizd, hogy működik a szolgáltatás
A böngészőminta hiányzó környezeti értékeket jelent Webszerver vagy PHP-FPM környezet Konfiguráld a változókat a kiválasztott webes futtatókörnyezethez, majd indítsd újra a kiválasztott webes futtatókörnyezetet
A bővítmények betöltődnek, de a kapcsolat létrehozása sikertelen ODBC, hálózat, tanúsítvány, hitelesítés vagy SQL termék Olvasd el az SQLSTATE és a natív hibát a szervernaplóból; ne építsd újra a bővítményt, kivéve, ha a hiba a betöltéssel vagy a bináris kompatibilitással kapcsolatos.

Távolítsd el az ideiglenes tesztkonfigurációt

Ellenőrzés után:

  1. Töröld testsql.php, verify-php-drivers.php, és bármely ideiglenes phpinfo() oldalt a dokumentum gyökéréből.

  2. Távolítsd el az ideiglenes hitelesítő adatokat és környezeti továbbítási bejegyzéseket.

  3. Töltsd újra a szolgáltatáskezelőt, amikor megváltoztatod a systemd felülbírálását, majd indítsd újra a PHP-FPM-et vagy a webszervert.

  4. Tartsd meg azokat a bővítménybejegyzéseket és telepített csomagokat, amelyeket az alkalmazás igényel.