How do I resolve "PHP Fatal error: Unknown: Failed opening required"
How do I resolve "PHP Fatal error: Unknown: Failed opening required"
我在 LAMP 堆栈上有两个站点。一个 (Site1) 将 WordPress 与 Wordfence 结合使用,并且运行良好。第二个网站 (Site2) 只运行一个简单的 index.php 文件:
<?php
echo "Testing";
?>
但是,它显示 HTTP ERROR 500,错误日志如下。
[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
站点 1 和站点 2 彼此无关,它们位于不同的文件夹中。我不确定发生了什么。请指教。
.htaccess Site1 上的文件
# 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
感谢@EdCottrell。我终于找到了答案。
首先,我调试找到 php.ini 所在的位置,方法是在工作中创建一个 info.php地点。
<? php phpinfo(); ?>
然后,我找auto_prepend_file=有没有值。如果是,请将其删除。
然后我打开site1.conf文件并添加auto_prepend_file 行而不是 .htaccess
中的行
<Directory "/path/to/folder">
php_value auto_prepend_file /absolute/path/to/apache-prepend.php
</Directory>
重启Apache服务器后,一切正常!
sudo systemctl restart apache2
我遇到了同样的问题,我试过了运行
docker run --t -v .:/project php
当我尝试做的时候
/project:$ php file.php
我遇到了这个错误。
显然,您不能轻易使用 docker 中的绑定卷。所以我复制了容器里面的volume,用了一个copy
docker run --t -v .:/project php
/project:$ cd ..
/:$ cp -r /project /project2
/:$ cd /project2
/project2: $ php file.php
它奏效了。
我在 LAMP 堆栈上有两个站点。一个 (Site1) 将 WordPress 与 Wordfence 结合使用,并且运行良好。第二个网站 (Site2) 只运行一个简单的 index.php 文件:
<?php
echo "Testing";
?>
但是,它显示 HTTP ERROR 500,错误日志如下。
[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
站点 1 和站点 2 彼此无关,它们位于不同的文件夹中。我不确定发生了什么。请指教。
.htaccess Site1 上的文件
# 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
感谢@EdCottrell。我终于找到了答案。
首先,我调试找到 php.ini 所在的位置,方法是在工作中创建一个 info.php地点。
<? php phpinfo(); ?>
然后,我找auto_prepend_file=有没有值。如果是,请将其删除。
然后我打开site1.conf文件并添加auto_prepend_file 行而不是 .htaccess
中的行<Directory "/path/to/folder">
php_value auto_prepend_file /absolute/path/to/apache-prepend.php
</Directory>
重启Apache服务器后,一切正常!
sudo systemctl restart apache2
我遇到了同样的问题,我试过了运行
docker run --t -v .:/project php
当我尝试做的时候
/project:$ php file.php
我遇到了这个错误。
显然,您不能轻易使用 docker 中的绑定卷。所以我复制了容器里面的volume,用了一个copy
docker run --t -v .:/project php
/project:$ cd ..
/:$ cp -r /project /project2
/:$ cd /project2
/project2: $ php file.php
它奏效了。