Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Le istruzioni seguenti presuppongono un ambiente pulito e illustrano come installare PHP 8.1, il driver ODBC Microsoft, il server Web Apache e i driver Microsoft per PHP per SQL Server in Ubuntu, Red Hat, Debian, SUSE, Alpine e macOS. Queste istruzioni consigliano di installare i driver usando PECL, ma è anche possibile scaricare i file binari predefiniti dalla pagina del progetto GitHub driver Microsoft per PHP per SQL Server e installarli seguendo le istruzioni riportate in Caricamento dei driver Microsoft per PHP per SQL Server. Per una spiegazione del caricamento delle estensioni e del motivo per cui non si aggiungono le estensioni a php.ini, vedere la sezione sul caricamento dei driver.
Le istruzioni seguenti installano PHP 8.1 per impostazione predefinita usando pecl install, se sono disponibili i pacchetti PHP 8.1. Potrebbe essere necessario eseguire pecl channel-update pecl.php.net prima di tutto. Alcune distribuzioni Linux supportate per impostazione predefinita sono PHP 7.1 o versioni precedenti, che non sono supportate per la versione più recente dei driver PHP per SQL Server. Consultare le note all'inizio di ogni sezione per installare PHP 8.2 o 8.3.
Sono incluse anche istruzioni per l'installazione di PHP FastCGI Process Manager, PHP-FPM, in Ubuntu. PHP-FPM è necessario se si usa il server Web nginx anziché Apache.
Anche se queste istruzioni contengono comandi per installare i driver SQLSRV e PDO_SQLSRV, i driver possono essere installati e funzionano in modo indipendente. Gli utenti che hanno familiarità con la personalizzazione della configurazione possono modificare queste istruzioni in modo che siano specifiche di SQLSRV o PDO_SQLSRV. Entrambi i driver hanno le stesse dipendenze tranne dove indicato di seguito.
Per la versione più recente dei sistemi operativi supportati, vedere Matrice di supporto .
Annotazioni
Assicurarsi di aver installato la versione più recente del driver ODBC per garantire prestazioni e sicurezza ottimali. Per istruzioni sull'installazione, vedere Installare il driver MICROSOFT ODBC per SQL Server (Linux) o Installare il driver MICROSOFT ODBC per SQL Server (macOS).
Installazione in Ubuntu
Annotazioni
Per installare PHP 8.2 o 8.3, sostituire 8.1 con 8.2 o 8.3 nei comandi seguenti.
Passaggio 1: Installare 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
Passaggio 2. Installare i prerequisiti (Ubuntu)
Installare il driver ODBC per Ubuntu seguendo le istruzioni riportate in Installare il driver MICROSOFT ODBC per SQL Server (Linux). Assicurarsi di installare anche il unixodbc-dev pacchetto. Viene usato dal pecl comando per installare i driver PHP.
sudo apt-get install unixodbc-dev
Passaggio 3. Installare i driver PHP per 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
Se nel sistema è presente una sola versione di PHP, l'ultimo passaggio può essere semplificato in phpenmod sqlsrv pdo_sqlsrv.
Passaggio 4. Installare Apache e configurare il caricamento dei driver (Ubuntu)
sudo su
apt-get install libapache2-mod-php8.1 apache2
a2dismod mpm_event
a2enmod mpm_prefork
a2enmod php8.1
exit
Passaggio 5. Riavviare Apache e testare lo script di esempio (Ubuntu)
sudo service apache2 restart
Per testare l'installazione, vedere Test dell'installazione alla fine di questo documento.
Installazione in Ubuntu con PHP-FPM
Annotazioni
Per installare PHP 8.2 o 8.3, sostituire 8.1 con 8.2 o 8.3 nei comandi seguenti.
Passaggio 1: Installare PHP (Ubuntu con 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
Verificare lo stato del servizio PHP-FPM eseguendo:
systemctl status php8.1-fpm
Passaggio 2. Installare i prerequisiti (Ubuntu con PHP-FPM)
Installare il driver ODBC per Ubuntu seguendo le istruzioni riportate in Installare il driver MICROSOFT ODBC per SQL Server (Linux). Assicurarsi di installare anche il unixodbc-dev pacchetto. Viene usato dal pecl comando per installare i driver PHP.
Passaggio 3. Installare i driver PHP per Microsoft SQL Server (Ubuntu con 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
Se nel sistema è presente una sola versione di PHP, l'ultimo passaggio può essere semplificato in phpenmod sqlsrv pdo_sqlsrv.
Verificare che sqlsrv.ini e pdo_sqlsrv.ini si trovino in /etc/php/8.1/fpm/conf.d/:
ls /etc/php/8.1/fpm/conf.d/*sqlsrv.ini
Riavviare il servizio PHP-FPM:
sudo systemctl restart php8.1-fpm
Passaggio 4. Installare e configurare nginx (Ubuntu con PHP-FPM)
sudo apt-get update
sudo apt-get install nginx
sudo systemctl status nginx
Per configurare nginx, è necessario modificare il /etc/nginx/sites-available/default file. Aggiungere index.php all'elenco sotto la sezione che indica # 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;
Rimuovere quindi il commento e modificare la sezione seguente # pass PHP scripts to FastCGI server come segue:
# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
Passaggio 5. Riavviare nginx e testare lo script di esempio (Ubuntu con PHP-FPM)
sudo systemctl restart nginx.service
Per testare l'installazione, vedere Test dell'installazione alla fine di questo documento.
Installazione in Red Hat
Passaggio 1: Installare PHP (Red Hat)
Per installare PHP in Red Hat 7, eseguire i comandi seguenti:
Annotazioni
Per installare PHP 8.2 o 8.3, sostituire remi-php81 rispettivamente con remi-php82 o remi-php83 nei comandi seguenti.
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
Per installare PHP in Red Hat 8, eseguire i comandi seguenti:
Annotazioni
Per installare PHP 8.2 o 8.3, sostituire remi-8.1 con remi-8.2 o remi-8.3 rispettivamente nei comandi seguenti.
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
Passaggio 2. Installare i prerequisiti (Red Hat)
Installare il driver ODBC per Red Hat 7 o 8 seguendo le istruzioni riportate in Installare il driver MICROSOFT ODBC per SQL Server (Linux). Assicurarsi di installare anche il unixodbc-dev pacchetto. Viene usato dal pecl comando per installare i driver PHP.
Passaggio 3. Installare i driver PHP per 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
In alternativa, è possibile eseguire l'installazione dal repository Remi:
sudo yum install php-sqlsrv
Passaggio 4. Installare Apache (Red Hat)
sudo yum install httpd
SELinux viene installato per impostazione predefinita e funziona in modalità Enforcing. Per consentire ad Apache di connettersi ai database tramite SELinux, eseguire il comando seguente:
sudo setsebool -P httpd_can_network_connect_db 1
Passaggio 5. Riavviare Apache e testare lo script di esempio (Red Hat)
sudo apachectl restart
Per testare l'installazione, vedere Test dell'installazione alla fine di questo documento.
Installazione in Debian
Annotazioni
Per installare PHP 8.2 o 8.3, sostituire 8.1 nei comandi seguenti con 8.2 o 8.3.
Passaggio 1: Installare 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
Passaggio 2. Installare i prerequisiti (Debian)
Installare il driver ODBC per Debian seguendo le istruzioni riportate in Installare il driver MICROSOFT ODBC per SQL Server (Linux). Assicurarsi di installare anche il unixodbc-dev pacchetto. Viene usato dal pecl comando per installare i driver PHP.
Potrebbe anche essere necessario generare le impostazioni locali corrette per ottenere l'output PHP da visualizzare correttamente in un browser. Ad esempio, per le impostazioni locali en_US UTF-8, eseguire i comandi seguenti:
sudo su
sed -i 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/g' /etc/locale.gen
locale-gen
Potrebbe essere necessario aggiungere /usr/sbin all'oggetto $PATH, perché l'eseguibile locale-gen si trova in tale posizione.
Passaggio 3. Installare i driver PHP per 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
Se nel sistema è presente una sola versione di PHP, l'ultimo passaggio può essere semplificato in phpenmod sqlsrv pdo_sqlsrv. Come con locale-gen, phpenmod si trova in /usr/sbin , quindi potrebbe essere necessario aggiungere questa directory al proprio $PATH.
Passaggio 4. Installare Apache e configurare il caricamento del driver (Debian)
sudo su
apt-get install libapache2-mod-php8.1 apache2
a2dismod mpm_event
a2enmod mpm_prefork
a2enmod php8.1
Passaggio 5. Riavviare Apache e testare lo script di esempio (Debian)
sudo service apache2 restart
Per testare l'installazione, vedere Test dell'installazione alla fine di questo documento.
Installazione in SUSE
Annotazioni
Nelle istruzioni seguenti sostituire <SuseVersion> con la versione di SUSE: se si usa SUSE Linux Enterprise Server 15, verrà SLE_15_SP3 o SLE_15_SP4 (o versione successiva). Per SUSE 12, usare SLE_12_SP5 (o versione successiva). Non tutte le versioni di PHP sono disponibili per tutte le versioni di SUSE Linux. Fare riferimento a http://download.opensuse.org/repositories/devel:/languages:/php per vedere quali versioni di SUSE includono la versione predefinita di PHP, oppure controllare http://download.opensuse.org/repositories/devel:/languages:/php:/ per sapere quali altre versioni di PHP sono disponibili per ogni versione di SUSE.
Annotazioni
I pacchetti per PHP 7.4 o versioni successive non sono disponibili per SUSE 12, a partire da oggi.
Passaggio 1: Installare 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
Passaggio 2. Installare i prerequisiti (SUSE)
Installare il driver ODBC per SUSE seguendo le istruzioni riportate in Installare il driver MICROSOFT ODBC per SQL Server (Linux). Assicurarsi di installare anche il unixodbc-dev pacchetto. Viene usato dal pecl comando per installare i driver PHP.
Passaggio 3. Installare i driver PHP per 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
Passaggio 4. Installare Apache e configurare il caricamento dei driver (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
Passaggio 5. Riavviare Apache e testare lo script di esempio (SUSE)
sudo systemctl restart apache2
Per testare l'installazione, vedere Test dell'installazione alla fine di questo documento.
Installazione su Alpine
Annotazioni
PHP 8.1 o versione successiva può essere disponibile nei repository di test o edge per Alpine. È invece possibile compilare PHP dall'origine.
Passaggio 1: Installare PHP (Alpine)
I pacchetti PHP per Alpine sono disponibili nel edge/community repository.
Selezionare Enable Community Repository (Abilita repository community) nella pagina WIKI. Aggiungere la riga seguente a /etc/apk/repositories, sostituendo <mirror> con l'URL di un mirror del repository Alpine:
http://<mirror>/alpine/edge/community
Poi eseguire:
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
Passaggio 2. Installare Prerequisiti (Alpine)
Installare il driver ODBC per Alpine seguendo le istruzioni riportate in Installare il driver MICROSOFT ODBC per SQL Server (Linux). Assicurarsi di installare anche il unixodbc-dev pacchetto (sudo apk add unixodbc-dev). Viene usato dal pecl comando per installare i driver PHP.
Passaggio 3. Installare i driver PHP per 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
Passaggio 4. Installare Apache e configurare il caricamento dei driver (Alpine)
# For PHP 7.*
sudo apk add php7-apache2 apache2
# For PHP 8.*
sudo apk add php8-apache2 apache2
Passaggio 5. Riavviare Apache e testare lo script di esempio (Alpine)
sudo rc-service apache2 restart
Per testare l'installazione, vedere Test dell'installazione alla fine di questo documento.
Installazione in macOS
Se non è già disponibile, installare brew come segue:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Annotazioni
Per installare PHP 8.2 o 8.3, sostituire php@8.1 rispettivamente con php@8.2 o php@8.3 nei comandi seguenti.
Passaggio 1: Installare PHP (macOS)
brew tap
brew tap homebrew/core
brew install php@8.1
PHP dovrebbe ora trovarsi nel tuo path. Eseguire php -v per verificare che sia in esecuzione la versione corretta di PHP. Se PHP non è nel percorso o non è la versione corretta, eseguire i comandi seguenti:
brew link --force --overwrite php@8.1
Se si usa Apple M1 ARM64, potrebbe essere necessario impostare il percorso:
export PATH="/opt/homebrew/bin:$PATH"
Passaggio 2. Installare i prerequisiti (macOS)
Installare il driver ODBC per macOS seguendo le istruzioni riportate in Installare il driver MICROSOFT ODBC per SQL Server (macOS).
Annotazioni
Se si usa l'hardware APPLE M1 ARM64, installare microsoft ODBC driver 17.8+ direttamente senza usare l'emulatore Rosetta 2.
Inoltre, potrebbe essere necessario installare gli strumenti GNU make:
brew install autoconf automake libtool
Passaggio 3. Installare i driver PHP per Microsoft SQL Server (macOS)
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
Se si usa Apple M1 ARM64, eseguire invece le operazioni seguenti:
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
Passaggio 4. Installare Apache e configurare il caricamento dei driver (macOS)
Annotazioni
La versione più recente di macOS 11.0 Big Sur include Apache 2.4 preinstallato, ma Apple ha anche rimosso alcuni script necessari. La soluzione consiste nell'installare Apache 2.4 tramite Homebrew e quindi configurarla, ma questo non rientra nell'ambito di questa guida all'installazione, quindi consultare Apache o Homebrew per istruzioni dettagliate.
brew install apache2
Per trovare il file di configurazione di Apache, httpd.conf, per l'installazione di Apache, eseguire:
/usr/local/bin/apachectl -V | grep SERVER_CONFIG_FILE
I comandi seguenti aggiungono la configurazione necessaria a httpd.conf. Assicurarsi di sostituire il percorso restituito dal comando precedente al posto di /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
Passaggio 5. Riavviare Apache e testare lo script di esempio (macOS)
sudo apachectl restart
Per testare l'installazione, vedere Test dell'installazione alla fine di questo documento.
Test dell'installazione
Per testare questo script di esempio, creare un file denominato testsql.php nella radice del documento del sistema. Questo percorso si trova su /var/www/html/ in Ubuntu, Debian e Red Hat, su /srv/www/htdocs in SUSE, su /var/www/localhost/htdocs in Alpine o su /usr/local/var/www in macOS. Copiare lo script seguente, sostituendo il server, il database, il nome utente e la password in base alle esigenze.
Esempio di SQLSRV
<?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/>";
}
}
?>
Esempio di PDO_SQLSRV
<?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);
?>
Puntare il browser a https://localhost/testsql.php (https://localhost:8080/testsql.php in macOS). A questo momento dovrebbe essere possibile connettersi al database SQL Server/SQL di Azure. Se non viene visualizzato un messaggio di esito positivo che mostra le informazioni sulla versione di SQL, è possibile eseguire alcune operazioni di risoluzione dei problemi di base eseguendo lo script dalla riga di comando:
php testsql.php
Se l'esecuzione dalla riga di comando ha esito positivo, ma nel browser non viene visualizzato nulla, controllare i file di log di Apache. Per maggiori informazioni, vedere Risorse di supporto per le risorse disponibili.
Vedere anche
Introduzione ai driver Microsoft per PHP per SQL Server
Caricamento dei driver Microsoft per PHP per SQL Server
Requisiti di sistema per i driver Microsoft per PHP per SQL Server