Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Följande instruktioner förutsätter en ren miljö och visar hur du installerar PHP 8.1, Microsoft ODBC-drivrutinen, Apache-webbservern och Microsoft Drivers for PHP för SQL Server på Ubuntu, Red Hat, Debian, SUSE, Alpine och macOS. De här anvisningarna rekommenderar att du installerar drivrutinerna med PECL, men du kan också ladda ned de fördefinierade binärfilerna från Microsoft Drivers for PHP för SQL Server GitHub-projektsidan och installera dem enligt anvisningarna i Läsa in Microsoft-drivrutiner för PHP för SQL Server. En förklaring av tilläggets inläsning och varför vi inte lägger till tilläggen i php.inifinns i avsnittet om att läsa in drivrutinerna.
Följande instruktioner installerar PHP 8.1 som standard med , pecl installom PHP 8.1-paketen är tillgängliga. Du kan behöva köra pecl channel-update pecl.php.net först. Vissa Linux-distributioner som stöds är som standard PHP 7.1 eller tidigare, vilket inte stöds för den senaste versionen av PHP-drivrutinerna för SQL Server. Se anteckningarna i början av varje avsnitt för att installera PHP 8.2 eller 8.3 i stället.
Instruktioner finns även för att installera PHP FastCGI Process Manager, PHP-FPM, på Ubuntu. PHP-FPM behövs om du använder nginx-webbservern i stället för Apache.
De här instruktionerna innehåller kommandon för att installera både SQLSRV- och PDO_SQLSRV-drivrutiner, men drivrutinerna kan installeras och fungera oberoende av varandra. Användare som är bekväma med att anpassa sin konfiguration kan justera dessa instruktioner så att de är specifika för SQLSRV eller PDO_SQLSRV. Båda drivrutinerna har samma beroenden såvida inget annat anges nedan.
Se SupportMatris för den senaste versionen av operativsystem som stöds.
Anmärkning
Kontrollera att du har installerat den senaste ODBC-drivrutinsversionen för att säkerställa optimal prestanda och säkerhet. Installationsinstruktioner finns i Installera Microsoft ODBC-drivrutinen för SQL Server (Linux) eller Installera Microsoft ODBC-drivrutinen för SQL Server (macOS).
Installera på Ubuntu
Anmärkning
Om du vill installera PHP 8.2 eller 8.3 ersätter du 8.1 med 8.2 eller 8.3 i följande kommandon.
Steg 1. Installera PHP (Ubuntu)
sudo su
add-apt-repository ppa:ondrej/php -y
apt-get update
apt-get install php8.1 php8.1-dev php8.1-xml -y --allow-unauthenticated
Steg 2. Installera förutsättningar (Ubuntu)
Installera ODBC-drivrutinen för Ubuntu genom att följa anvisningarna i Installera Microsoft ODBC-drivrutinen för SQL Server (Linux). Se till att även installera unixodbc-dev paketet. Det används av pecl kommandot för att installera PHP-drivrutinerna.
sudo apt-get install unixodbc-dev
Steg 3. Installera PHP-drivrutinerna för Microsoft SQL Server (Ubuntu)
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
sudo su
printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/8.1/mods-available/sqlsrv.ini
printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/8.1/mods-available/pdo_sqlsrv.ini
exit
sudo phpenmod -v 8.1 sqlsrv pdo_sqlsrv
Om det bara finns en PHP-version i systemet kan det sista steget förenklas till phpenmod sqlsrv pdo_sqlsrv.
Steg 4. Installera Apache och konfigurera inläsning av drivrutiner (Ubuntu)
sudo su
apt-get install libapache2-mod-php8.1 apache2
a2dismod mpm_event
a2enmod mpm_prefork
a2enmod php8.1
exit
Steg 5. Starta om Apache och testa exempelskriptet (Ubuntu)
sudo service apache2 restart
Information om hur du testar installationen finns i Testa installationen i slutet av det här dokumentet.
Installera på Ubuntu med PHP-FPM
Anmärkning
Om du vill installera PHP 8.2 eller 8.3 ersätter du 8.1 med 8.2 eller 8.3 i följande kommandon.
Steg 1. Installera PHP (Ubuntu med PHP-FPM)
sudo su
add-apt-repository ppa:ondrej/php -y
apt-get update
apt-get install php8.1 php8.1-dev php8.1-fpm php8.1-xml -y --allow-unauthenticated
Kontrollera statusen för PHP-FPM-tjänsten genom att köra:
systemctl status php8.1-fpm
Steg 2. Installera krav (Ubuntu med PHP-FPM)
Installera ODBC-drivrutinen för Ubuntu genom att följa anvisningarna i Installera Microsoft ODBC-drivrutinen för SQL Server (Linux). Se till att även installera unixodbc-dev paketet. Det används av pecl kommandot för att installera PHP-drivrutinerna.
Steg 3. Installera PHP-drivrutinerna för Microsoft SQL Server (Ubuntu med PHP-FPM)
sudo pecl config-set php_ini /etc/php/8.1/fpm/php.ini
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
sudo su
printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/8.1/mods-available/sqlsrv.ini
printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/8.1/mods-available/pdo_sqlsrv.ini
exit
sudo phpenmod -v 8.1 sqlsrv pdo_sqlsrv
Om det bara finns en PHP-version i systemet kan det sista steget förenklas till phpenmod sqlsrv pdo_sqlsrv.
Kontrollera att sqlsrv.ini och pdo_sqlsrv.ini finns i /etc/php/8.1/fpm/conf.d/:
ls /etc/php/8.1/fpm/conf.d/*sqlsrv.ini
Starta om PHP-FPM-tjänsten:
sudo systemctl restart php8.1-fpm
Steg 4. Installera och konfigurera nginx (Ubuntu med PHP-FPM)
sudo apt-get update
sudo apt-get install nginx
sudo systemctl status nginx
Om du vill konfigurera nginx måste du redigera /etc/nginx/sites-available/default filen. Lägg till index.php i listan under avsnittet som säger # Add index.php to the list if you are using PHP:
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html index.php;
Därefter avkommentera och ändra avsnittet efter # pass PHP scripts to FastCGI server enligt följande:
# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
Steg 5. Starta om nginx och testa exempelskriptet (Ubuntu med PHP-FPM)
sudo systemctl restart nginx.service
Information om hur du testar installationen finns i Testa installationen i slutet av det här dokumentet.
Installera på Red Hat
Steg 1. Installera PHP (Red Hat)
Kör följande kommandon för att installera PHP på Red Hat 7:
Anmärkning
Om du vill installera PHP 8.2 eller 8.3 ersätter du remi-php81 med remi-php82 respektive remi-php83 i följande kommandon.
sudo su
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
subscription-manager repos --enable=rhel-7-server-optional-rpms
yum install yum-utils
yum-config-manager --enable remi-php81
yum update
# Note: The php-pdo package is required only for the PDO_SQLSRV driver
yum install php php-pdo php-pear php-devel
Installera PHP på Red Hat 8 genom att köra följande kommandon:
Anmärkning
Om du vill installera PHP 8.2 eller 8.3 ersätter du remi-8.1 med remi-8.2 respektive remi-8.3 i följande kommandon.
sudo su
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
dnf install yum-utils
dnf module reset php
dnf module install php:remi-8.1
subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms
dnf update
# Note: The php-pdo package is required only for the PDO_SQLSRV driver
dnf install php-pdo php-pear php-devel
Steg 2. Installera förutsättningar (Red Hat)
Installera ODBC-drivrutinen för Red Hat 7 eller 8 genom att följa anvisningarna i Installera Microsoft ODBC-drivrutinen för SQL Server (Linux). Se till att även installera unixodbc-dev paketet. Det används av pecl kommandot för att installera PHP-drivrutinerna.
Steg 3. Installera PHP-drivrutinerna för Microsoft SQL Server (Red Hat)
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
sudo su
echo extension=pdo_sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/30-pdo_sqlsrv.ini
echo extension=sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/20-sqlsrv.ini
exit
Du kan också installera från Remi-lagringsplatsen:
sudo yum install php-sqlsrv
Steg 4. Installera Apache (Red Hat)
sudo yum install httpd
SELinux installeras som standard och körs i framtvingande läge. Kör följande kommando för att tillåta Apache att ansluta till databaser via SELinux:
sudo setsebool -P httpd_can_network_connect_db 1
Steg 5. Starta om Apache och testa exempelskriptet (Red Hat)
sudo apachectl restart
Information om hur du testar installationen finns i Testa installationen i slutet av det här dokumentet.
Installera på Debian
Anmärkning
Om du vill installera PHP 8.2 eller 8.3 ersätter du 8.1 i följande kommandon med 8.2 eller 8.3.
Steg 1. Installera PHP (Debian)
sudo su
apt-get install curl apt-transport-https
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
apt-get update
apt-get install -y php8.1 php8.1-dev php8.1-xml php8.1-intl
Steg 2. Installera förutsättningar (Debian)
Installera ODBC-drivrutinen för Debian genom att följa anvisningarna i Installera Microsoft ODBC-drivrutinen för SQL Server (Linux). Se till att även installera unixodbc-dev paketet. Det används av pecl kommandot för att installera PHP-drivrutinerna.
Du kan också behöva generera rätt nationella inställningar för att få PHP-utdata att visas korrekt i en webbläsare. Kör till exempel följande kommandon för en_US UTF-8-språk:
sudo su
sed -i 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/g' /etc/locale.gen
locale-gen
Du kan behöva lägga till /usr/sbin i din $PATH, eftersom den körbara filen locale-gen är placerad där.
Steg 3. Installera PHP-drivrutinerna för Microsoft SQL Server (Debian)
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
sudo su
printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/8.1/mods-available/sqlsrv.ini
printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/8.1/mods-available/pdo_sqlsrv.ini
exit
sudo phpenmod -v 8.1 sqlsrv pdo_sqlsrv
Om det bara finns en PHP-version i systemet kan det sista steget förenklas till phpenmod sqlsrv pdo_sqlsrv. Precis som med locale-gen, finns phpenmod i /usr/sbin, så kan det vara så att du behöver lägga till den här katalogen i din $PATH.
Steg 4. Installera Apache och konfigurera drivrutinsinläsning (Debian)
sudo su
apt-get install libapache2-mod-php8.1 apache2
a2dismod mpm_event
a2enmod mpm_prefork
a2enmod php8.1
Steg 5. Starta om Apache och testa exempelskriptet (Debian)
sudo service apache2 restart
Information om hur du testar installationen finns i Testa installationen i slutet av det här dokumentet.
Installera på SUSE
Anmärkning
I följande instruktioner ersätter <SuseVersion> du med din version av SUSE – om du använder SUSE Linux Enterprise Server 15 blir det SLE_15_SP3 eller SLE_15_SP4 (eller senare). För SUSE 12 använder du SLE_12_SP5 (eller senare). Alla versioner av PHP är inte tillgängliga för alla versioner av SUSE Linux – se http://download.opensuse.org/repositories/devel:/languages:/php vilka versioner av SUSE som har standardversionen PHP tillgänglig eller kontrollera http://download.opensuse.org/repositories/devel:/languages:/php:/ vilka andra versioner av PHP som är tillgängliga för vilka versioner av SUSE.
Anmärkning
Paket för PHP 7.4 eller senare är inte tillgängliga för SUSE 12 från och med idag.
Steg 1. Installera PHP (SUSE)
sudo su
zypper -n ar -f https://download.opensuse.org/repositories/devel:languages:php/<SuseVersion>/devel:languages:php.repo
zypper --gpg-auto-import-keys refresh
zypper -n install php8 php8-pdo php8-devel php8-openssl
Steg 2. Installera förutsättningar (SUSE)
Installera ODBC-drivrutinen för SUSE genom att följa anvisningarna i Installera Microsoft ODBC-drivrutinen för SQL Server (Linux). Se till att även installera unixodbc-dev paketet. Det används av pecl kommandot för att installera PHP-drivrutinerna.
Steg 3. Installera PHP-drivrutinerna för Microsoft SQL Server (SUSE)
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
sudo su
echo extension=pdo_sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/pdo_sqlsrv.ini
echo extension=sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/sqlsrv.ini
exit
Steg 4. Installera Apache och konfigurera inläsning av drivrutiner (SUSE)
sudo su
zypper install apache2 apache2-mod_php8
a2enmod php8
echo "extension=sqlsrv.so" >> /etc/php8/apache2/php.ini
echo "extension=pdo_sqlsrv.so" >> /etc/php8/apache2/php.ini
exit
Steg 5. Starta om Apache och testa exempelskriptet (SUSE)
sudo systemctl restart apache2
Information om hur du testar installationen finns i Testa installationen i slutet av det här dokumentet.
Installera på Alpine
Anmärkning
PHP 8.1 eller senare kan vara tillgängligt från testnings- eller kantlagringsplatser för Alpine. Du kan i stället kompilera PHP från källan.
Steg 1. Installera PHP (Alpine)
PHP-paket för Alpine finns på lagringsplatsen edge/community . Kontrollera Enable Community Repository på deras wiki-sida. Lägg till följande rad i /etc/apk/repositoriesoch ersätt <mirror> med URL:en för en alpin lagringsplatsspegling:
http://<mirror>/alpine/edge/community
Kör sedan:
sudo su
apk update
# Note: The php*-pdo package is required only for the PDO_SQLSRV driver
# For PHP 7.*
apk add php7 php7-dev php7-pear php7-pdo php7-openssl autoconf make g++
# For PHP 8.*
apk add php8 php8-dev php8-pear php8-pdo php8-openssl autoconf make g++
# The following symbolic links are optional but useful
ln -s /usr/bin/php8 /usr/bin/php
ln -s /usr/bin/phpize8 /usr/bin/phpize
ln -s /usr/bin/pecl8 /usr/bin/pecl
ln -s /usr/bin/php-config8 /usr/bin/php-config
Steg 2. Installera förutsättningar (Alpine)
Installera ODBC-drivrutinen för Alpine genom att följa anvisningarna i Installera Microsoft ODBC-drivrutinen för SQL Server (Linux). Se till att även installera unixodbc-dev paketet (sudo apk add unixodbc-dev). Det används av pecl kommandot för att installera PHP-drivrutinerna.
Steg 3. Installera PHP-drivrutinerna för Microsoft SQL Server (Alpine)
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
sudo su
echo extension=pdo_sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/10_pdo_sqlsrv.ini
echo extension=sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/20_sqlsrv.ini
Steg 4. Installera Apache och konfigurera drift av drivrutiner (Alpine)
# For PHP 7.*
sudo apk add php7-apache2 apache2
# For PHP 8.*
sudo apk add php8-apache2 apache2
Steg 5. Starta om Apache och testa exempelskriptet (Alpine)
sudo rc-service apache2 restart
Information om hur du testar installationen finns i Testa installationen i slutet av det här dokumentet.
Installera på macOS
Om du inte redan har det installerar du brew enligt följande:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Anmärkning
Om du vill installera PHP 8.2 eller 8.3 ersätter du php@8.1 med php@8.2 respektive php@8.3 i följande kommandon.
Steg 1. Installera PHP (macOS)
brew tap
brew tap homebrew/core
brew install php@8.1
PHP bör nu vara i din väg. Kör php -v för att kontrollera att du kör rätt version av PHP. Om PHP inte finns i sökvägen eller om det inte är rätt version kör du följande kommandon:
brew link --force --overwrite php@8.1
Om du använder Apple M1 ARM64 kan du behöva ange sökvägen:
export PATH="/opt/homebrew/bin:$PATH"
Steg 2. Installera förutsättningar (macOS)
Installera ODBC-drivrutinen för macOS genom att följa anvisningarna i Installera Microsoft ODBC-drivrutinen för SQL Server (macOS).
Anmärkning
Om du använder Apple M1 ARM64-maskinvara installerar du Microsoft ODBC-drivrutinen 17.8+ direkt utan att använda emulatorn Rosetta 2.
Dessutom kan du behöva installera GNU-verktygen:
brew install autoconf automake libtool
Steg 3. Installera PHP-drivrutinerna för Microsoft SQL Server (macOS)
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
Om du använder Apple M1 ARM64 gör du följande i stället:
sudo CXXFLAGS="-I/opt/homebrew/opt/unixodbc/include/" LDFLAGS="-L/opt/homebrew/lib/" pecl install sqlsrv
sudo CXXFLAGS="-I/opt/homebrew/opt/unixodbc/include/" LDFLAGS="-L/opt/homebrew/lib/" pecl install pdo_sqlsrv
Steg 4. Installera Apache och konfigurera inläsning av drivrutiner (macOS)
Anmärkning
Den senaste macOS 11.0 Big Sur levereras med Apache 2.4 förinstallerad, men Apple har också tagit bort några nödvändiga skript. Lösningen är att installera Apache 2.4 via Homebrew och sedan konfigurera det, men det här är utanför omfånget för den här installationsguiden, så se Apache eller Homebrew för detaljerade instruktioner.
brew install apache2
För att hitta Apache-konfigurationsfilen för din Apache-inställning, kör: httpd.conf
/usr/local/bin/apachectl -V | grep SERVER_CONFIG_FILE
Följande kommandon lägger till den nödvändiga konfigurationen i httpd.conf. Se till att ersätta sökvägen som returneras av föregående kommando i stället för /usr/local/etc/httpd/httpd.conf:
echo "LoadModule php7_module /usr/local/opt/php@8.1/lib/httpd/modules/libphp7.so" >> /usr/local/etc/httpd/httpd.conf
(echo "<FilesMatch .php$>"; echo "SetHandler application/x-httpd-php"; echo "</FilesMatch>";) >> /usr/local/etc/httpd/httpd.conf
Steg 5. Starta om Apache och testa exempelskriptet (macOS)
sudo apachectl restart
Information om hur du testar installationen finns i Testa installationen i slutet av det här dokumentet.
Testa installationen
Om du vill testa det här exempelskriptet skapar du en fil med namnet testsql.php i systemets dokumentrot. Den här sökvägen finns /var/www/html/ på Ubuntu, Debian och Red Hat, /srv/www/htdocs på SUSE, /var/www/localhost/htdocs på Alpine eller /usr/local/var/www på macOS. Kopiera följande skript till det och ersätt servern, databasen, användarnamnet och lösenordet efter behov.
SQLSRV-exempel
<?php
$serverName = "yourServername";
$connectionOptions = array(
"database" => "yourDatabase",
"uid" => "yourUsername",
"pwd" => "yourPassword"
);
function exception_handler($exception) {
echo "<h1>Failure</h1>";
echo "Uncaught exception: " , $exception->getMessage();
echo "<h1>PHP Info for troubleshooting</h1>";
phpinfo();
}
set_exception_handler('exception_handler');
// Establishes the connection
$conn = sqlsrv_connect($serverName, $connectionOptions);
if ($conn === false) {
die(formatErrors(sqlsrv_errors()));
}
// Select Query
$tsql = "SELECT @@Version AS SQL_VERSION";
// Executes the query
$stmt = sqlsrv_query($conn, $tsql);
// Error handling
if ($stmt === false) {
die(formatErrors(sqlsrv_errors()));
}
?>
<h1> Success Results : </h1>
<?php
while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
echo $row['SQL_VERSION'] . PHP_EOL;
}
sqlsrv_free_stmt($stmt);
sqlsrv_close($conn);
function formatErrors($errors)
{
// Display errors
echo "<h1>SQL Error:</h1>";
echo "Error information: <br/>";
foreach ($errors as $error) {
echo "SQLSTATE: ". $error['SQLSTATE'] . "<br/>";
echo "Code: ". $error['code'] . "<br/>";
echo "Message: ". $error['message'] . "<br/>";
}
}
?>
PDO_SQLSRV exempel
<?php
try {
$serverName = "yourServername";
$databaseName = "yourDatabase";
$uid = "yourUsername";
$pwd = "yourPassword";
$conn = new PDO("sqlsrv:server = $serverName; Database = $databaseName;", $uid, $pwd);
// Select Query
$tsql = "SELECT @@Version AS SQL_VERSION";
// Executes the query
$stmt = $conn->query($tsql);
} catch (PDOException $exception1) {
echo "<h1>Caught PDO exception:</h1>";
echo $exception1->getMessage() . PHP_EOL;
echo "<h1>PHP Info for troubleshooting</h1>";
phpinfo();
}
?>
<h1> Success Results : </h1>
<?php
try {
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo $row['SQL_VERSION'] . PHP_EOL;
}
} catch (PDOException $exception2) {
// Display errors
echo "<h1>Caught PDO exception:</h1>";
echo $exception2->getMessage() . PHP_EOL;
}
unset($stmt);
unset($conn);
?>
Peka webbläsaren på https://localhost/testsql.php (https://localhost:8080/testsql.php på macOS). Nu bör du kunna ansluta till din SQL Server/Azure SQL-databas. Om du inte ser något meddelande om att SQL-versionen har slutförts kan du utföra grundläggande felsökning genom att köra skriptet från kommandoraden:
php testsql.php
Om det går att köra från kommandoraden men inget visas i webbläsaren kontrollerar du Apache-loggfilerna. Mer hjälp finns i Supportresurser för platser att gå till.
Se även
Komma igång med Microsoft-drivrutiner för PHP för SQL Server