--- title: "PHP Linux and Mac Drivers Installation Tutorial | Microsoft Docs" ms.date: "07/13/2017" ms.prod: "sql-non-specified" ms.technology: - "drivers" ms.topic: "article" author: "ulvii" ms.author: "v-ulibra" --- # PHP Linux and Mac Drivers Installation Tutorial The following instructions assume a clean environment and show how to install PHP 7.x, Microsoft ODBC driver, apache, and Microsoft PHP drivers on Ubuntu 15, 16, RedHat 7, Debian 8, and Mac OS X. ## Installing the drivers on Ubuntu 15.10 for PHP 7.0 ### Step 1. Install PHP Note that there is no PHP 7.1 package available for Ubuntu 15.10. ``` sudo su sh -c 'echo "deb http://packages.dotdeb.org jessie all \ndeb-src http://packages.dotdeb.org jessie all" >> /etc/apt/sources.list' apt-get update apt-get install php7.0 php7.0-fpm php-pear php7.0-dev mcrypt php7.0-mcrypt php-mbstring php7.0-xml ``` ### Step 2. Install prerequisites ``` sudo su curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - curl https://packages.microsoft.com/config/ubuntu/15.10/prod.list > /etc/apt/sources.list.d/mssql-release.list exit sudo apt-get update sudo ACCEPT_EULA=Y apt-get install msodbcsql mssql-tools sudo apt-get install unixodbc-dev echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc source ~/.bashrc ``` ### Step 3. Install the PHP drivers for Microsoft SQL Server ``` sudo pear config-set php_ini `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"` system sudo pecl install sqlsrv sudo pecl install pdo_sqlsrv ``` ### Step 4. Install Apache and configure driver loading ``` sudo su apt-get install libapache2-mod-php7.0 apache2 a2dismod mpm_event a2enmod mpm_prefork a2enmod php7.0 echo "extension=sqlsrv.so" >> /etc/php/7.0/apache2/php.ini echo "extension=pdo_sqlsrv.so" >> /etc/php/7.0/apache2/php.ini ``` ### Step 5. Restart Apache and test the sample script ``` sudo service apache2 restart ``` To test your installation, see **Testing Your Installation** at the end of this document.   ## Installing the drivers on Ubuntu 16.04 for PHP 7.0 ### Step 1. Install PHP ``` sudo su apt-get update apt-get -y install php7.0 mcrypt php7.0-mcrypt php-mbstring php-pear php7.0-dev php7.0-xml ``` ### Step 2. Install prerequisites ``` sudo su curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list exit sudo apt-get update sudo ACCEPT_EULA=Y apt-get install msodbcsql mssql-tools sudo apt-get install unixodbc-dev echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc source ~/.bashrc ``` ### Step 3. Install the PHP drivers for Microsoft SQL Server ``` sudo pear config-set php_ini `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"` system sudo pecl install sqlsrv sudo pecl install pdo_sqlsrv ``` ### Step 4. Install Apache and configure driver loading ``` sudo su apt-get install libapache2-mod-php7.0 apache2 a2dismod mpm_event a2enmod mpm_prefork a2enmod php7.0 echo "extension=sqlsrv.so" >> /etc/php/7.0/apache2/php.ini echo "extension=pdo_sqlsrv.so" >> /etc/php/7.0/apache2/php.ini ``` ### Step 5. Restart Apache and test the sample script ``` sudo service apache2 restart ``` To test your installation, see **Testing Your Installation** at the end of this document.   ## Installing the drivers on Ubuntu 16.04 for PHP 7.1 ### Step 1. Install PHP ``` sudo su add-apt-repository ppa:ondrej/php apt-get update apt-get -y install php7.1 mcrypt php7.1-mcrypt php-mbstring php-pear php7.1-dev php7.1-xml ``` ### Step 2. Install prerequisites ``` sudo su curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list exit sudo apt-get update sudo ACCEPT_EULA=Y apt-get install msodbcsql mssql-tools sudo apt-get install unixodbc-dev echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc source ~/.bashrc ``` ### Step 3. Install the PHP drivers for Microsoft SQL Server ``` sudo pear config-set php_ini `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"` system sudo pecl install sqlsrv sudo pecl install pdo_sqlsrv ``` ### Step 4. Install Apache and configure driver loading ``` sudo su apt-get install libapache2-mod-php7.1 apache2 a2dismod mpm_event a2enmod mpm_prefork a2enmod php7.1 echo "extension=sqlsrv.so" >> /etc/php/7.1/apache2/php.ini echo "extension=pdo_sqlsrv.so" >> /etc/php/7.1/apache2/php.ini ``` ### Step 5. Restart Apache and test the sample script ``` sudo service apache2 restart ``` To test your installation, see **Testing Your Installation** at the end of this document.   ## Installing the drivers on Red Hat 7 for PHP 7.0 and 7.1 ### Step 1. Install PHP To install PHP 7.1, replace remi-php70 with remi-php71 in the following commands. ``` sudo su wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm wget http://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-config-manager --enable remi-php70 yum update yum install php php-pdo php-xml php-pear php-devel re2c gcc-c++ gcc ``` ### Step 2. Install prerequisites ``` sudo su curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo exit sudo yum update sudo yum remove unixODBC-utf16-devel sudo ACCEPT_EULA=Y yum install msodbcsql mssql-tools sudo yum install unixODBC-devel echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc source ~/.bashrc ``` ### Step 3. Install the PHP drivers for Microsoft SQL Server ``` sudo pecl install sqlsrv sudo pecl install pdo_sqlsrv ``` ### Step 4. Install Apache and configure driver loading ``` sudo su yum install httpd echo "extension=sqlsrv.so" > /etc/php.d/sqlsrv.ini echo "extension=pdo_sqlsrv.so" > /etc/php.d/pdo_sqlsrv.ini ``` Note: SELinux is installed by default and runs in Enforcing mode. To allow Apache to connect to databases through SELinux, run the following command: ``` sudo setsebool -P httpd_can_network_connect_db 1 ``` ### Step 5. Restart Apache and test the sample script ``` sudo apachectl restart ``` To test your installation, see **Testing Your Installation** at the end of this document.   ## Installing the drivers on Debian 8 for PHP 7.0 ### Step 1. Install PHP ``` sudo su apt-get install curl apt-transport-https curl https://www.dotdeb.org/dotdeb.gpg | apt-key add - echo "deb http://packages.dotdeb.org jessie all" >> /etc/apt/sources.list echo "deb-src http://packages.dotdeb.org jessie all" >> /etc/apt/sources.list apt-get update apt-get install –y php7.0 php-pear php7.0-dev php7.0-xml ``` ### Step 2. Install prerequisites ``` sudo su curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - curl https://packages.microsoft.com/config/debian/8/prod.list > /etc/apt/sources.list.d/mssql-release.list apt-get install -y locales echo "en_US.UTF-8 UTF-8" > /etc/locale.gen locale-gen exit sudo apt-get update sudo ACCEPT_EULA=Y apt-get install msodbcsql sudo apt-get install unixodbc-dev ``` ### Step 3. Install the PHP drivers for Microsoft SQL Server ``` sudo pear config-set php_ini `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"` system sudo pecl install sqlsrv sudo pecl install pdo_sqlsrv ``` ### Step 4. Install Apache and configure driver loading ``` sudo su apt-get install libapache2-mod-php7.0 apache2 a2dismod mpm_event a2enmod mpm_prefork a2enmod php7.0 echo "extension=sqlsrv.so" >> /etc/php/7.0/apache2/php.ini echo "extension=pdo_sqlsrv.so" >> /etc/php/7.0/apache2/php.ini ``` ### Step 5. Restart Apache and test the sample script ``` sudo service apache2 restart ``` To test your installation, see **Testing Your Installation** at the end of this document.   ## Installing the drivers on Debian 8 for PHP 7.1 ### Step 1. Install 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.1 php-pear php7.1-dev php7.1-xml ``` ### Step 2. Install prerequisites ``` sudo su curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - curl https://packages.microsoft.com/config/debian/8/prod.list > /etc/apt/sources.list.d/mssql-release.list apt-get install -y locales echo "en_US.UTF-8 UTF-8" > /etc/locale.gen locale-gen exit sudo apt-get update sudo ACCEPT_EULA=Y apt-get install msodbcsql sudo apt-get install unixodbc-dev ``` ### Step 3. Install the PHP drivers for Microsoft SQL Server ``` sudo pear config-set php_ini `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"` system sudo pecl install sqlsrv sudo pecl install pdo_sqlsrv ``` ### Step 4. Install Apache and configure driver loading ``` sudo su apt-get install libapache2-mod-php7.1 apache2 a2dismod mpm_event a2enmod mpm_prefork a2enmod php7.1 echo "extension=sqlsrv.so" >> /etc/php/7.1/apache2/php.ini echo "extension=pdo_sqlsrv.so" >> /etc/php/7.1/apache2/php.ini ``` ### Step 5. Restart Apache and test the sample script ``` sudo service apache2 restart ``` To test your installation, see **Testing Your Installation** at the end of this document.   ## Installing the drivers on MacOS El Capitan and Sierra ### Step 1. Install PHP To install PHP 7.1, replace php70 with php71 in the following commands. ``` /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" brew tap brew tap homebrew/dupes brew tap homebrew/versions brew tap homebrew/homebrew-php brew install php70 --with-pear --with-httpd24 --with-cgi echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.bash_profile echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile source ~/.bash_profile ``` ### Step 2. Install prerequisites ``` brew tap microsoft/msodbcsql https://github.com/Microsoft/homebrew-mssql-release brew update brew install msodbcsql brew install mssql-tools brew install autoconf ``` ### Step 3. Install the PHP drivers for Microsoft SQL Server ``` sudo pecl install sqlsrv sudo pecl install pdo_sqlsrv ``` ### Step 4. Install Apache and configure driver loading ``` (echo ""; echo "SetHandler application/x-httpd-php"; echo "";) >> /usr/local/etc/apache2/2.4/httpd.conf ``` ### Step 5. Restart Apache and test the sample script ``` sudo apachectl restart ``` To test your installation, see **Testing Your Installation** at the end of this document.   ## Testing Your Installation To test this sample script, create a file called testsql.php in /var/www/html/ (/usr/local/var/www/htdocs on MacOS) and copy the following script to it, replacing the server, database, username, and password as appropriate. ``` "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 $getResults= sqlsrv_query($conn, $tsql); //Error handling if ($getResults == FALSE) die(FormatErrors(sqlsrv_errors())); ?>

Results :

"); } sqlsrv_free_stmt($getResults); function FormatErrors( $errors ) { /* Display errors. */ echo "Error information:
"; foreach ( $errors as $error ) { echo "SQLSTATE: ".$error['SQLSTATE']."
"; echo "Code: ".$error['code']."
"; echo "Message: ".$error['message']."
"; } } ?> ``` Point your browser to http://localhost/testsql.php (http://localhost:8080/testsql.php on MacOS). You should now be able to connect to your SQL Server/Azure SQL database.