gpt4 book ai didi

ubuntu - HHVM 3.0/Hack with Nginx 无法在 Ubuntu 13.10 上访问具有 770 权限的目录中的文件,同时具有组成员身份

转载 作者:行者123 更新时间:2023-12-04 18:32:31 26 4
gpt4 key购买 nike

我有 nginx 设置为在 fast-cgi 模式下使用 HipHop VM 3.0 版。一些事实:

  • 我在 Ubuntu 13.10
  • 上运行
  • nginx 和 hhvm 以用户 www-data 运行.
  • 用户 www-data 在组 fooers
  • nginx 的服务器根目录是一个目录 /srv/foo与单个 index.php里面的文件
  • /srv/foo的集团所有权是组fooers
  • /srv/foo权限设置为 770

  • 当我尝试查看此页面时,我得到一个 404 未找到,但在 hhvm 或 nginx 日志中都没有记录错误。但是,如果我将权限更改为 775/srv/foo该页面由 hhvm 提供服务和 nginx完全符合预期。

    另外,如果我更改 默认 组 www-data 用户为 fooers 组,它具有 770 权限。只有当它不是用户的默认组时,它似乎才会失败。

    什么问题?!?!?有谁知道为什么当权限为 770 时,hhvm/nginx 以用户 www-data 的身份运行并具有对目录的组访问权限,但无法访问?

    为了确认我的理智并确保我的组和权限与我认为的一样,在启动服务后,我运行
    $> ps -aux

    正如预期的那样,我看到了一个 hhvm 进程和运行为 www-data 的 nginx 进程。 :
    www-data  3484 .... /usr/bin/hhvm --config /etc/hhvm/server.ini --user www-data --mode daemon -vPidFile=/var/run/hhvm/pid
    www-data 3617 ... nginx: worker process

    当我检查我看到的组时:
    $> groups www-data
    www-data : www-data fooers

    当我检查目录时,我可以确认对组和所有者的 100% 访问:
    $> ls -al
    total 16
    drwxr-xr-x 5 root root 4096 Mar 30 15:57 .
    drwxr-xr-x 22 root root 4096 Mar 30 11:52 ..
    drwxrwx--- 2 root fooers 4096 Mar 30 15:39 foo

    如果我检查文件的内容为 www-data我被允许的用户:
    $> sudo -u www-data ls -al /srv/foo
    total 12
    drwxrwx--- 2 root fooers 4096 Mar 30 15:39 .
    drwxr-xr-x 5 root root 4096 Mar 30 15:57 ..
    -rw-rw-r-- 1 root fooers 38 Mar 30 15:39 index.php

    如果我对不在 fooers 组中的用户尝试上述操作,则会失败。

    这是我的 /etc/hhvm/server.ini :
    ; php options

    pid = /var/run/hhvm/pid

    ; hhvm specific

    hhvm.server.port = 9000
    hhvm.server.type = fastcgi
    hhvm.server.default_document = index.php
    hhvm.log.level = Warning
    hhvm.log.always_log_unhandled_exceptions = true
    hhvm.log.runtime_error_reporting_level = 8191
    hhvm.log.use_log_file = true
    hhvm.log.file = /var/log/hhvm/error.log
    hhvm.repo.central.path = /var/run/hhvm/hhvm.hhbc
    hhvm.mysql.typed_results = false

    我真的希望这不是我忽略的愚蠢和明显的事情......

    这是我的 Web 根目录的 nginx 位置 block :
    location ~ \.php$ {
    root /srv/foo
    fastcgi_keep_conn on;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /srv/foo$fastcgi_script_name;
    include fastcgi_params;
    }

    最佳答案

    请尝试更改您的配置文件,您的配置文件中没有 SourceRoot。我的一些配置被启动参数覆盖。

    在这里查看它们:/usr/bin/hhvm --config /etc/hhvm/server.hdf --user www-data --mode daemon -vServer.Type=fastcgi -vServer.Port=9010

    PidFile = /var/run/hhvm/pid

    Server {
    Port = 82
    SourceRoot = /var/www/main/
    DefaultDocument = index.php
    }

    #AdminServer {
    # Port = 9088
    # ThreadCount = 1
    # Password = xxx
    #}

    Eval {
    Jit = true
    JitWarmupRequests = 5
    }

    Log {
    Level = Error
    AlwaysLogUnhandledExceptions = true
    RuntimeErrorReportingLevel = 8191
    UseLogFile = true
    UseSyslog = false
    File = /var/log/hhvm/error.log
    Access {
    * {
    File = /var/log/hhvm/access.log
    Format = %h %l %u % t \"%r\" %>s %b
    }
    }
    }

    #Repo {
    # Central {
    # Path = /var/run/hhvm.hhbc.sq3
    # }
    #}

    #include "/usr/share/hhvm/hdf/static.mime-types.hdf"
    StaticFile {
    FilesMatch {
    * {
    pattern = .*\.(dll|exe)
    headers {
    * = Content-Disposition: attachment
    }
    }
    }
    Extensions : StaticMimeTypes
    }

    MySQL {
    TypedResults = false
    }

    关于ubuntu - HHVM 3.0/Hack with Nginx 无法在 Ubuntu 13.10 上访问具有 770 权限的目录中的文件,同时具有组成员身份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22749281/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com