首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决"PHP致命错误:未知:失败的打开要求“

如何解决"PHP致命错误:未知:失败的打开要求“
EN

Stack Overflow用户
提问于 2016-12-22 17:52:34
回答 2查看 24.2K关注 0票数 6

我在一个台灯堆上有两个位置。一个(Site1)与Wordfence一起使用WordPress,它运行得非常好。第二个网站(Site2)只在其上运行一个简单的index.php文件:

代码语言:javascript
复制
<?php
echo "Testing";
?>

但是,它显示了带有错误日志的HTTP错误500,如下所示。

代码语言:javascript
复制
[Thu Dec 22 16:23:44.774993 2016] [:error] [pid 56607] [client xxx:27253] PHP Warning:  Unknown: failed to open stream: No such file or directory in Unknown on line 0
[Thu Dec 22 16:23:44.775042 2016] [:error] [pid 56607] [client xxx:27253] PHP Fatal error:  Unknown: Failed opening required '/var/www/site1/public_html/public/wordfence-waf.php' (include_path='.:/usr/share/php') in Unknown on line 0

Site1和Site2之间没有任何关系,它们位于单独的文件夹中。我不知道发生了什么事。请给我建议。

.htaccess文件在Site1上

代码语言:javascript
复制
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

# Wordfence WAF
<IfModule mod_php7.c>
        php_value auto_prepend_file '/var/www/site1/public_html/public/wordfence-waf.php'
</IfModule>
<Files ".user.ini">
<IfModule mod_authz_core.c>
        Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
        Order deny,allow
        Deny from all
</IfModule>
</Files>

# END Wordfence WAF
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-22 19:59:18

谢谢你@EdCottrell。我终于找到了答案。

首先,我通过在工作站点上创建一个php.ini来调试以找到info.php所处的位置。

代码语言:javascript
复制
<? php phpinfo(); ?>

然后,我发现auto_prepend_file =是否有任何值。如果是,请删除。

然后打开site1.conf文件,添加auto_prepend_file行,而不是.htaccess中的行

代码语言:javascript
复制
<Directory "/path/to/folder">
    php_value auto_prepend_file /absolute/path/to/apache-prepend.php
</Directory>

在重新启动Apache服务器之后,一切都可以重新工作了!

代码语言:javascript
复制
sudo systemctl restart apache2
票数 1
EN

Stack Overflow用户

发布于 2021-08-18 18:26:39

我也有同样的问题,我试着跑

代码语言:javascript
复制
docker run --t -v .:/project php

当我试图做的时候

代码语言:javascript
复制
/project:$ php file.php

我犯了这个错误。

显然,你不能那么容易地使用码头的装订卷。因此,我复制了容器内的卷,并使用了副本。

代码语言:javascript
复制
docker run --t -v .:/project php
代码语言:javascript
复制
/project:$ cd ..
/:$ cp -r /project /project2
/:$ cd /project2
/project2: $ php file.php

而且起作用了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41289134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档