2017-03-10 7 views
1

Apache 5.40をApache 2.4で使用しようとすると、Docker )しかし、問題を修正するための実際の解決策はないようです。私は、次のエラーを取得しています:c:/php/php5apache2_4.dllをサーバーに読み込めません:指定されたモジュールが見つかりませんでした

Cのディレクトリ調べる

httpd.exe: Syntax error on line 534 of C:/Apache24/conf/httpd.conf: Cannot load c:/php/php5apache2_4.dll into server: The specified module could not be found.

:(ドッカー容器内)\ phpのを私はDLLが明らかに存在

03/09/2017 04:34 PM <DIR>   . 
03/09/2017 04:34 PM <DIR>   .. 
01/18/2017 08:12 PM   69,632 deplister.exe 
03/09/2017 04:34 PM <DIR>   dev 
03/09/2017 04:34 PM <DIR>   ext 
03/09/2017 04:34 PM <DIR>   extras 
01/18/2017 08:12 PM   1,290,752 glib-2.dll 
01/18/2017 08:12 PM   16,384 gmodule-2.dll 
01/18/2017 08:12 PM  25,672,192 icudt57.dll 
01/18/2017 08:12 PM   2,065,920 icuin57.dll 
01/18/2017 08:12 PM   51,200 icuio57.dll 
01/18/2017 08:12 PM   257,536 icule57.dll 
01/18/2017 08:12 PM   50,176 iculx57.dll 
01/18/2017 08:12 PM   63,488 icutest57.dll 
01/18/2017 08:12 PM   196,096 icutu57.dll 
01/18/2017 08:12 PM   1,456,128 icuuc57.dll 
01/18/2017 08:12 PM   79,408 install.txt 
03/09/2017 04:34 PM <DIR>   lib 
01/18/2017 08:12 PM   2,244,096 libeay32.dll 
01/18/2017 08:12 PM   46,592 libenchant.dll 
01/18/2017 08:12 PM   185,344 libpq.dll 
01/18/2017 08:12 PM   237,056 libsasl.dll 
01/18/2017 08:12 PM   213,504 libssh2.dll 
01/18/2017 08:12 PM    3,286 license.txt 
01/18/2017 08:12 PM   557,659 news.txt 
01/18/2017 08:12 PM    43 phar.phar.bat 
01/18/2017 08:12 PM   53,242 pharcommand.phar 
01/18/2017 08:12 PM   59,392 php-cgi.exe 
01/18/2017 08:12 PM   32,256 php-win.exe 
01/18/2017 08:12 PM   79,872 php.exe 
01/18/2017 08:12 PM    2,523 php.gif 
01/18/2017 08:12 PM   75,684 php.ini-development 
01/18/2017 08:12 PM   75,715 php.ini-production 
01/18/2017 08:12 PM   32,768 php5apache2_4.dll <--- look right here 
01/18/2017 08:12 PM   846,630 php5embed.lib 
01/18/2017 08:12 PM   168,960 php5phpdbg.dll 
01/18/2017 08:12 PM   8,343,040 php5ts.dll 
01/18/2017 08:12 PM   181,760 phpdbg.exe 
01/18/2017 08:12 PM   21,360 readme-redist-bins.txt 
01/18/2017 08:12 PM    3,634 snapshot.txt 
01/18/2017 08:12 PM   353,792 ssleay32.dll 
       35 File(s)  45,087,120 bytes 

使用してくださいすることについて、このanswer交渉がある見ます同じビットのバージョン(私は64ビットを使用しています)と、バージョンがスレッドセーフであることを確認することです。ここでは、私のDockerfileには、ApacheとPHPの64ビットスレッドセーフバージョンへのリンクを参照することができます:Visual Studioのコンパイラは2015年のためである

FROM microsoft/windowsservercore 

RUN powershell -Command \ 
    $ErrorActionPreference = 'Stop'; \ 
    Invoke-WebRequest -Method Get -Uri https://www.apachelounge.com/download/VC11/binaries/httpd-2.4.25-win64-VC11.zip -OutFile c:\apache.zip ; \ 
    Expand-Archive -Path c:\apache.zip -DestinationPath c:\ ; \ 
    Remove-Item c:\apache.zip -Force 

RUN powershell -Command \ 
    $ErrorActionPreference = 'Stop'; \ 
    Invoke-WebRequest -Method Get -Uri "http://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x64.exe" -OutFile c:\vcredist_x64.exe ; \ 
    start-Process c:\vcredist_x64.exe -ArgumentList '/quiet' -Wait ; \ 
    Remove-Item c:\vcredist_x64.exe -Force 

RUN powershell -Command \ 
    $ErrorActionPreference = 'Stop'; \ 
    Invoke-WebRequest -Method Get -Uri http://windows.php.net/downloads/releases/php-5.6.30-Win32-VC11-x64.zip -OutFile c:\php.zip ; \ 
    Expand-Archive -Path c:\php.zip -DestinationPath c:\php ; \ 
    Remove-Item c:\php.zip -Force 

RUN powershell -Command \ 
    $ErrorActionPreference = 'Stop'; \ 
    Remove-Item c:\Apache24\conf\httpd.conf ; \ 
    new-item -Type Directory c:\www -Force ; \ 
    Add-Content -Value "'<?php phpinfo() ?>'" -Path c:\www\index.php 

ADD httpd.conf /apache24/conf 

WORKDIR /Apache24/bin 

CMD /Apache24/bin/httpd.exe -w 

注意を私は本当にのために活躍の場を平準化する必要がありますかコンパイラを使用して?

最後に、httpd.confに次の行のコンテナ場合のドッカーログに表示するエラーの原因となっているものは、(エラーに記載さライン534は、LoadModuleで始まる行です)開始しました。私は彼らが現時点でコメントアウトしているので、Apacheをスタンドアロンとして起動させることができました(私はコンテナの内部で何が起こっているか調べることができます)。

# configure the path to php.ini 
# PHPIniDir "C:/php" 
# LoadModule php5_module "c:/php/php5apache2_4.dll" 
# AddHandler application/x-httpd-php .php 

私は、コンテナ内にいくつかの既存のPHPコードを展開する予定と(PHP7に失敗したコードにいくつかのことを修正するために多くの仕事を作成します)PHP7にアップグレードする必要はありません。 PHP 7へのアップグレード以外に、この問題を解決する他の方法がありますか?

+0

あなたが最初の 'LoadModule'を入れて、それが必要な' PHPIniDir'ディレクティブをロードしますので、 'IfModule'に他の二つの構成をラップする必要があります。 –

+0

私は@DissidentRageを実行しますが、それでも 'LoadModule'で失敗するでしょう –

+0

私はそれを答えとして投稿しなかったのです。 VC 2014の再配布可能ファイルはインストールされていますか? –

答えて

1

以前のバージョンのVC Redistributableは、それ以降のバージョンでは以前のバージョンをカバーしないため、インストールする必要があります。コンパイルに使用したバージョンは、ダウンロードしたミラー上に表示する必要があります。正式なPHPサイトのWindows download pageは2014が使用されていることを示していますが、2012年も運がよいかもしれません。

またのような構成をセットアップする必要があります

LoadModule php5_module "c:/php/php5apache2_4.dll" 

<IfModule php5_module> 
    # configure the path to php.ini 
    PHPIniDir "C:/php" 
    AddHandler application/x-httpd-php .php 
</IfModule> 
関連する問題