Skip to content

Commit 5016e88

Browse files
authored
Merge pull request laradock#1602 from bestlong/php5-mssql-ext-install-faile
php5 support MSSQL extension
2 parents 66c61d9 + e8eb97b commit 5016e88

2 files changed

Lines changed: 59 additions & 45 deletions

File tree

php-fpm/Dockerfile

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -373,23 +373,31 @@ RUN if [ ${INSTALL_LDAP} = true ]; then \
373373
ARG INSTALL_MSSQL=false
374374

375375
RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
376-
###########################################################################
377-
# Ref from https://github.com/Microsoft/msphpsql/wiki/Dockerfile-for-adding-pdo_sqlsrv-and-sqlsrv-to-official-php-image
378-
###########################################################################
379-
# Add Microsoft repo for Microsoft ODBC Driver 13 for Linux
380-
apt-get install -y apt-transport-https gnupg \
381-
&& curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
382-
&& curl https://packages.microsoft.com/config/debian/8/prod.list > /etc/apt/sources.list.d/mssql-release.list \
383-
&& apt-get update -yqq \
384-
# Install Dependencies
385-
&& ACCEPT_EULA=Y apt-get install -y unixodbc unixodbc-dev libgss3 odbcinst msodbcsql locales \
386-
&& echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \
387-
&& locale-gen \
388-
# Install pdo_sqlsrv and sqlsrv from PECL. Replace pdo_sqlsrv-4.1.8preview with preferred version.
389-
&& pecl install pdo_sqlsrv-4.1.8preview sqlsrv-4.1.8preview \
390-
&& docker-php-ext-enable pdo_sqlsrv sqlsrv \
391-
&& php -m | grep -q 'pdo_sqlsrv' \
392-
&& php -m | grep -q 'sqlsrv' \
376+
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
377+
apt-get -y install freetds-dev libsybdb5 \
378+
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.so /usr/lib/libsybdb.so \
379+
&& docker-php-ext-install mssql pdo_dblib \
380+
&& php -m | grep -q 'mssql' \
381+
&& php -m | grep -q 'pdo_dblib' \
382+
;else \
383+
###########################################################################
384+
# Ref from https://github.com/Microsoft/msphpsql/wiki/Dockerfile-for-adding-pdo_sqlsrv-and-sqlsrv-to-official-php-image
385+
###########################################################################
386+
# Add Microsoft repo for Microsoft ODBC Driver 13 for Linux
387+
apt-get install -y apt-transport-https gnupg \
388+
&& curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
389+
&& curl https://packages.microsoft.com/config/debian/8/prod.list > /etc/apt/sources.list.d/mssql-release.list \
390+
&& apt-get update -yqq \
391+
# Install Dependencies
392+
&& ACCEPT_EULA=Y apt-get install -y unixodbc unixodbc-dev libgss3 odbcinst msodbcsql locales \
393+
&& echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \
394+
&& locale-gen \
395+
# Install pdo_sqlsrv and sqlsrv from PECL. Replace pdo_sqlsrv-4.1.8preview with preferred version.
396+
&& pecl install pdo_sqlsrv-4.1.8preview sqlsrv-4.1.8preview \
397+
&& docker-php-ext-enable pdo_sqlsrv sqlsrv \
398+
&& php -m | grep -q 'pdo_sqlsrv' \
399+
&& php -m | grep -q 'sqlsrv' \
400+
;fi \
393401
;fi
394402

395403
###########################################################################

workspace/Dockerfile

Lines changed: 34 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -577,34 +577,40 @@ ARG INSTALL_MSSQL=false
577577
ARG PHP_VERSION=${PHP_VERSION}
578578

579579
RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
580-
###########################################################################
581-
# The following steps were taken from
582-
# https://github.com/Microsoft/msphpsql/wiki/Install-and-configuration
583-
###########################################################################
584-
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \
585-
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list && \
586-
apt-get update -yqq && \
587-
ACCEPT_EULA=Y apt-get install -yqq msodbcsql=13.0.1.0-1 mssql-tools=14.0.2.0-1 && \
588-
apt-get install -yqq unixodbc-dev-utf16 && \
589-
ln -sfn /opt/mssql-tools/bin/sqlcmd-13.0.1.0 /usr/bin/sqlcmd && \
590-
ln -sfn /opt/mssql-tools/bin/bcp-13.0.1.0 /usr/bin/bcp && \
591-
ACCEPT_EULA=Y apt-get install -yqq \
592-
unixodbc \
593-
unixodbc-dev \
594-
libgss3 \
595-
odbcinst \
596-
msodbcsql \
597-
locales && \
598-
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
599-
locale-gen && \
600-
pecl install sqlsrv-4.3.0 pdo_sqlsrv-4.3.0 && \
601-
apt-get install -y locales && \
602-
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
603-
locale-gen && \
604-
echo "extension=sqlsrv.so" > /etc/php/${PHP_VERSION}/cli/conf.d/20-sqlsrv.ini && \
605-
echo "extension=pdo_sqlsrv.so" > /etc/php/${PHP_VERSION}/cli/conf.d/20-pdo_sqlsrv.ini \
606-
&& php -m | grep -q 'sqlsrv' \
607-
&& php -m | grep -q 'pdo_sqlsrv' \
580+
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
581+
apt-get -y install php5.6-sybase freetds-bin freetds-common libsybdb5 \
582+
&& php -m | grep -q 'mssql' \
583+
&& php -m | grep -q 'pdo_dblib' \
584+
;else \
585+
###########################################################################
586+
# The following steps were taken from
587+
# https://github.com/Microsoft/msphpsql/wiki/Install-and-configuration
588+
###########################################################################
589+
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \
590+
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list && \
591+
apt-get update -yqq && \
592+
ACCEPT_EULA=Y apt-get install -yqq msodbcsql=13.0.1.0-1 mssql-tools=14.0.2.0-1 && \
593+
apt-get install -yqq unixodbc-dev-utf16 && \
594+
ln -sfn /opt/mssql-tools/bin/sqlcmd-13.0.1.0 /usr/bin/sqlcmd && \
595+
ln -sfn /opt/mssql-tools/bin/bcp-13.0.1.0 /usr/bin/bcp && \
596+
ACCEPT_EULA=Y apt-get install -yqq \
597+
unixodbc \
598+
unixodbc-dev \
599+
libgss3 \
600+
odbcinst \
601+
msodbcsql \
602+
locales && \
603+
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
604+
locale-gen && \
605+
pecl install sqlsrv-4.3.0 pdo_sqlsrv-4.3.0 && \
606+
apt-get install -y locales && \
607+
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
608+
locale-gen && \
609+
echo "extension=sqlsrv.so" > /etc/php/${PHP_VERSION}/cli/conf.d/20-sqlsrv.ini && \
610+
echo "extension=pdo_sqlsrv.so" > /etc/php/${PHP_VERSION}/cli/conf.d/20-pdo_sqlsrv.ini \
611+
&& php -m | grep -q 'sqlsrv' \
612+
&& php -m | grep -q 'pdo_sqlsrv' \
613+
;fi \
608614
;fi
609615

610616
###########################################################################

0 commit comments

Comments
 (0)