From 034c6178ebd082113d1791a7bebda62ba396ea1f Mon Sep 17 00:00:00 2001 From: David Puglielli Date: Thu, 8 Feb 2018 11:22:31 -0800 Subject: [PATCH 1/7] README updated, unix install shifts to another file --- README.md | 439 +++++------------------------------------------------- 1 file changed, 37 insertions(+), 402 deletions(-) diff --git a/README.md b/README.md index 9cd36db7..d3630222 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ -# Microsoft Drivers for PHP for SQL Server +# Microsoft Drivers for PHP for Microsoft SQL Server -**Welcome to the Microsoft Drivers for PHP for SQL Server PHP 7** +**Welcome to the Microsoft Drivers for PHP for Microsoft SQL Server** -The Microsoft Drivers for PHP for SQL Server are PHP extensions that allow for the reading and writing of SQL Server data from within PHP scripts. The SQLSRV extension provides a procedural interface while the PDO_SQLSRV extension implements PDO for accessing data in all editions of SQL Server 2008 R2 and later (including Azure SQL DB). These drivers rely on the Microsoft ODBC Driver for SQL Server to handle the low-level communication with SQL Server. +The Microsoft Drivers for PHP for Microsoft SQL Server are PHP extensions that allow for the reading and writing of SQL Server data from within PHP scripts. The SQLSRV extension provides a procedural interface while the PDO_SQLSRV extension implements PHP Data Objects (PDO) for accessing data in all editions of SQL Server 2008 and later (including Azure SQL DB). These drivers rely on the Microsoft ODBC Driver for SQL Server to handle the low-level communication with SQL Server. -This release contains the SQLSRV and PDO_SQLSRV drivers for PHP 7.0.* or above with improvements on both drivers and some limitations (see Limitations below for details). Upcoming release(s) will contain more functionality, bug fixes, and more (see Plans below for more details). +This release contains the SQLSRV and PDO_SQLSRV drivers for PHP 7.* with improvements on both drivers and some limitations (see Limitations below for details). Upcoming releases will contain additional functionality, bug fixes, and more (see Plans below for more details). SQL Server Team @@ -31,10 +31,11 @@ Thank you for taking the time to participate in our last survey. You can continu ## Get Started +* [**Windows + SQL Server + PHP 7**](https://www.microsoft.com/en-us/sql-server/developer-get-started/php/windows) * [**Ubuntu + SQL Server + PHP 7**](https://www.microsoft.com/en-us/sql-server/developer-get-started/php/ubuntu) * [**RedHat + SQL Server + PHP 7**](https://www.microsoft.com/en-us/sql-server/developer-get-started/php/rhel) +* [**Debian + SQL Server + PHP 7**](https://www.microsoft.com/en-us/sql-server/developer-get-started/php/debian) * [**SUSE + SQL Server + PHP 7**](https://www.microsoft.com/en-us/sql-server/developer-get-started/php/sles) -* [**Windows + SQL Server + PHP 7**](https://www.microsoft.com/en-us/sql-server/developer-get-started/php/windows) * [**macOS + SQL Server + PHP 7**](https://www.microsoft.com/en-us/sql-server/developer-get-started/php/mac/) * [**Docker**](https://hub.docker.com/r/lbosqmsft/mssql-php-msphpsql/) @@ -43,433 +44,67 @@ Thank you for taking the time to participate in our last survey. You can continu Please visit the [blog][blog] for more announcements. +## Prerequisites -## Build (Windows) - -Note: if you prefer, you can use the pre-compiled binaries found in the [releases](https://github.com/Microsoft/msphpsql/releases) - -#### Prerequisites - -You must first be able to build PHP 7.0.* or above without including these extensions. For help with doing this, see the [official PHP website][phpbuild] for building your own PHP in Windows. - -#### Compile the drivers - -The Microsoft Drivers for PHP for SQL Server have been compiled and tested with PHP 7.0.* and 7.1.* using Visual C++ 2015 as well as PHP 7.2.0* using Visual C++ 2017 v15.0. -For details, please read the documentation and/or take a look at the sample [build scripts](https://github.com/Microsoft/msphpsql/tree/dev/buildscripts#windows). - -## Install (Windows) - -#### Prerequisites +For full details on the requirements for the drivers, see the [system requirements](https://docs.microsoft.com/en-us/sql/connect/php/system-requirements-for-the-php-sql-driver) on MSDN. +On the client machine: +- PHP 7.0.x, 7.1.x, or 7.2.1 and up on Windows, or 7.2.0 and up on Unix systems - A Web server such as Internet Information Services (IIS) is required. Your Web server must be configured to run PHP -- [Microsoft ODBC Driver 11][odbc11], [Microsoft ODBC Driver 13][odbc13] or [Microsoft ODBC Driver 17][odbc17] +- [Microsoft ODBC Driver 11][odbc11], [Microsoft ODBC Driver 13][odbc13], or [Microsoft ODBC Driver 17][odbc17] -#### Enable the drivers +On the server side, SQL Server 2008 and above on Windows is supported, as is SQL Server 2016 and above on Linux. -1. Make sure that the driver is in your PHP extension directory (you can simply copy it there if you did not use nmake install). +## Building and Installing the Drivers on Windows -2. Enable it within your PHP installation's php.ini: `extension=php_sqlsrv.dll` and/or `extension=php_pdo_sqlsrv.dll`. If necessary, specify the extension directory using extension_dir, for example: `extension_dir = "C:\PHP\ext"`. Note that the precompiled binaries have different names -- substitute accordingly in php.ini. +The drivers are distributed as pre-compiled extensions for PHP found on the [releases page](https://github.com/Microsoft/msphpsql/releases). They are available in thread-safe and non thread-safe versions, and in 32-bit and 64-bit versions. The source code for the drivers is also available, and you can compile them as thread safe or non-thread safe versions. The thread safety configuration of your web server will determine which version you need. + +If you choose to build the drivers, you must be able to build PHP 7 without including these extensions. For help building PHP on Windows, see the [official PHP website][phpbuild]. For details on compiling the drivers, see the [documentation](https://github.com/Microsoft/msphpsql/tree/dev/buildscripts#windows) -- a buildscript is provided, but you can also compile the drivers manually. -3. Restart the Web server. +To load the drivers, make sure that the driver is in your PHP extension directory and enable it in your PHP installation's php.ini file by adding `extension=php_sqlsrv.dll` and/or `extension=php_pdo_sqlsrv.dll` to it. If necessary, specify the extension directory using `extension_dir`, for example: `extension_dir = "C:\PHP\ext"`. Note that the precompiled binaries have different names -- substitute accordingly in php.ini. for more details on loading the drivers, see [Loading the PHP SQL Driver](https://docs.microsoft.com/en-us/sql/connect/php/loading-the-php-sql-driver) on MSDN. + +Finally, restart the Web server. ## Install (UNIX) -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 16, 17 RedHat 7, Debian 8, 9 SUSE 12, and macOS 10.11, 10.12. -Note that [Microsoft ODBC Driver 17][odbc17] is required for Ubuntu 17 and Debian 9. - -### Step 1: Install PHP7+ - -#### PHP 7.0 - -**Ubuntu 16.04, 17.10** - - 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 - -**RedHat 7** - - 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 - -**Debian 8** - - 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 - -**Debian 9** - - 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 stretch all" >> /etc/apt/sources.list - echo "deb-src http://packages.dotdeb.org stretch all" >> /etc/apt/sources.list - apt-get update - apt-get install -y php7.0 php-pear php7.0-dev php7.0-xml - -**SUSE 12** - - sudo su - zypper refresh - zypper install -y php7 php7-pear php7-devel - -**macOS 10.11, 10.12** - - /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 - -#### PHP 7.1 - -**Ubuntu 16.04, 17.10** - - 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 - -**RedHat 7** - - 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-php71 - yum update - yum install php php-pdo php-xml php-pear php-devel re2c gcc-c++ gcc - -**Debian 8, 9** - - 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 - -**SUSE 12** - - sudo su - zypper -n ar -f http://download.opensuse.org/repositories/devel:/languages:/php/openSUSE_Leap_42.3/ devel:languages:php - zypper --gpg-auto-import-keys refresh - zypper -n install php7 php7-pear php7-devel - -**macOS 10.11, 10.12** - - /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 php71 --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 - -**Ubuntu 16.04** - - 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 - -**Ubuntu 17.10 (available upon the official release of ODBC driver 17)** - - sudo su - curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - - curl https://packages.microsoft.com/config/ubuntu/17.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 - -**RedHat 7** - - 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 #to avoid conflicts - 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 - -**Debian 8** - - 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 - -**Debian 9 (available upon the official release of ODBC driver 17)** - - sudo su - curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - - curl https://packages.microsoft.com/config/debian/9/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 - -**SUSE 12** - - sudo su - zypper ar https://packages.microsoft.com/config/sles/12/prod.repo - sudo zypper --gpg-auto-import-keys refresh - exit - sudo ACCEPT_EULA=Y zypper install msodbcsql - sudo ACCEPT_EULA=Y zypper install mssql-tools - sudo zypper install unixODBC-devel - echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile - echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc - source ~/.bashrc - -**macOS 10.11, 10.12** - - brew tap microsoft/msodbcsql https://github.com/Microsoft/homebrew-mssql-release - brew update - brew install --no-sandbox msodbcsql - brew install mssql-tools - brew install autoconf - -*Note: Be sure to install PHP 7+ before proceeding to step 3. The Microsoft PHP Drivers for SQL Server will only work for PHP 7+. - -### Step 3: Install the Microsoft PHP Drivers for SQL Server - -*Note: You can run `sudo pecl search sqlsrv` to search for the latest releases and `sudo pecl install sqlsrv-[version]` to install a specific version. PECL installs the stable version when version is not specified. Drivers are Mac-compatible starting from `4.1.7preview` release. - -On Linux systems, run: - - 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 - -On macOS, run: - - chmod -R ug+w /usr/local/opt/php71/lib/php - pear config-set php_ini /usr/local/etc/php/7.1/php.ini system - -On all systems, run: - - pecl install sqlsrv - pecl install pdo_sqlsrv - -### Step 4: Install and Configure Apache - -#### PHP 7.0 - -**Ubuntu and Debian** - - 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 - -**RedHat** - - 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 - -**SUSE** - - 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 - -**macOS** - - (echo ""; echo "SetHandler application/x-httpd-php"; echo "";) >> /usr/local/etc/apache2/2.4/httpd.conf - -#### PHP 7.1 - -**Ubuntu and Debian** - - 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 - -**RedHat** - - 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 - -**SUSE** - - 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 - -**macOS** - - (echo ""; echo "SetHandler application/x-httpd-php"; echo "";) >> /usr/local/etc/apache2/2.4/httpd.conf - - -### Step 5: Restart Apache to load the new php.ini file - -**Ubuntu, Debian, and SUSE** - - sudo systemctl restart apache2 - -**RedHat** - - sudo systemctl restart httpd - -Note: On RedHat, SELinux is installed by default and runs in Enforcing mode. To allow Apache to connect to a database through SELinux, run the following command: - - sudo setsebool -P httpd_can_network_connect_db 1 - -**macOS** - - sudo apachectl restart - - -### Step 6: Create your sample app -Navigate to your system's document root -- `/var/www/html` on Ubuntu, Debian, and Redhat, `/srv/www/htdocs` on SUSE, or `/usr/local/var/www/htdocs` on Mac. Create a new file called testsql.php. Copy and paste the following code into testsql.php and change the servername, username, password and databasename. - - "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']."
"; - } - } - ?> - -### Step 7: Run your sample app - -Go to your browser and type in http://localhost/testsql.php (http://localhost:8080/testsql.php on Mac) -You should be able to connect to your SQL Server/Azure SQL Database. - -The drivers are distributed as shared binary extensions for PHP. They are available in thread safe (*_ts.so) and-non thread safe (*_nts.so) versions. The source code for the drivers is also available, and you can choose whether to compile them as thread safe or non-thread safe versions. The thread safety configuration of your web server will determine which version you need. +For full instructions on installing the drivers on all supported Unix platforms, see [the installation instructions on MSDN](https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac). ## Sample Code -For samples, please see the sample folder. For setup instructions, see [here](https://docs.microsoft.com/en-us/sql/connect/php/code-samples-for-php-sql-driver). +For PHP code samples, please see the [sample](https://github.com/Microsoft/msphpsql/tree/master/sample) folder or the [code samples on MSDN](https://docs.microsoft.com/en-us/sql/connect/php/code-samples-for-php-sql-driver). ## Limitations and Known Issues Please refer to [Releases](https://github.com/Microsoft/msphpsql/releases) for the latest limitations and known issues. ## Version number -Version number of PHP drivers follow the [semantic versioning](http://semver.org/): +The version numbers of the PHP drivers follow [semantic versioning](http://semver.org/): Given a version number MAJOR.MINOR.PATCH, - - MAJOR version is incremented when an incompatible API changes is made, - - MINOR version is incremented when a functionality in a backwards-compatible manner is added, and + - MAJOR version is incremented when an incompatible API change is made, + - MINOR version is incremented when functionality is add in a backwards-compatible manner, and - PATCH version is incremented when backwards-compatible bug fixes are made. -version number MAY have trailing pre-release version to indicate the stability, and/or build meta data. +The version number may have trailing pre-release version identifiers to indicate the stability and/or build metadata. -- Pre-release version is denoted by hyphen followed by `preview` or `rc` keyword and may be followed by a series of dot separated identifiers. Production quality releases do not contain the pre-release version. `preview` has lower precedence than `rc`. Example of precedence: *preview < preview.1 < rc < rc.1*. -*Note that PECL package version does not have the hyphen before pre-release version, due to restrictions in PECL. Example of PECL package version: 1.2.3preview* -- Build metadata MAY be denoted by a plus sign followed by 4 digits, such as `1.2.3-preview+5678` or `1.2.3+5678`. Build meta data does NOT figure into the precedence order. - - +- Pre-release version is denoted by a hyphen followed by `preview` or `rc` and may be followed by a series of dot separated identifiers. Production quality releases do not contain the pre-release version. `preview` has lower precedence than `rc. Example of precedence: *preview < preview.1 < rc < rc.1*. +*Note that the PECL package version numbers do not have the hyphen before the pre-release version, owing to restrictions in PECL. Example of a PECL package version number: 1.2.3preview* +- Build metadata may be denoted by a plus sign followed by 4 or 5 digits, such as `1.2.3-preview+5678` or `1.2.3+5678`. Build metadata does not figure into the precedence order. ## Future Plans -- Expand SQL 16 Feature Support (example: Always Encrypted). -- Add More Verification/Fundamental Tests. -- Bug Fixes. +- Expand SQL Server 2016 feature support (example: Always Encrypted) +- Add more verification/fundamental tests +- Bug fixes ## Guidelines for Reporting Issues We appreciate you taking the time to test the driver, provide feedback and report any issues. It would be extremely helpful if you: - Report each issue as a new issue (but check first if it's already been reported) -- Try to be detailed in your report. Useful information for good bug reports include: +- Try to be detailed in your report. Useful information for good bug reports includes: * What you are seeing and what the expected behaviour is * Can you connect to SQL Server via `sqlcmd`? * Which driver: SQLSRV or PDO_SQLSRV? - * Environment details: e.g. PHP version, thread safe (TS) or non-thread safe (NTS), 32-bit &/or 64-bit? - * Table schema (for some issues the data types make a big difference!) + * Environment details: e.g. PHP version, thread safe (TS) or non-thread safe (NTS), 32-bit or 64-bit? + * Table schema (for some issues, the data types make a big difference!) * Any other relevant information you want to share - Try to include a PHP script demonstrating the isolated problem. @@ -478,11 +113,11 @@ Thank you! ## FAQs **Q:** Can we get dates for any of the Future Plans listed above? -**A:** At this time, Microsoft is not able to announce dates. We are working extremely hard to release future versions of the driver. We will share future plans as appropriate. +**A:** At this time, Microsoft is not able to announce dates. We are working hard to release future versions of the driver and will share future plans as appropriate. **Q:** What's next? -**A:** On July 6, 2017 we released the production release version 4.3.0 of our PHP Driver. We will continue working on our future plans and releasing previews of upcoming releases frequently. +**A:** On February 6, 2018 we released the production release version 5.2.0 of our PHP Driver. We will continue working on our future plans and releasing previews of upcoming releases frequently. **Q:** Is Microsoft taking pull requests for this project? @@ -534,4 +169,4 @@ This project has adopted the Microsoft Open Source Code of Conduct. For more inf [apr_source]: http://apr.apache.org/ -[httpdconf]: http://php.net/manual/en/install.unix.apache2.php +[httpdconf]: http://php.net/manual/en/install.unix.apache2.php \ No newline at end of file From a80557c335ad3b72d4ab6a06dd28020dcd255aba Mon Sep 17 00:00:00 2001 From: David Puglielli Date: Thu, 8 Feb 2018 16:42:34 -0800 Subject: [PATCH 2/7] Review fixes --- README.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index d3630222..cb00f08d 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ **Welcome to the Microsoft Drivers for PHP for Microsoft SQL Server** -The Microsoft Drivers for PHP for Microsoft SQL Server are PHP extensions that allow for the reading and writing of SQL Server data from within PHP scripts. The SQLSRV extension provides a procedural interface while the PDO_SQLSRV extension implements PHP Data Objects (PDO) for accessing data in all editions of SQL Server 2008 and later (including Azure SQL DB). These drivers rely on the Microsoft ODBC Driver for SQL Server to handle the low-level communication with SQL Server. +The Microsoft Drivers for PHP for Microsoft SQL Server are PHP extensions that allow for the reading and writing of SQL Server data from within PHP scripts. The SQLSRV extension provides a procedural interface while the PDO_SQLSRV extension implements PHP Data Objects (PDO) for accessing data in all editions of SQL Server 2008 R2 and later (including Azure SQL DB). These drivers rely on the Microsoft ODBC Driver for SQL Server to handle the low-level communication with SQL Server. This release contains the SQLSRV and PDO_SQLSRV drivers for PHP 7.* with improvements on both drivers and some limitations (see Limitations below for details). Upcoming releases will contain additional functionality, bug fixes, and more (see Plans below for more details). @@ -46,22 +46,22 @@ Thank you for taking the time to participate in our last survey. You can continu ## Prerequisites -For full details on the requirements for the drivers, see the [system requirements](https://docs.microsoft.com/en-us/sql/connect/php/system-requirements-for-the-php-sql-driver) on MSDN. +For full details on the system requirements for the drivers, see the [system requirements](https://docs.microsoft.com/en-us/sql/connect/php/system-requirements-for-the-php-sql-driver) on MSDN. On the client machine: -- PHP 7.0.x, 7.1.x, or 7.2.1 and up on Windows, or 7.2.0 and up on Unix systems +- PHP 7.0.x, 7.1.x, or 7.2.x (7.2.0 and up on Unix, 7.2.1 and up on Windows) - A Web server such as Internet Information Services (IIS) is required. Your Web server must be configured to run PHP - [Microsoft ODBC Driver 11][odbc11], [Microsoft ODBC Driver 13][odbc13], or [Microsoft ODBC Driver 17][odbc17] -On the server side, SQL Server 2008 and above on Windows is supported, as is SQL Server 2016 and above on Linux. +On the server side, Microsoft SQL Server 2008 R2 and above on Windows is supported, as is Microsoft SQL Server 2016 and above on Linux. ## Building and Installing the Drivers on Windows The drivers are distributed as pre-compiled extensions for PHP found on the [releases page](https://github.com/Microsoft/msphpsql/releases). They are available in thread-safe and non thread-safe versions, and in 32-bit and 64-bit versions. The source code for the drivers is also available, and you can compile them as thread safe or non-thread safe versions. The thread safety configuration of your web server will determine which version you need. -If you choose to build the drivers, you must be able to build PHP 7 without including these extensions. For help building PHP on Windows, see the [official PHP website][phpbuild]. For details on compiling the drivers, see the [documentation](https://github.com/Microsoft/msphpsql/tree/dev/buildscripts#windows) -- a buildscript is provided, but you can also compile the drivers manually. +If you choose to build the drivers, you must be able to build PHP 7 without including these extensions. For help building PHP on Windows, see the [official PHP website][phpbuild]. For details on compiling the drivers, see the [documentation](https://github.com/Microsoft/msphpsql/tree/dev/buildscripts#windows) -- an example buildscript is provided, but you can also compile the drivers manually. -To load the drivers, make sure that the driver is in your PHP extension directory and enable it in your PHP installation's php.ini file by adding `extension=php_sqlsrv.dll` and/or `extension=php_pdo_sqlsrv.dll` to it. If necessary, specify the extension directory using `extension_dir`, for example: `extension_dir = "C:\PHP\ext"`. Note that the precompiled binaries have different names -- substitute accordingly in php.ini. for more details on loading the drivers, see [Loading the PHP SQL Driver](https://docs.microsoft.com/en-us/sql/connect/php/loading-the-php-sql-driver) on MSDN. +To load the drivers, make sure that the driver is in your PHP extension directory and enable it in your PHP installation's php.ini file by adding `extension=php_sqlsrv.dll` and/or `extension=php_pdo_sqlsrv.dll` to it. If necessary, specify the extension directory using `extension_dir`, for example: `extension_dir = "C:\PHP\ext"`. Note that the precompiled binaries have different names -- substitute accordingly in php.ini. For more details on loading the drivers, see [Loading the PHP SQL Driver](https://docs.microsoft.com/en-us/sql/connect/php/loading-the-php-sql-driver) on MSDN. Finally, restart the Web server. @@ -81,13 +81,12 @@ The version numbers of the PHP drivers follow [semantic versioning](http://semve Given a version number MAJOR.MINOR.PATCH, - MAJOR version is incremented when an incompatible API change is made, - - MINOR version is incremented when functionality is add in a backwards-compatible manner, and + - MINOR version is incremented when functionality is added in a backwards-compatible manner, and - PATCH version is incremented when backwards-compatible bug fixes are made. The version number may have trailing pre-release version identifiers to indicate the stability and/or build metadata. -- Pre-release version is denoted by a hyphen followed by `preview` or `rc` and may be followed by a series of dot separated identifiers. Production quality releases do not contain the pre-release version. `preview` has lower precedence than `rc. Example of precedence: *preview < preview.1 < rc < rc.1*. -*Note that the PECL package version numbers do not have the hyphen before the pre-release version, owing to restrictions in PECL. Example of a PECL package version number: 1.2.3preview* +- Pre-release version is denoted by a hyphen followed by `preview` or `RC` and may be followed by a series of dot separated identifiers. Production quality releases do not contain the pre-release version. `preview` has lower precedence than `RC`. Example of precedence: *preview < preview.1 < RC < RC.1*. Note that the PECL package version numbers do not have the hyphen before the pre-release version, owing to restrictions in PECL. Example of a PECL package version number: 1.2.3preview - Build metadata may be denoted by a plus sign followed by 4 or 5 digits, such as `1.2.3-preview+5678` or `1.2.3+5678`. Build metadata does not figure into the precedence order. ## Future Plans From a964e53fafe1ef22e5ffd83157a1a888bb5f78bf Mon Sep 17 00:00:00 2001 From: David Puglielli Date: Fri, 9 Feb 2018 14:26:08 -0800 Subject: [PATCH 3/7] Linux PHP 7.2 install instructions snapshot added --- Linux-mac-install.md | 313 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 313 insertions(+) create mode 100644 Linux-mac-install.md diff --git a/Linux-mac-install.md b/Linux-mac-install.md new file mode 100644 index 00000000..f2b87b06 --- /dev/null +++ b/Linux-mac-install.md @@ -0,0 +1,313 @@ +# PHP Linux and Mac Drivers Installation Tutorial +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 Microsoft SQL Server on Ubuntu 16.04 and 17.10, RedHat 7, Debian 8 and 9, Suse 12, and macOS X 10.11 and 10.12. These instructions advise installing the drivers using PECL, but you can also download the prebuilt binaries from the [Microsoft Drivers for PHP for Microsoft SQL Server](https://github.com/Microsoft/msphpsql/releases) Github project page and install them following the instructions in [Loading the Microsoft Drivers for PHP for Microsoft SQL Server](../../connect/php/loading-the-php-sql-driver.md). For an explanation of extension loading and why we do not add the extensions to php.ini, see the section on [loading the drivers](../../connect/php/loading-the-php-sql-driver.md##loading-the-driver-at-php-startup). + +These instruction install PHP 7.2 by default -- see the notes at the beginning of each section to install PHP 7.0 or 7.1. + +## Contents of this page: + +- [Installing the drivers on Ubuntu 16.04 and 17.10](#installing-the-drivers-on-ubuntu-1604-and-1710) +- [Installing the drivers on Red Hat 7](#installing-the-drivers-on-red-hat-7) +- [Installing the drivers on Debian 8 and 9](#installing-the-drivers-on-debian-8-and-9) +- [Installing the drivers on Suse 12](#installing-the-drivers-on-suse-12) +- [Installing the drivers on macOS El Capitan and Sierra](#installing-the-drivers-on-macos-el-capitan-and-sierra) + +## Installing the drivers on Ubuntu 16.04 and 17.10 + + > [!NOTE] + > To install PHP 7.0 or 7.1, replace 7.2 with 7.0 or 7.1 in the following commands. + +### Step 1. Install PHP +``` +sudo su +add-apt-repository ppa:ondrej/php -y +apt-get update +apt-get install php7.2 php7.2-dev php7.2-xml -y --allow-unauthenticated +``` +### Step 2. Install prerequisites +For Ubuntu 16.04, install the ODBC driver for Ubuntu by following the instructions on the [Linux and macOS installation page](../../connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server.md). For Ubuntu 17.10, the preview of version 17 of the ODBC driver is required. Download it from the [Github project page](https://github.com/Microsoft/msphpsql/tree/dev/ODBC%2017%20binaries%20preview/Ubuntu%2017) and install as follows: +``` +sudo ACCEPT_EULA=Y dpkg -i msodbcsql_17.0.0.5-1_amd64.deb +sudo ACCEPT_EULA=Y dpkg -i mssql-tools_17.0.0.5-1_amd64.deb +``` + +### Step 3. Install the PHP drivers for Microsoft SQL Server +``` +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 +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.2 apache2 +a2dismod mpm_event +a2enmod mpm_prefork +a2enmod php7.2 +echo "extension=sqlsrv.so" >> /etc/php/7.2/apache2/php.ini +echo "extension=pdo_sqlsrv.so" >> /etc/php/7.2/apache2/php.ini +``` +### Step 5. Restart Apache and test the sample script +``` +sudo service apache2 restart +``` +To test your installation, see [Testing your installation](#testing-your-installation) at the end of this document. + +## Installing the drivers on Red Hat 7 + + > [!NOTE] + > To install PHP 7.0 or 7.1, replace remi-php72 with remi-php70 or remi-php71 respectively in the following commands. + +### Step 1. Install PHP + +``` +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-php72 +yum update +yum install php php-pdo php-xml php-pear php-devel re2c gcc-c++ gcc +``` +### Step 2. Install prerequisites +Install the ODBC driver for Red Hat 7 by following the instructions on the [Linux and macOS installation page](../../connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server.md). + +Compiling the PHP drivers with PECL with PHP 7.2 requires a more recent GCC than the default: +``` +sudo yum-config-manager --enable rhel-server-rhscl-7-rpms +sudo yum install devtoolset-7 +scl enable devtoolset-7 bash +``` +### Step 3. Install the PHP drivers for Microsoft SQL Server +``` +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 +sudo pecl install sqlsrv +sudo pecl install pdo_sqlsrv +``` +An issue in PECL may prevent correct installation even if you have upgraded GCC. To install, download the packages and compile manually: +``` +pecl download sqlsrv +tar xvzf sqlsrv-5.2.0.tgz +cd sqlsrv-5.2.0/ +phpize +./configure --with-php-config=/usr/bin/php-config +make +sudo make install +``` +You can alternatively download the prebuilt binaries from the [Github project page](https://github.com/Microsoft/msphpsql/releases), or install from the Remi repo: +``` +sudo yum install php-sqlsrv php-pdo_sqlsrv +``` +### Step 4. Install Apache +``` +sudo yum install httpd +``` +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](#testing-your-installation) at the end of this document. + +## Installing the drivers on Debian 8 and 9 + + > [!NOTE] + > To install PHP 7.0 or 7.1, replace 7.2 in the following commands with 7.0 or 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.2 php7.2-dev php7.2-xml +``` +### Step 2. Install prerequisites +For Debian 8, install the ODBC driver by following the instructions on the [Linux and macOS installation page](../../connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server.md). For Debian 9, the preview of version 17 of the ODBC driver is required. Download it from the [Github project page](https://github.com/Microsoft/msphpsql/tree/dev/ODBC%2017%20binaries%20preview/Debian%209) and install as follows: +``` +sudo ACCEPT_EULA=Y dpkg -i msodbcsql_17.0.0.5-1_amd64.deb +sudo ACCEPT_EULA=Y dpkg -i mssql-tools_17.0.0.5-1_amd64.deb +``` + +You may also need to generate the correct locale to get PHP output to display correctly in a browser. 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 +``` + +### Step 3. Install the PHP drivers for Microsoft SQL Server +``` +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 +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.2 apache2 +a2dismod mpm_event +a2enmod mpm_prefork +a2enmod php7.2 +echo "extension=sqlsrv.so" >> /etc/php/7.2/apache2/php.ini +echo "extension=pdo_sqlsrv.so" >> /etc/php/7.2/apache2/php.ini +``` +### Step 5. Restart Apache and test the sample script +``` +sudo service apache2 restart +``` +To test your installation, see [Testing your installation](#testing-your-installation) at the end of this document. + +## Installing the drivers on Suse 12 + + > [!NOTE] + > To install PHP 7.0, skip the command below adding the repository - 7.0 is the default PHP on suse 12. + > To install PHP 7.1, replace the repository URL below with the following URL: + `http://download.opensuse.org/repositories/devel:/languages:/php:/php71/SLE_12/devel:languages:php:php71.repo` + +### Step 1. Install PHP +``` +sudo su +zypper -n ar -f http://download.opensuse.org/repositories/devel:languages:php/SLE_12/devel:languages:php.repo +zypper --gpg-auto-import-keys refresh +zypper -n install php7 php7-pear php7-devel +``` +### Step 2. Install prerequisites +Install the ODBC driver for Suse 12 by following the instructions on the [Linux and macOS installation page](../../connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server.md). + +### Step 3. Install the PHP drivers for Microsoft SQL Server +``` +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 +sudo pecl install sqlsrv +sudo pecl install pdo_sqlsrv +``` +### Step 4. Install 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 +``` +### Step 5. Restart Apache and test the sample script +``` +sudo systemctl restart apache2 +``` +To test your installation, see [Testing your installation](#testing-your-installation) at the end of this document. + +## Installing the drivers on macOS El Capitan and Sierra + +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)" +``` + + > [!NOTE] + > To install PHP 7.0 or 7.1, replace php72 with php70 or php71 respectively in the following commands. + +### Step 1. Install PHP + +``` +brew tap +brew tap homebrew/dupes +brew tap homebrew/versions +brew tap homebrew/homebrew-php +brew install php72 --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 +Install the ODBC driver for macOS by following the instructions on the [Linux and macOS installation page](../../connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server.md). + +In addition, you may need to install the GNU make tools: +``` +brew install autoconf automake libtool +``` + +### Step 3. Install the PHP drivers for Microsoft SQL Server +``` +chmod -R ug+w /usr/local/opt/php72/lib/php +pear config-set php_ini /usr/local/etc/php/7.2/php.ini system +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/httpd/httpd.conf +``` +### Step 5. Restart Apache and test the sample script +``` +sudo apachectl restart +``` +To test your installation, see [Testing your installation](#testing-your-installation) at the end of this document. + +## Testing Your Installation + +To test this sample script, create a file called testsql.php in your system's document root. This is `/var/www/html/` on Ubuntu, Debian, and Redhat, `/srv/www/htdocs` on SUSE, or `/usr/local/var/www` on macOS. 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. From 09fba0bce9106d8983a8f8e7c6d0ed473192368f Mon Sep 17 00:00:00 2001 From: David Puglielli Date: Tue, 13 Feb 2018 18:11:57 -0800 Subject: [PATCH 4/7] Updated links to latest odbc driver --- Linux-mac-install.md | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/Linux-mac-install.md b/Linux-mac-install.md index f2b87b06..8b02cc76 100644 --- a/Linux-mac-install.md +++ b/Linux-mac-install.md @@ -24,11 +24,7 @@ apt-get update apt-get install php7.2 php7.2-dev php7.2-xml -y --allow-unauthenticated ``` ### Step 2. Install prerequisites -For Ubuntu 16.04, install the ODBC driver for Ubuntu by following the instructions on the [Linux and macOS installation page](../../connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server.md). For Ubuntu 17.10, the preview of version 17 of the ODBC driver is required. Download it from the [Github project page](https://github.com/Microsoft/msphpsql/tree/dev/ODBC%2017%20binaries%20preview/Ubuntu%2017) and install as follows: -``` -sudo ACCEPT_EULA=Y dpkg -i msodbcsql_17.0.0.5-1_amd64.deb -sudo ACCEPT_EULA=Y dpkg -i mssql-tools_17.0.0.5-1_amd64.deb -``` +Install the ODBC driver for Ubuntu by following the instructions on the [Linux and macOS installation page](../../connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server.md). ### Step 3. Install the PHP drivers for Microsoft SQL Server ``` @@ -90,7 +86,7 @@ exit sudo pecl install sqlsrv sudo pecl install pdo_sqlsrv ``` -An issue in PECL may prevent correct installation even if you have upgraded GCC. To install, download the packages and compile manually: +An issue in PECL may prevent correct installation of the latest version of the drivers even if you have upgraded GCC. To install, download the packages and compile manually: ``` pecl download sqlsrv tar xvzf sqlsrv-5.2.0.tgz @@ -133,11 +129,7 @@ apt-get update apt-get install –y php7.2 php7.2-dev php7.2-xml ``` ### Step 2. Install prerequisites -For Debian 8, install the ODBC driver by following the instructions on the [Linux and macOS installation page](../../connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server.md). For Debian 9, the preview of version 17 of the ODBC driver is required. Download it from the [Github project page](https://github.com/Microsoft/msphpsql/tree/dev/ODBC%2017%20binaries%20preview/Debian%209) and install as follows: -``` -sudo ACCEPT_EULA=Y dpkg -i msodbcsql_17.0.0.5-1_amd64.deb -sudo ACCEPT_EULA=Y dpkg -i mssql-tools_17.0.0.5-1_amd64.deb -``` +Install the ODBC driver for Debian by following the instructions on the [Linux and macOS installation page](../../connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server.md). You may also need to generate the correct locale to get PHP output to display correctly in a browser. For example, for the en_US UTF-8 locale, run the following commands: ``` From b235f375022c9b3c36ca24a3809224e1008d01c9 Mon Sep 17 00:00:00 2001 From: David Puglielli Date: Mon, 12 Mar 2018 16:36:18 -0700 Subject: [PATCH 5/7] Minor tweaks --- Linux-mac-install.md | 4 ++-- README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Linux-mac-install.md b/Linux-mac-install.md index 8b02cc76..b2811e2b 100644 --- a/Linux-mac-install.md +++ b/Linux-mac-install.md @@ -1,5 +1,5 @@ # PHP Linux and Mac Drivers Installation Tutorial -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 Microsoft SQL Server on Ubuntu 16.04 and 17.10, RedHat 7, Debian 8 and 9, Suse 12, and macOS X 10.11 and 10.12. These instructions advise installing the drivers using PECL, but you can also download the prebuilt binaries from the [Microsoft Drivers for PHP for Microsoft SQL Server](https://github.com/Microsoft/msphpsql/releases) Github project page and install them following the instructions in [Loading the Microsoft Drivers for PHP for Microsoft SQL Server](../../connect/php/loading-the-php-sql-driver.md). For an explanation of extension loading and why we do not add the extensions to php.ini, see the section on [loading the drivers](../../connect/php/loading-the-php-sql-driver.md##loading-the-driver-at-php-startup). +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 Microsoft SQL Server on Ubuntu 16.04 and 17.10, RedHat 7, Debian 8 and 9, Suse 12, and macOS 10.11 and 10.12. These instructions advise installing the drivers using PECL, but you can also download the prebuilt binaries from the [Microsoft Drivers for PHP for Microsoft SQL Server](https://github.com/Microsoft/msphpsql/releases) Github project page and install them following the instructions in [Loading the Microsoft Drivers for PHP for Microsoft SQL Server](../../connect/php/loading-the-php-sql-driver.md). For an explanation of extension loading and why we do not add the extensions to php.ini, see the section on [loading the drivers](../../connect/php/loading-the-php-sql-driver.md##loading-the-driver-at-php-startup). These instruction install PHP 7.2 by default -- see the notes at the beginning of each section to install PHP 7.0 or 7.1. @@ -24,7 +24,7 @@ apt-get update apt-get install php7.2 php7.2-dev php7.2-xml -y --allow-unauthenticated ``` ### Step 2. Install prerequisites -Install the ODBC driver for Ubuntu by following the instructions on the [Linux and macOS installation page](../../connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server.md). +Install the ODBC driver for Ubuntu by following the instructions on the [Linux and macOS installation page](https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server). ### Step 3. Install the PHP drivers for Microsoft SQL Server ``` diff --git a/README.md b/README.md index cb00f08d..895306d9 100644 --- a/README.md +++ b/README.md @@ -116,7 +116,7 @@ Thank you! **Q:** What's next? -**A:** On February 6, 2018 we released the production release version 5.2.0 of our PHP Driver. We will continue working on our future plans and releasing previews of upcoming releases frequently. +**A:** On March 16, 2018 we released the production release version 5.2.0 of our PHP Driver. We will continue working on our future plans and releasing previews of upcoming releases frequently. **Q:** Is Microsoft taking pull requests for this project? From 42ec70271d498f7bf82427850f73c96abc0ba060 Mon Sep 17 00:00:00 2001 From: David Puglielli Date: Fri, 23 Mar 2018 15:59:32 -0700 Subject: [PATCH 6/7] Updated readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 895306d9..b8cee67b 100644 --- a/README.md +++ b/README.md @@ -116,7 +116,7 @@ Thank you! **Q:** What's next? -**A:** On March 16, 2018 we released the production release version 5.2.0 of our PHP Driver. We will continue working on our future plans and releasing previews of upcoming releases frequently. +**A:** On March 23, 2018 we released the production release version 5.2.0 of our PHP Driver. We will continue working on our future plans and releasing previews of upcoming releases frequently. **Q:** Is Microsoft taking pull requests for this project? From cf8b75f3e5623e15a50104242bf7f70a09c5d150 Mon Sep 17 00:00:00 2001 From: David Puglielli Date: Fri, 23 Mar 2018 16:02:21 -0700 Subject: [PATCH 7/7] Updated readme --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index b8cee67b..3d494d9c 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,6 @@ Thank you for taking the time to participate in our last survey. You can continu * [**Windows + SQL Server + PHP 7**](https://www.microsoft.com/en-us/sql-server/developer-get-started/php/windows) * [**Ubuntu + SQL Server + PHP 7**](https://www.microsoft.com/en-us/sql-server/developer-get-started/php/ubuntu) * [**RedHat + SQL Server + PHP 7**](https://www.microsoft.com/en-us/sql-server/developer-get-started/php/rhel) -* [**Debian + SQL Server + PHP 7**](https://www.microsoft.com/en-us/sql-server/developer-get-started/php/debian) * [**SUSE + SQL Server + PHP 7**](https://www.microsoft.com/en-us/sql-server/developer-get-started/php/sles) * [**macOS + SQL Server + PHP 7**](https://www.microsoft.com/en-us/sql-server/developer-get-started/php/mac/) * [**Docker**](https://hub.docker.com/r/lbosqmsft/mssql-php-msphpsql/)