Tutorial de instalação de Linux e macOS para Drivers da Microsoft para PHP para SQL ServerLinux and macOS Installation Tutorial for the Microsoft Drivers for PHP for SQL Server

As instruções a seguir consideram um ambiente limpo e mostram como instalar o PHP 7.x, o driver ODBC da Microsoft, o Apache e os Drivers da Microsoft para PHP para SQL Server no Ubuntu 16.04, 18.04 e 18.10, RedHat 7, Debian 8 e 9, Suse 12 e 15 e macOS 10.12, 10.13 e 10.14.The following instructions assume a clean environment and show how to install PHP 7.x, the Microsoft ODBC driver, Apache, and the Microsoft Drivers for PHP for SQL Server on Ubuntu 16.04, 18.04, and 18.10, RedHat 7, Debian 8 and 9, Suse 12 and 15, and macOS 10.12, 10.13, and 10.14. Estas instruções aconselham instalar os drivers usando PECL, mas você também pode baixar os binários pré-criados na página do projeto no Github Drivers da Microsoft para PHP para SQL Server e instalá-los seguindo as instruções em Carregando os Drivers Microsoft para PHP para SQL Server.These instructions advise installing the drivers using PECL, but you can also download the prebuilt binaries from the Microsoft Drivers for PHP for SQL Server Github project page and install them following the instructions in Loading the Microsoft Drivers for PHP for SQL Server. Para obter uma explicação do carregamento da extensão e por que não adicionamos as extensões ao php.ini, confira a seção sobre carregar os drivers.For an explanation of extension loading and why we do not add the extensions to php.ini, see the section on loading the drivers.

Essas instruções instalam o PHP 7.3 por padrão.These instructions install PHP 7.3 by default. Observe que algumas distribuições compatíveis do Linux têm como padrão o PHP 7.0 ou anterior, que não é compatível com os drivers PHP para SQL Server. Confira as observações no início de cada seção para instalar o PHP 7.1 ou 7.2.Note that some supported Linux distros default to PHP 7.0 or earlier, which is not supported for the PHP drivers for SQL Server -- please see the notes at the beginning of each section to install PHP 7.1 or 7.2 instead.

Conteúdo desta página:Contents of this page:

Instalar os drivers no Ubuntu 16.04, 18.04 e 18.10Installing the drivers on Ubuntu 16.04, 18.04, and 18.10

Observação

Para instalar o PHP 7.1 ou 7.2, substitua 7.3 por 7.1 ou 7.2 nos comandos a seguir.To install PHP 7.1 or 7.2, replace 7.3 with 7.1 or 7.2 in the following commands.

Etapa 1.Step 1. Instalar o PHPInstall PHP

sudo su
add-apt-repository ppa:ondrej/php -y
apt-get update
apt-get install php7.3 php7.3-dev php7.3-xml -y --allow-unauthenticated

Etapa 2.Step 2. Instalar pré-requisitosInstall prerequisites

Instale o driver ODBC para Ubuntu seguindo as instruções na página de instalação de Linux e macOS.Install the ODBC driver for Ubuntu by following the instructions on the Linux and macOS installation page.

Etapa 3.Step 3. Instalar os drivers PHP para Microsoft SQL ServerInstall the PHP drivers for Microsoft SQL Server

sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
sudo su
printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/7.3/mods-available/sqlsrv.ini
printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/7.3/mods-available/pdo_sqlsrv.ini
exit
sudo phpenmod -v 7.3 sqlsrv pdo_sqlsrv

Se houver apenas uma versão do PHP no sistema, a última etapa poderá ser simplificada para phpenmod sqlsrv pdo_sqlsrv.If there is only one PHP version in the system then the last step can be simplified to phpenmod sqlsrv pdo_sqlsrv.

Etapa 4.Step 4. Instalar o Apache e configurar o carregamento do driverInstall Apache and configure driver loading

sudo su
apt-get install libapache2-mod-php7.3 apache2
a2dismod mpm_event
a2enmod mpm_prefork
a2enmod php7.3
exit

Etapa 5.Step 5. Reiniciar o Apache e testar o script de amostraRestart Apache and test the sample script

sudo service apache2 restart

Para testar sua instalação, confira Testar a instalação no final deste documento.To test your installation, see Testing your installation at the end of this document.

Instalar os drivers no Red Hat 7Installing the drivers on Red Hat 7

Observação

Para instalar o PHP 7.1 ou 7.2, substitua remi-php73 por remi-php71 ou remi-php72, respectivamente, nos comandos a seguir.To install PHP 7.1 or 7.2, replace remi-php73 with remi-php71 or remi-php72 respectively in the following commands.

Etapa 1.Step 1. Instalar o PHPInstall PHP

sudo su
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
wget https://rpms.remirepo.net/enterprise/remi-release-7.rpm
rpm -Uvh remi-release-7.rpm epel-release-latest-7.noarch.rpm
subscription-manager repos --enable=rhel-7-server-optional-rpms
yum install yum-utils
yum-config-manager --enable remi-php73
yum update
yum install php php-pdo php-xml php-pear php-devel re2c gcc-c++ gcc

Etapa 2.Step 2. Instalar pré-requisitosInstall prerequisites

Instale o driver ODBC para Red Hat 7 seguindo as instruções na página de instalação de Linux e macOS.Install the ODBC driver for Red Hat 7 by following the instructions on the Linux and macOS installation page.

Etapa 3.Step 3. Instalar os drivers PHP para Microsoft SQL ServerInstall the PHP drivers for Microsoft SQL Server

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

Como alternativa, você pode baixar os binários pré-criados na página do projeto no Github ou instalar a partir do repositório do Remi:You can alternatively download the prebuilt binaries from the Github project page, or install from the Remi repo:

sudo yum install php-sqlsrv

Etapa 4.Step 4. Instalar o ApacheInstall Apache

sudo yum install httpd

O SELinux é instalado por padrão e é executado no modo de imposição.SELinux is installed by default and runs in Enforcing mode. Para permitir que o Apache se conecte aos bancos de dados por meio do SELinux, execute o seguinte comando:To allow Apache to connect to databases through SELinux, run the following command:

sudo setsebool -P httpd_can_network_connect_db 1

Etapa 5.Step 5. Reiniciar o Apache e testar o script de amostraRestart Apache and test the sample script

sudo apachectl restart

Para testar sua instalação, confira Testar a instalação no final deste documento.To test your installation, see Testing your installation at the end of this document.

Instalar os drivers no Debian 8 e 9Installing the drivers on Debian 8 and 9

Observação

Para instalar o PHP 7.1 ou 7.2, substitua 7.3 por 7.1 ou 7.2 nos comandos a seguir.To install PHP 7.1 or 7.2, replace 7.3 in the following commands with 7.1 or 7.2.

Etapa 1.Step 1. Instalar o PHPInstall PHP

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 php7.3 php7.3-dev php7.3-xml

Etapa 2.Step 2. Instalar pré-requisitosInstall prerequisites

Instale o driver ODBC para Debian seguindo as instruções na página de instalação de Linux e macOS.Install the ODBC driver for Debian by following the instructions on the Linux and macOS installation page.

Você também precisa gerar a localidade correta para que uma saída PHP seja exibida corretamente em um navegador.You may also need to generate the correct locale to get PHP output to display correctly in a browser. Por exemplo, para a localidade en_US UTF-8, execute os seguintes comandos:For example, for the en_US UTF-8 locale, run the following commands:

sudo su
sed -i 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/g' /etc/locale.gen
locale-gen

Etapa 3.Step 3. Instalar os drivers PHP para Microsoft SQL ServerInstall the PHP drivers for Microsoft SQL Server

sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
sudo su
printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/7.3/mods-available/sqlsrv.ini
printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/7.3/mods-available/pdo_sqlsrv.ini
exit
sudo phpenmod -v 7.3 sqlsrv pdo_sqlsrv

Se houver apenas uma versão do PHP no sistema, a última etapa poderá ser simplificada para phpenmod sqlsrv pdo_sqlsrv.If there is only one PHP version in the system then the last step can be simplified to phpenmod sqlsrv pdo_sqlsrv.

Etapa 4.Step 4. Instalar o Apache e configurar o carregamento do driverInstall Apache and configure driver loading

sudo su
apt-get install libapache2-mod-php7.3 apache2
a2dismod mpm_event
a2enmod mpm_prefork
a2enmod php7.3

Etapa 5.Step 5. Reiniciar o Apache e testar o script de amostraRestart Apache and test the sample script

sudo service apache2 restart

Para testar sua instalação, confira Testar a instalação no final deste documento.To test your installation, see Testing your installation at the end of this document.

Instalar os drivers no Suse 12 e 15Installing the drivers on Suse 12 and 15

Observação

Nas instruções a seguir, substitua por sua versão do Suse: se você estiver usando o Suse Enterprise Linux 15, ela será SLE_15 ou SLE_15_SP1.In the following instructions, replace with your version of Suse - if you are using Suse Enterprise Linux 15, it will be SLE_15 or SLE_15_SP1. Para o SuSE 12, use SLE_12_SP4 (ou superior, se aplicável).For Suse 12, use SLE_12_SP4 (or above if applicable). Nem todas as versões do PHP estão disponíveis para todas as versões do Suse Linux. Confira http://download.opensuse.org/repositories/devel:/languages:/php para ver quais versões do Suse têm a versão padrão do PHP disponível, ou http://download.opensuse.org/repositories/devel:/languages:/php:/ para ver quais versões do PHP estão disponíveis relativamente às versões do Suse.Not all versions of PHP are available for all versions of Suse Linux - please refer to http://download.opensuse.org/repositories/devel:/languages:/php to see which versions of Suse have the default version PHP available, or to http://download.opensuse.org/repositories/devel:/languages:/php:/ to see which other versions of PHP are available for which versions of Suse.

Observação

Pacotes para PHP 7.3 não estão disponíveis para o Suse 12.Packages for PHP 7.3 are not available for Suse 12. Para instalar o PHP 7.1, substitua a URL do repositório abaixo pela seguinte URL: https://download.opensuse.org/repositories/devel:/languages:/php:/php71/<SuseVersion>/devel:languages:php:php71.repo.To install PHP 7.1, replace the repository URL below with the following URL: https://download.opensuse.org/repositories/devel:/languages:/php:/php71/<SuseVersion>/devel:languages:php:php71.repo. Para instalar o PHP 7.2, substitua a URL do repositório abaixo pela seguinte URL: https://download.opensuse.org/repositories/devel:/languages:/php:/php72/<SuseVersion>/devel:languages:php:php72.repo.To install PHP 7.2, replace the repository URL below with the following URL: https://download.opensuse.org/repositories/devel:/languages:/php:/php72/<SuseVersion>/devel:languages:php:php72.repo.

Etapa 1.Step 1. Instalar o PHPInstall PHP

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 php7 php7-pear php7-devel php7-openssl

Etapa 2.Step 2. Instalar pré-requisitosInstall prerequisites

Instale o driver ODBC para Suse seguindo as instruções na página de instalação de Linux e macOS.Install the ODBC driver for Suse by following the instructions on the Linux and macOS installation page.

Etapa 3.Step 3. Instalar os drivers PHP para Microsoft SQL ServerInstall the PHP drivers for Microsoft SQL Server

Observação

Se você vir uma mensagem de erro dizendo Connection to 'pecl.php.net:443' failed: Unable to find the socket transport "ssl", edite o script pecl em /usr/bin/pecl e remova o comutador -n na última linha.If you get an error message saying Connection to 'pecl.php.net:443' failed: Unable to find the socket transport "ssl", edit the pecl script at /usr/bin/pecl and remove the -n switch in the last line. Esse comutador impede o PECL de carregar arquivos ini quando o PHP é chamado, o que impede o carregamento da extensão OpenSSL.This switch prevents PECL from loading ini files when PHP is called, which prevents the OpenSSL extension from loading.

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

Etapa 4.Step 4. Instalar o Apache e configurar o carregamento do driverInstall Apache and configure driver loading

sudo su
zypper install apache2 apache2-mod_php7
a2enmod php7
echo "extension=sqlsrv.so" >> /etc/php7/apache2/php.ini
echo "extension=pdo_sqlsrv.so" >> /etc/php7/apache2/php.ini
exit

Etapa 5.Step 5. Reiniciar o Apache e testar o script de amostraRestart Apache and test the sample script

sudo systemctl restart apache2

Para testar sua instalação, confira Testar a instalação no final deste documento.To test your installation, see Testing your installation at the end of this document.

Instalar os drivers no macOS Sierra, High Sierra e MojaveInstalling the drivers on macOS Sierra, High Sierra, and Mojave

Se você ainda não fez isso, instale o brew da seguinte maneira:If you do not already have it, install brew as follows:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Observação

Para instalar o PHP 7.1 ou 7.2, substitua php@7.3 por php@7.1 ou php@7.2, respectivamente, nos comandos a seguir.To install PHP 7.1 or 7.2, replace php@7.3 with php@7.1 or php@7.2 respectively in the following commands.

Etapa 1.Step 1. Instalar o PHPInstall PHP

brew tap
brew tap homebrew/core
brew install php@7.3

O PHP já deve estar no seu caminho: execute php -v para verificar se você está executando a versão correta do PHP.PHP should now be in your path -- run php -v to verify that you are running the correct version of PHP. Se o PHP não está no seu caminho ou não tem a versão correta, execute o seguinte:If PHP is not in your path or it is not the correct version, run the following:

brew link --force --overwrite php@7.3

Etapa 2.Step 2. Instalar pré-requisitosInstall prerequisites

Instale o driver ODBC para macOS seguindo as instruções na página de instalação de Linux e macOS.Install the ODBC driver for macOS by following the instructions on the Linux and macOS installation page.

Além disso, você precisa instalar as ferramentas de criação do GNU:In addition, you may need to install the GNU make tools:

brew install autoconf automake libtool

Etapa 3.Step 3. Instalar os drivers PHP para Microsoft SQL ServerInstall the PHP drivers for Microsoft SQL Server

sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv

Etapa 4.Step 4. Instalar o Apache e configurar o carregamento do driverInstall Apache and configure driver loading

brew install apache2

Para localizar o arquivo de configuração do Apache para a instalação do Apache, executeTo find the Apache configuration file for your Apache installation, run

apachectl -V | grep SERVER_CONFIG_FILE

e substitua o caminho por httpd.conf nos comandos a seguir:and substitute the path for httpd.conf in the following commands:

echo "LoadModule php7_module /usr/local/opt/php@7.3/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

Etapa 5.Step 5. Reiniciar o Apache e testar o script de amostraRestart Apache and test the sample script

sudo apachectl restart

Para testar sua instalação, confira Testar a instalação no final deste documento.To test your installation, see Testing your installation at the end of this document.

Testar a instalaçãoTesting Your Installation

Para testar esta amostra de script, crie um arquivo chamado testsql.php na raiz do documento do seu sistema.To test this sample script, create a file called testsql.php in your system's document root. No Ubuntu, Debian e Redhat é /var/www/html/, no SUSE é /srv/www/htdocs e no macOS é /usr/local/var/www.This is /var/www/html/ on Ubuntu, Debian, and Redhat, /srv/www/htdocs on SUSE, or /usr/local/var/www on macOS. Copie o script a seguir para esse arquivo, substituindo o servidor, o banco de dados, o nome de usuário e a senha, conforme apropriado.Copy the following script to it, replacing the server, database, username, and password as appropriate.

<?php
$serverName = "yourServername";
$connectionOptions = array(
    "database" => "yourDatabase",
    "uid" => "yourUsername",
    "pwd" => "yourPassword"
);

// 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> 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 "Error information: <br/>";
    foreach ($errors as $error) {
        echo "SQLSTATE: ". $error['SQLSTATE'] . "<br/>";
        echo "Code: ". $error['code'] . "<br/>";
        echo "Message: ". $error['message'] . "<br/>";
    }
}
?>

Aponte seu navegador para https://localhost/testsql.php (https://localhost:8080/testsql.php no macOS).Point your browser to https://localhost/testsql.php (https://localhost:8080/testsql.php on macOS). Agora, você pode se conectar ao banco de dados do SQL Server/SQL do Azure.You should now be able to connect to your SQL Server/Azure SQL database.

Consulte TambémSee Also

Introdução aos Drivers da Microsoft para PHP para SQL ServerGetting Started with the Microsoft Drivers for PHP for SQL Server

Carregando os Microsoft Drivers for PHP for SQL ServerLoading the Microsoft Drivers for PHP for SQL Server

Requisitos do sistema para os Microsoft Drivers for PHP for SQL ServerSystem Requirements for the Microsoft Drivers for PHP for SQL Server