Nginx,编译后的一些问题(文件/文件夹/进程创建)

时间:2018-05-28 14:27:51

标签: nginx

我正在尝试使用Visual Studio 2015编译Nginx作为项目。我遵循了本教程:Compile NGINX with Visual Studio,效果非常好(即使它是为VS 2010制作的)。

我终于能够启动nginx.exe,但网络服务器还没有工作,有几点:

  1. 发布模式
  2. 程序退出并显示消息:

    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))
    
    1. 调试模式
    2. 程序退出并显示消息:

      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.exe
      conf/
          nginx.conf
          a bunch of other conf files
      html/
          index.html
      logs/
          error.log
          acces.log
          nginx.pid
      temp/
          client_body_temp/
      

      注意:我自己创建了不同的文件和文件夹,程序无法执行此操作。

      1. nginx.conf
      2. 最后,我无法在nginx.conf中修改error.log的路径。当我尝试这样做时,似乎根本没有效果。命令

        error_log logs/error_bis.log;
        
        如果我创建文件,

        不会创建error_bis.log或不写入。

        注意:使用命令参数

        启动nginx.exe时会设置前缀路径
        -p my/nginx/path/Nginx/Debug
        

        最后,我有管理员权限。

1 个答案:

答案 0 :(得分:0)

我终于解决了我的问题。

由于定义了UNICODE,CreateDirectory调用CreateDirectoryW而不是CreateDirectoryA。给函数而不是LPWSTR赋予unsigned char *。

我只需将“字符集”(在Property-> General-> Project Defaults中)从“Unicode”设置为“No set”。现在一切都有效。