ホームページ  >  記事  >  バックエンド開発  >  Windows プラットフォームでの nginx のコンパイルに関連する問題の処理

Windows プラットフォームでの nginx のコンパイルに関連する問題の処理

WBOY
WBOYオリジナル
2016-08-08 09:26:571602ブラウズ
この記事では、Windows で nginx をコンパイルする方法について説明します。この記事を参照してください。 Visual C を使用した Win32 プラットフォーム上の nginx については詳細に説明されていますが、実際の操作プロセスには常に多くの詳細があり、それをここに記録します。

目次[隠す]

  • 1よくある質問
    • 1.1 指定されたバージョンを取得します
    • 1.2 “stdint.h”: そのようなファイルやディレクトリはありません
    • 1.3 “openssl/ssl.h”: そのようなファイルまたはディレクトリはありません
    • 1.4 ファイルを開けません 「objs/lib/openssl-1.0.1e/lib/ssleay32.lib」
    • 1.5エラー C2220: 警告はエラーとして扱われます - 「オブジェクト」ファイルが生成されません
    • 1.6 致命的 エラー C1010: プリコンパイルされたヘッダーの検索中に予期しないファイルの終わりが発生しました。ソースに「#include "ngx_config.h"」を追加するのを忘れていませんか?私が使用している VS のバージョンは VS2008 ですが、次の問題が発生しました。
    • 指定されたバージョンを取得します
  • たとえば、nignx のバージョン 1.20 をダウンロードしたい場合は、すぐにここで 1.20 のバージョンを探します。 f582d662cc408eb7a132c21f4b298b71d0701abb であることを確認します。次の実行シーケンスで指定されたバージョンを取得できます: hg clone http://hg.nginx.org/nginx cd nginx hg co f582d662cc408eb7a132c21f4b298b71d0701abb

"stdint.h": そのようなファイルまたはディレクトリはありません

この問題は簡単に解決できます。欠落しているヘッダーをダウンロードするだけです。ファイル。 https://code.google.com/p/msinttypes/

解凍後、ヘッダー ファイル ディレクトリを C:Program FilesMicrosoft Visual Studio 9.0VCinclude (または同様のディレクトリ) に配置します。

"openssl/ssl.h": No such file or directory

nmake -f objs/Makefile を実行すると、このような問題が発生する場合があります。このようなパス (objs/lib/openssl-1.0.1e/openssl/include) が表示されますが、実際には存在しません。解決策は、openssl-1.0.1e/openssl を openssl-1.0.1e に変更することです。 vi nginx/objs/Makefile

または、生成された Makefile の構成を直接変更します

vi auto/lib/openssl/conf vi auto/lib/openssl/make

ファイル「objs/lib/openssl-1.0.1e/lib/ssleay32.lib」を開けません

わかりませんnginx プロジェクトが openssl ライブラリを生成しないのはなぜですか。openssl を個別にコンパイルして生成することで、この問題を解決しました。手順は次のとおりです:

perlをインストールします(私はActivePerlを使用します)

opensslをCドライブに解凍し、cd C:openssl-1.0.1e

perlを実行します VC-WIN32を構成します

cmdを実行し、*"Cを変更します:Program FilesMicrosoft Visual Studio 9.0VCvcvarsall.BAT」* cmd にプルして実行します

cmd で msdo_ms を実行します

cmd で nmake -f msntdll.mak を実行します

それでは、手動で生成した libeay32.lib と ssleay32.lib を配置しますnginx /objs/lib/openssl-1.0.1e ディレクトリにコピーします。問題が解決しました。

  • エラー C2220: 警告はエラーとして扱われます – 「オブジェクト」ファイルは生成されません
  • CFLAGS の -WX フィールドを削除し、Makefile を再生成して再コンパイルします
  • vi auto/cc/msvc #CFLAGS="$CFLAGS -WX"
  • 致命的なエラー C101 0 : プリコンパイル済みヘッダーの検索中に予期しないファイルの終わりが見つかりました。 「#include」を追加するのを忘れていませんか? "ngx_config.h""?

Windows モジュールの開発中に問題が発生しました。各ソース ファイルのコードの最初の行を #include "ngx_config.h"* 追加する必要があります。これを実行したくない場合は、 、パラメーターをコンパイルするだけです* - Yungx_config.h を削除します。

コード nmake -f objs/Makefile のこの行を実行するときは、毎回完全にコンパイルする必要があります。このように、objs/Makefile に次の行があります:

objs/lib/openssl-1.0.1e/include/openssl/ssl.h: objs/Makefile

ssh.h このファイルは objs/Makefile* に依存しますが、前者の変更時刻が後者の変更時刻よりも常に早い場合。 , 以下のコマンドは、*objs/Makefile の文字列を削除するだけで常に実行されます

操作プロセスの概要

  • “C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat”
  • “C:\MinGW\msys\1.0\msys.bat”
  • cd /c/nginx
  • 生成makefile
auto/configure --with-cc=cl --builddir=objs --prefix= \ --conf-path=conf/nginx.conf --pid-path=logs/nginx.pid \ --http-log-path=logs/access.log --error-log-path=logs/error.log \ --sbin-path=nginx.exe --http-client-body-temp-path=temp/client_body_temp \ --http-proxy-temp-path=temp/proxy_temp \ --http-fastcgi-temp-path=temp/fastcgi_temp \ --with-cc-opt=-DFD_SETSIZE=1024 --with-pcre=objs/lib/pcre-8.32 \ --with-zlib=objs/lib/zlib-1.2.7 --with-openssl=objs/lib/openssl-1.0.1e \ --with-select_module --with-http_ssl_module --with-ipv6 \ --add-module=objs/lib/naxsi-core-0.48/naxsi_src
  • nmake -f objs/Makefile
  • 启动nginx
start nginx.exe -p "C:\nginx" nginx.exe -p "C:\nginx" -s reload nginx.exe -p "C:\nginx" -s quit

参考资料:
Windows下OpenSSL安装配置

本文由吴遥编写,转载请注明出处。
文章链接:http://www.wuyao721.com/nginx-building-windows.html

以上就介绍了windows平台下编译nginx相关问题处理,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。