我正在尝试使用Visual Studio 2015编译Nginx作为项目。我遵循了本教程:Compile NGINX with Visual Studio,效果非常好(即使它是为VS 2010制作的)。
我终于能够启动nginx.exe,但网络服务器还没有工作,有几点:
程序退出并显示消息:
The thread 0x25ac has exited with code 2 (0x2).
The thread 0xe64 has exited with code 2 (0x2).
The thread 0x1a60 has exited with code 2 (0x2).
The program '[13872] nginx.exe' has exited with code 2 (0x2).
error.log文件包含:
2018/05/28 15:26:09 [crit] 13872#4024: CreateProcess("my\nginx\path\Nginx\Release\nginx.exe") failed (5: FormatMessage() error:(15100))
程序退出并显示消息:
The thread 0x18a8 has exited with code 1 (0x1).
The thread 0x3064 has exited with code 1 (0x1).
The thread 0x2bbc has exited with code 1 (0x1).
The program '[6868] Nginx.exe' has exited with code 1 (0x1).
error.log文件包含:
2018/05/28 14:14:25 [emerg] 13152#14248: CreateDirectory() "my/nginx/path/Nginx/Debug/temp/client_body_temp" failed (123: FormatMessage() error:(15100))
这是我的/ nginx / path / Nginx / Debug /和我的/ nginx / path / Nginx / Release /的 注意:我自己创建了不同的文件和文件夹,程序无法执行此操作。 最后,我无法在nginx.conf中修改error.log的路径。当我尝试这样做时,似乎根本没有效果。命令 不会创建error_bis.log或不写入。 注意:使用命令参数 最后,我有管理员权限。nginx.exe
conf/
nginx.conf
a bunch of other conf files
html/
index.html
logs/
error.log
acces.log
nginx.pid
temp/
client_body_temp/
如果我创建文件,error_log logs/error_bis.log;
-p my/nginx/path/Nginx/Debug
答案 0 :(得分:0)
我终于解决了我的问题。
由于定义了UNICODE,CreateDirectory调用CreateDirectoryW而不是CreateDirectoryA。给函数而不是LPWSTR赋予unsigned char *。
我只需将“字符集”(在Property-> General-> Project Defaults中)从“Unicode”设置为“No set”。现在一切都有效。