gpt4 book ai didi

php - 为什么 PHP 在启用 SELinux 的情况下不遵循符号链接(symbolic link)?

转载 作者:行者123 更新时间:2023-12-04 19:38:12 25 4
gpt4 key购买 nike

我有一个使用推进的网站。我想把各种配置文件放在 web 根目录之外,但是 propel 需要它们(例如 schema.xmlbuild.properties 等)在同一个目录中。因此,我决定将来自 Web 根目录的符号链接(symbolic link)添加到这些目录:

somesite.com/
|
|- public/
| |- index.php
| |- build -> ../private/build
| |- vendor -> ../private/vendor
|
|- private/
| |- build.properties
| |- schema.xml
| |- build/
| |- vendor/

我的包含路径是这样设置的:
set_include_path('vendor/propel/propel1/runtime/lib' . PATH_SEPARATOR . 'build/classes' . PATH_SEPARATOR . get_include_path());

但是,当我尝试 require_once 'Propel.php';我收到以下错误:
Warning: require_once(Propel.php): failed to open stream: No such file or directory in /home/staging/apache/somewebsite.co.uk/public/functions.php on line 5

使用 chdir('vendor/propel/propel1/runtime/lib'); 进行检查我收到以下错误:
Warning: chdir(): Permission denied (errno 13) in /home/staging/apache/somewebsite.co.uk/public/functions.php on line 5

因此,看来 PHP/Apache 不会遵循符号链接(symbolic link)。我尝试了以下方法:
  • 检查目录是o+x所以apache可以阅读它
  • 已添加 Options FollowSymLinks到 apache 配置中的目录指令(尽管在文档中说这是默认设置)
  • 我也试过chcon -R -h -t httpd_sys_content_t public/vendor/更改 SELinux 类型,但由于某种原因它不会更改

  • 更新

    我以 apache 用户 ( su -s /bin/bash apache ) 身份登录并运行 cat vendor/propel/propel1/runtime/lib/Propel.phppublic 内部目录,它工作得很好。但是,我暂时禁用了 SELinux 和 错误消失了 .所以当然必须是 SELinux。

    正如我之前提到的,我尝试过:
    chcon -R -h -t httpd_sys_content_t public/vendor/

    但在这样做之后,运行 ls -alZ给我以下供应商:
    lrwxrwxrwx. staging developers unconfined_u:object_r:user_home_t:s0 vendor -> /home/staging/apache/somewebsite.co.uk/private/vendor/

    有任何想法吗?

    最佳答案

    问题最终是我试图设置 SELinux 类型的方式。

    我之前在运行:

    chcon -R -h -t httpd_sys_content_t public/vendor/

    但是,我必须运行:
    chcon -R -h -t httpd_sys_content_t public/vendor

    没有 尾部斜线。一旦我这样做了,一切都立即焕然一新。

    注:因为我没有 Options我的 apache 中的指令 Directory config,我不必指定它,它仍然有效。

    关于php - 为什么 PHP 在启用 SELinux 的情况下不遵循符号链接(symbolic link)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23362186/

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