我们一直在使用Docker和Dockerhub中的公共存储库 nanoserver / wamp 来实现我们的项目。我们已经能够使用该系统,就像我们在数据库中使用PHP和外部MySQL服务器一样。
现在,我们的数据库正在转移到MSSQL,为了访问MSSQL,我们需要在C:\ php \ ext文件夹中拥有sqlsrv .dll文件
但是sqlsrv的一个先决条件是MSODBC驱动程序,由于其限制,我找不到在nanoserver内下载.msi文件的方法。
有没有一种方法可以将ODBC文件复制并粘贴到nanoserver中,以便我们可以将sqlsrv用于我们的php项目中?还是有什么方法可以连接到MSSQL数据库?
我已经尝试过了,但是仍然无法使用:
COPY msodbcsql13.dll C:/Windows/System32/
COPY msodbcsql11.dll C:/Windows/System32/
COPY msodbcdiag13.dll C:/Windows/System32/
COPY msodbcdiag11.dll C:/Windows/System32/
COPY msodbcsqlr13.rll C:/Windows/System32/1033/
COPY msodbcsqlr11.rll C:/Windows/System32/1033/
我没有尝试过公共存储库 microsoft / windowsservercore ,因为它提供了IIS-PHP,我们需要一个 Apache-PHP 配置而且我不知道如何在那里设置它。碰巧,如果它仅与此仓库配合使用,您能否指出我如何在 microsoft / windowsservercore 中安装Apache-PHP?
答案 0 :(得分:0)
结果是,实际上没有办法将sqlsrv安装到nanoserver中,因为它需要使用.msi文件类型安装依赖项。
我将仅分享如何将apache-php安装程序设置为 microsoft / windowsservercore
这是我的 dockerfile :
FROM microsoft/windowsservercore
COPY setup c:/apache
ADD https://aka.ms/vs/15/release/VC_redist.x86.exe /apache/vc_redist.x86.exe
ADD https://aka.ms/vs/15/release/VC_redist.x64.exe /apache/vc_redist.x64.exe
RUN C:\apache\vc_redist.x86.exe /quiet /install
RUN C:\apache\vc_redist.x64.exe /quiet /install
COPY Apache24 c:/Apache24
COPY php c:/php
RUN powershell.exe -command \
cmd.exe /c c:/apache/service.bat; \
sc.exe config apache2.4 obj=LocalSystem; \
remove-item c:/apache -Recurse
这是我的service.bat的内容:
cd\
cd Apache24\bin
httpd.exe -k install
在安装Apache-PHP安装程序之后,我能够安装msodbcsql.msi并为PHP插入sqlsrv.dll和pdo_sqlsrv.dll,它显示在phpinfo();