【问题标题】:Nginx service not starting on Windows 10 - nginx: [alert] could not open error log file: CreateFile()Nginx 服务未在 Windows 10 上启动 - nginx:[alert] 无法打开错误日志文件:CreateFile()
【发布时间】:2016-06-01 08:39:35
【问题描述】:

我有一个配置为在我的 Windows 10 上自动启动的 Nginx 服务;但是,今天早上,该服务无法启动。 错误日志说:nginx:[alert] could not open error log file: CreateFile() "C:\someForlderName\build\distribution\.\nginx/logs/error.log" failed (3: The system cannot find the path specified)

查看上面错误日志中的路径,我的本地系统上没有 /logs/ 文件夹,所以看起来 Nginx 没有创建该文件夹的适当权限?

我设置为 管理员用户,我的服务设置为 登录身份 - 本地系统帐户强>

这只发生在 Windows 10 上;但服务启动并运行 较旧的 Windows 即 8.1

那么有谁知道如何授予 Nginx 管理员权限,以便 Nginx 可以在 Windows 10 上创建文件夹和文件?

【问题讨论】:

    标签: nginx windows-10 file-permissions


    【解决方案1】:

    你需要:

    要安装 nginx/Windows,请下载最新的主线版本分发版 (1.13.8),因为 nginx 的主线分支包含所有已知的修复。然后解压发行版,进入nginx-1.13.8目录,运行nginx。以下是驱动器 C: 根目录的示例:(以管理员身份运行 cmd)

    cd c:\
    unzip nginx-1.13.8.zip
    cd nginx-1.13.8
    start nginx
    

    转到:http://localhost:80 -> 测试安装

    返回控制台cmd:“nginx -s stop”

    下次跑:

    1. 配置文件:“C:\nginx-1.13.8\conf\nginx.conf”
    2. 以管理员身份打开cmd
    3. 运行 bash:“cd C:\nginx-1.13.8”
    4. 使用 bash 运行 nginx:“start nginx”。如果使用 bash:"nginx" 运行,退出 nginx 会出现问题。
    5. nginx -s stop #快速关机

      nginx -s 退出 #graceful 关机

      nginx -s reload #更改配置,使用新配置启动新工作进程,优雅关闭旧工作进程

      nginx -s重新打开#re-opening日志文件

    【讨论】:

    • 对我来说,我做的一切都是正确的,但是在两个小时内我无法在命令行中“启动 nginx”。该命令本身很快就为我启动了服务器。
    【解决方案2】:

    在你运行nginx.exe的目录下,尝试创建一个名为logs的目录,在log下创建一个名为error.log的文件。 它应该通过这个错误。

    【讨论】:

    • 这对我不起作用,我在 windows 服务上运行 nginx
    • 嗨@eagles,你能粘贴错误信息吗?我不确定“不起作用”的具体错误是什么。您也可以尝试在配置文件中使用绝对路径指定error_log。更多信息可以查看:nginx error_log
    【解决方案3】:
    1. 下载 zip 文件后,您已解压缩。
    2. 确保您没有嵌套的文件夹名称。您必须复制包含nginx.exe 文件的文件夹,并将其粘贴到C:/ 文件夹中。
    3. 在运行命令时,例如nginx -s stop,确保当前工作目录与nginx.exe 文件相同。 enter image description here

    【讨论】:

    • nginx -s stop 应该在 nginx.exe 的同一文件夹中运行的部分对我帮助很大!显然,Windows 的 Nginx 比 Windows 的 Apache 落后了很多年。
    【解决方案4】:

    Nginx 在默认端口 80 上启动,而不是 8080。在浏览器上尝试 localhost:80。

    如果要更改端口,请使用文本编辑器打开 C:\nginx-1.16.1\conf\nginx.conf。 更改您想要使用默认端口的端口号。

    server {
        listen       80;
        server_name  localhost;
    to:
    
    server {
        listen       8080;
        server_name  localhost;
    

    【讨论】:

      【解决方案5】:

      我在启动 nginx 服务器时遇到了类似的问题,但是在仔细查看并尝试在不同的控制台中运行命令后,我意识到这只是一个缺少路径的简单问题。

      我的解决方法是 cd 进入 nginx.exe 文件的包含文件夹(实际上包含错误日志和所有必要的文件),然后运行 ​​nginx 命令启动服务器并为我修复它。

      【讨论】:

        猜你喜欢
        • 2016-06-04
        • 1970-01-01
        • 2018-05-16
        • 2016-02-16
        • 2018-04-20
        • 2022-10-22
        • 2017-09-28
        • 1970-01-01
        • 2011-03-20
        相关资源
        最近更新 更多