Linux ve macOS'a PHP için Microsoft Sürücülerini yükleyin

Bu talimatlar PHP, SQL Server için Microsoft ODBC Sürücüsü ve SQLSRV ile PDO_SQLSRV uzantılarını yükler. Her sekme, yükleme yaptığı depo tarafından sağlanan PHP paketini kullanır, bu nedenle komutlardaki sürüm sekmeden sekmeye farklılık gösterir. Eğer o depo farklı bir sürüm sunuyorsa, destek matrisinde listelenen başka bir PHP sürümüyle değiştirin.

SQLSRV ve PDO_SQLSRV sürücüleri aynı ODBC bağımlılığını kullanır ve bağımsız olarak kurulabilir. Uygulamanız her iki sürücüyü kullanıyorsa her iki uzantını da yükleyin.

İşlemin sonunda, CLI ve seçilen web sunucusu çalışma zamanı her iki uzantıyı yüklemeli, her iki PHP API'si kullanılabilir olmalı ve her API için örneklerin veritabanı sunucusu sürümünü döndürmesi gerekir.

Başlamadan önce

  1. Mevcut sürücü sürümü tarafından desteklenen ve işletim sistemi sürümünüz için mevcut bir PHP sürümünü seçin.

  2. Hangi PHP çalışma zamanlarına ihtiyacınız olduğuna karar verin:

    • Betikler, planlanmış görevler veya çalışanlar için CLI.
    • Apache tarafından barındırılan PHP için Apache modülü.
    • nginx veya Apache FastCGI yapılandırması için PHP-FPM.
  3. İşletim sistemi mimarisini onaylayın. Yayınlanan Linux arşivleri x64 ikili arşivleri içerirken, yayımlanan macOS arşivleri Arm64 ikili dosyalarını içerir. PIE, bilgisayardaki PHP kurulumu için derlenir ve bu makaledeki ana kurulum yoludur.

  4. Microsoft ODBC Sürücüsünü ve unixODBC geliştirme paketini yükleyin. Microsoft paketi veritabanı iletişimini yönetir. UnixODBC paketi, SQLSRV ve PDO_SQLSRV oluşturmak için gereken başlıkları sağlar.

  5. Bir uzantı kurduktan veya değiştirdikten sonra her web sunucusunu, PHP-FPM havuzunu ve uzun süreli çalışan işçiyi yeniden başlatmayı planlayın.

Platform paket yöneticisi PHP ve yerel ön koşulları yükler. PIE, PHP uzantılarını oluşturur ve kurar. PHP yapılandırması, her çalışma zamanının onları yükleyip yüklemeyeceğini kontrol eder. ODBC sürücüsü, uzantı yüklendikten sonra veritabanı iletişimi ve şifrelemesini yönetir.

Sürücüleri PIE ile kur

PIE, PHP Eklenti Yükleyicisi, mevcut sürücü sürümleri için desteklenen eklenti yükleyicisidir. Bu sistem, artık kullanılmayan PHP Extension Community Library (PECL) iş akışının yerini alır.

Sürücüleri yüklemeden önce aşağıdaki bölümlerdeki platform ön koşullarını tamamlayın. Sonra PIE ve her sürücüyü ayrı ayrı kurun:

PIE'yi yükle

PIE, PHP 8.1 ve daha sonraki sürümlerde çalışır. O kurulumun geliştirme araçlarını seçtiğinizde, başka bir PHP kurulumuna bir eklenti yükleyebilir.

Devam etmeden önce ve curl'yi kurun. Platform bölümleri, minimal bir kurulumun bunu sağlamayabileceği durumlarda curl içerir.

PIE PHP arşivini (PHAR) indirin ve yüklemeden veya çalıştırmadan önce GitHub komut satırı arayüzü (CLI) ile doğrulayın:

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"

Sadece doğrulama başarılı olursa devam edin:

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

Geçici dizin hesabınıza özeldir. İndirme veya doğrulama başarısız olursa, PHAR'ı kurmayın veya çalıştırmayın. Tekrar denemeden önce geçici dosya ve dizini kaldırın.

Yüklenmiş PHAR'ın kullanmayı planladığınız PHP çalıştırılabilir dosyayla çalıştığını doğrulayın:

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

SQLSRV ve PDO_SQLSRV sürücülerini kur

Linux ve macOS'ta PIE, ihtiyaç duyduğu derleyici ve PHP geliştirme araçlarını kontrol eder. PIE'yi çalıştırmadan önce platform ODBC geliştirme paketini ve bir C++ derleyicisini kurun. PIE'yi etkileşimli bir terminalden çalıştırın. Sistem dizinlerine dosyaları kurmak için izne ihtiyaç duyduğunda şifrenizi sudo isteyebilir.

PIE, onu çağırmak için kullanılan PHP kurulumunu hedefliyor. Sürümlü bir kurulum için, geliştirme araçlarını seçmek üzere --with-php-config öğesini her kurulum komutuna ekleyin. Örneğin, amaçlanan araç pie install --with-php-config=/usr/bin/php-config8.4 microsoft/sqlsrv olduğunda /usr/bin/php-config8.4 kullanın. Aynı seçeneği uygulayın.microsoft/pdo_sqlsrv Alpine, versiyonlanmış çalıştırılabilir isimler kullanır; bu bölümdeki sürüm numarası olmayan komutlar yerine Alpine komutlarını izleyin.

Her uzantı için bir komut çalıştırın. Bu komutlar PIE'nin varsayılan PHP kurulumunu kullanır:

pie install microsoft/sqlsrv
pie install microsoft/pdo_sqlsrv

PIE, platformun PHP yapılandırma araçları veya bir extension= giriş aracılığıyla her uzantıyı etkinleştirmeye çalışır ve yapamazsa uyarır. PHP, her yürütme ortamı için bir sunucu uygulama programlama arayüzü (SAPI) kullanır. Debian, Ubuntu ve SUSE'de komut satırı, Apache ve PHP FastCGI Process Manager (PHP-FPM) yapılandırmaları farklı olabilir. Başarılı bir komut satırı kurulumu, bir web sunucusunun sürücüleri yüklediğini doğrulamaz.

Komut satırı için php --ini öğesini kontrol edin. Web sunucusu için geçici phpinfo() bir sayfa oluşturmadan önce, tanı sayfası erişimini kısıtlayın. Her çalışma zamanı için Yüklenen Yapılandırma Dosyasını ve .initaranmış dosyaları kontrol edin. Eğer girdiler eksikse, bunları doğru yükleme sırasıyla eklemek için Linux ve macOS'ta sürücüleri yükleme bölümünü takip edin. Yapılandırma değişikliklerinden sonra web sunucusunu veya PHP-FPM yeniden başlatın. Red Hat genellikle php.ini öğesini SAPI'ler arasında paylaşır, ancak tek bir PIE çalıştırmasına güvenmeden önce aktif yapılandırmayı doğrulayın.

Platformunuza yükleyin

İşletim sisteminizi ve web sunucu yapılandırmanızı seçin. O sekmedeki kurulum adımlarını tamamlayın, ardından Kurulumunuzu test etme bölümünü izleyin.

Ubuntu'ya yükleme

Uyarı

Aşağıdaki komutlar, desteklenen bir PHP sürümünü seçebilmeniz için packages.sury.org PHP deposunu kullanır. Ubuntu sürümünüz için ODBC sürücüsünü yüklemek için resmi Microsoft talimatlarını kullanın.

Adım 1. PHP yükleme (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

Adım 2. Önkoşulları yükleme (Ubuntu)

Linux üzerinde SQL Server için Microsoft ODBC Sürücüsünü Yükle yönergelerini izleyin, ardından geliştirme üstbilgilerini yükleyin.

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

Adım 3. Microsoft SQL Server için PHP sürücülerini PIE ile yükleyin (Ubuntu)

Sürücüleri PIE ile yükleyin adımını izleyin ve --with-php-config=/usr/bin/php-config8.4 öğesini her iki kurulum komutuna da ekleyin. Komut satırı yapılandırma dosyalarını kontrol edin.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

Adım 4. Apache'yi yükleme ve sürücü yüklemesini yapılandırma (Ubuntu)

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

Adım 5. Apache'yi yeniden başlatın ve örnek betiği (Ubuntu) test edin

sudo systemctl restart apache2

Yüklemenizi test etmek için bu belgenin sonundaki Yüklemenizi test etme konusuna bakın.

Eski PECL kurulumu

PECL, mevcut sürücü sürümleri için artık önerilmemektedir. Yeni kurulumlar ve yükseltmeler için PIE kullanın. Mevcut bir dağıtım PECL'e sabitlenmişse, paket sürümlerini PHP çalışma zamanıyla uyumlu tutun ve PIE'ye geçiş planlayın.

Kurulumunuzu test edin

Komut satırı çalışma zamanını doğrulayın. Alpine'da php yerine php84 koyun. Başka bir dağıtımda sürümlü bir PHP kurulumu için, onun karşılık gelen yürütülebilir dosyasını kullanın.

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

Her iki --ri komut da ExtensionVer içeren modül bilgilerini yazdırmalıdır. Modül listesinde ayrı sqlsrv ve pdo_sqlsrv satırlar olmalıdır.

Bir bağlantıyı test etmeden önce, her iki PHP API arabirimini şu şekilde verify-php-drivers.phpdoğrulayın:

<?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);

Beklenen çıkış:

SQLSRV: loaded
PDO_SQLSRV: loaded

PHP-FPM veya web sunucusu için, geçici sayfa oluşturmadan önce phpinfo(). Yüklenmiş Yapılandırma Dosyası, extension_dir ve her iki sürücü bölümünü de onaylayın. Yapılandırmayı değiştirdikten veya bir uzantıyı değiştirdikten sonra PHP-FPM veya web sunucusunu yeniden başlatın. Doğrulamadan sonra sayfayı kaldırın.

Canlı bağlantıyı test etmek için, sisteminizin belge kökünde testsql.php adlı bir dosya oluşturun. Bu yol Ubuntu, Debian ve Red Hat için /var/www/html, SUSE için /srv/www/htdocs, Alpine için /var/www/localhost/htdocs veya macOS için $(brew --prefix)/var/www'dır. Betiği çalıştırmadan önce PHP süreci için SQL_DATABASE, SQL_UID, SQL_PWD ve SQL_SERVER_NAME ortam değişkenlerini ayarlayın. Web kök dizini altında bir dosyada kimlik bilgilerini sert kodlamayın.

Komut satırı testi için, shell geçmişine şifre girmeden ortam değişkenlerini ayarlamak için etkileşimli istemleri kullanın.

Bir Apache modül testi için, kimlik bilgilerini sitenin genel olarak okunabilir yapılandırma dosyasında tutmayın:

  1. Belge kök dizininin dışında özel bir dosya oluşturun. Apache'nin yapılandırma dizininde kullanılmayan bir dosya adı kullanın. Linux'ta:

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

    Red Hat'te /etc/apache2 yerine /etc/httpd kullanın. macOS'ta, dosyayı Homebrew'ün Apache'sini başlatan hesap olarak oluşturun:

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

    Bu ayarları yalnızca dosya sahibi ve root okuyabiliyor. Apache'yi başlatan hesap dosyayı okuyabilmelidir.

  2. Özel dosyayı bir metin düzenleyicide düzenleyin ve şu girişleri ekleyin:

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

    Çift tırnaklı argümanlar içinde, her bir değişmez ters eğik çizgi için \" ve her bir değişmez çift tırnak için \\ yazın. Tırnak içinde ön ve son boşlukları koruyun. Apache, ${NAME} referanslarının da yerine geçer. Bir değer bu diziyi veya satır sonunu içeriyorsa, bunun yerine komut satırı testini kullanın. Daha fazla bilgi için Apache yapılandırmasında tırnaklama ve kaçış konusuna bakın.

  3. Sitenin sanal barındırıcısının içinde, yalnızca testsql.php için özel dosyayı içeren bir Files bloğu ekleyin. Eğer sanal bir host yapılandırılmadıysa, bloğu ana sunucu yapılandırmasına yerleştirin. Yer tutucuyu özel dosyanın mutlak yolu ile değiştirin:

    <Files "testsql.php">
        Include "<absolute-path-to-private-file>"
    </Files>
    
  4. Apache'yi yeniden başlat. Test yaptıktan sonra eklediğiniz Files bloğu kaldırın, özel dosyayı silin ve Apache'yi yeniden başlatın. İlişkili olmayan site ayarlarını tutun.

PHP-FPM, varsayılan olarak miras alınan ortam değişkenlerini temizler ve nginx ortamını PHP-FPM'ye geçirmez. Aşağıdaki Ubuntu veya Red Hat prosedürünü yalnızca izole bir test PHP-FPM servis ve havuzla kullanın. Başka uygulamaları çalıştıran bir servise veya havuza test kimlik bilgileri eklemeyin: o havuzdaki her script bunları okuyabilir. Paylaşılan barındırma kullanıyorsanız, komut satırı testini kullanın.

  1. Document root dizininin dışında, örneğin /etc/php-sql-driver-test.env gibi, root'a ait bir dosya oluşturun ve erişimi kısıtlayın:

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

    Bağlantı ayarlarını dosyaya ekleyin:

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

    Her ayarı tek bir satırda tutun. Çift tırnak içinde, her bir düz anlamlı ters eğik çizgi için \" ve her bir düz anlamlı çift tırnak için \\ yazın. Dolar işaretleri ve backtick'ler shell ifadeleri olarak değerlendirilmez. Dosyayı doğrudan düzenleyin, çalıştırmak veya bir kabukta source etmek yerine. Daha fazla bilgi için systemd EnvironmentFile sözdizimi sayfasına bakınız.

  2. Ubuntu’da sudo systemctl edit php-fpm veya Red Hat’te sudo systemctl edit php8.4-fpm çalıştırın. Bu systemd override'ını ekleyin:

    [Service]
    EnvironmentFile=/etc/php-sql-driver-test.env
    
  3. Bu girişleri aktif PHP-FPM havuz yapılandırmasına ekleyin. Yaygın konumlar Ubuntu'da /etc/php/8.4/fpm/pool.d/www.conf ve Red Hat'te /etc/php-fpm.d/www.conf:

    env[SQL_SERVER_NAME] = $SQL_SERVER_NAME
    env[SQL_DATABASE] = $SQL_DATABASE
    env[SQL_UID] = $SQL_UID
    env[SQL_PWD] = $SQL_PWD
    
  4. Systemd'yi yeniden yükleyin ve ilgili PHP-FPM hizmetini yeniden başlatın:

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

    Red Hat'te php8.4-fpm yerine php-fpm kullanın.

Testten sonra geçici ortam dosyasını, eklediğiniz EnvironmentFile= girdisini, test havuzu girdilerini ve testsql.php kaldırın. Hizmet geçersiz kılma dosyasını sadece bu test için oluşturduysanız ve başka ayar içermiyorsa silin. Tüm önceden var olan geçersiz kılmaları ve havuz ayarlarını koruyun. Systemd'yi yeniden yükleyin ve test konfigürasyonunu kaldırdıktan sonra PHP-FPM'yi yeniden başlatın.

SQLSRV örneği

Çevre değerlerini değiştirmeden tutun. Her örnek, bağlanmadan önce eksik veya boş ayarları reddediyor. Her örnek ardından kapatma süslü parantezlerini iki kez yazar ve veritabanı adı, kullanıcı adı ve şifreyi sürücüye iletmeden önce dış süslü parantezler ekler. Bu kodlama, literal süslü parantezleri korur ve noktalı virgüllerin bağlantı seçeneklerini ayırmasını engeller.

<?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 örnek

<?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);
?>

Tarayıcınızı http://localhost/testsql.php konumuna yönlendirin (macOS'ta http://localhost:8080/testsql.php). Başarılı bir bağlantı, veritabanı sunucusunun sürüm dizisini gösterir. Her iki örnek de hata detaylarını PHP hata kaydına yazıyor. Sayfada bir arıza görünüyorsa, o logu kontrol edin.

Komut satırı ve web sunucusu davranışını karşılaştırmak için, terminaliniz için aynı ortam değişkenlerini ayarlayın ve çalıştırın:

php testsql.php

Komut satırından çalıştırmak başarılı olursa ama tarayıcınızda hiçbir şey görünmüyorsa, Apache log dosyalarını kontrol edin. Daha fazla yardım için, PHP SQL sürücüsü için Destek kaynaklarına bakınız.

SQL Server, Azure SQL Veritabanı, Azure SQL Yönetilen Örneği, Azure Synapse Analytics, Microsoft Fabric'teki SQL veritabanı ve Microsoft Fabric'teki Warehouse için bağlantı programlarını ayrı ayrı değerlendirin. Seçilen kimlik doğrulama yöntemi, bağlantı seçenekleri ve sorgu hedef tarafından desteklenmelidir. Kurulum istemci tarafındadır. Başarılı bir uzatma kontrolü, hedefin kimlik bilgilerini kabul ettiğini, istemciye güvendiğini veya her veritabanı özelliğini desteklediğini kanıtlamaz.

Yükleme sorunlarını giderme

Belirti Sahip olan katman Düzeltici eylem
PIE can't find php-config, phpize veya başlıkları bulamıyor PHP geliştirme paketleri Hedef PHP sürümü için geliştirme paketini yükleyin ve eşleşen --with-php-config seçeneğini belirtin
Derleme başarısız olur çünkü bir C++ derleyicisi eksik İşletim sistemi oluşturma araçları Platform C++ derleyici paketini kur, örneğin g++ veya gcc-c++
Derleme sql.h öğesini bulamıyor ODBC geliştirme paketi veya derleyici yolları Yükleyin unixodbc-dev veya unixODBC-devel; Apple silikonunda, Homebrew include ve library bayraklarını ayarlayın
php --ri Uzantının olmadığını söylüyor PHP yapılandırması Yüklenen php.ini ve tarama dizinini inceleyin, doğru girişi ekleyin ve süreci yeniden başlatın
PDO rapor eder could not find driver PDO_SQLSRV yükleme veya PDO yükleme sırası PDO'nun önce yüklendiğini ve PDO_SQLSRV'nin daha sonra taranan bir yapılandırma dosyasıyla yüklendiğini onaylayın
CLI çalışıyor ama Apache, nginx veya PHP-FPM çalışmıyor SAPI'ye özgü yapılandırma CLI çıkışını phpinfo() ile karşılaştır, web SAPI'yi yapılandır ve yeniden başlat
Tarayıcı, nginx üzerinden HTTP 502 döndürüyor nginx'i PHP-FPM'e yönlendirme Soketi fastcgi_pass kurulu PHP-FPM sürümüyle karşılaştırın ve servisin çalıştığını doğrulayın
Tarayıcı örneği, eksik ortam değerlerini bildirir Web sunucusu veya PHP-FPM ortamı Seçilen web çalışma zamanı için değişkenleri yapılandırın, ardından web çalışma zamanını yeniden başlatın
Uzantılar yükleniyor ama bağlantı kurulamıyor ODBC, ağ, sertifika, kimlik doğrulama, SQL ürünü SQLSTATE ve yerel hatayı sunucu günlüğünden okuyun; hata yükleme veya ikili uyumluluğu belirtmedikçe uzantıyı yeniden oluşturmayın

Geçici test yapılandırmasını kaldır

Doğrulamadan sonra:

  1. Belge kökünden verify-php-drivers.php, phpinfo() ve herhangi bir geçici testsql.php sayfasını silin.

  2. Geçici kimlik bilgilerini ve ortam yönlendirme girişlerini kaldırın.

  3. Bir systemd override ayarını değiştirdiğinizde servis yöneticisini yeniden yükleyin, sonra PHP-FPM veya web sunucusunu yeniden başlatın.

  4. Uygulamanın gerektirdiği eklenti girişlerini ve yüklü paketleri koruyun.