【发布时间】:2014-05-21 17:12:37
【问题描述】:
我正在使用 wordpress 扩展来创建 XML 文件输出。然而,只有(非常小)部分输出 si 正确生成。如果我尝试从另一个站点访问该 XML(我需要 XML 和该站点连接在一起),我会收到来自站点的 500 内部服务器错误响应。这是错误日志的一部分:
www.auto-flex.eu [Wed May 21 18:58:35.078213 2014] [-:error] [pid 9298] [client 92.240.253.180:54919] PHP Warning: fopen(/nfsmnt/hosting1_2/0/3/031ab609-b23c-40f3-8d1b-6700b9221820/auto-flex.eu/web/wp-content/plugins/ankona-fields-polia/polia.php) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: No such file or directory in /nfsmnt/hosting1_2/0/3/031ab609-b23c-40f3-8d1b-6700b9221820/auto-flex.eu/web/wp-includes/functions.php on line 3879, referer http://www.auto-flex.eu/wp-admin/admin.php?page=heureka-feed/feed.php
www.auto-flex.eu [Wed May 21 18:58:35.078467 2014] [-:error] [pid 9298] [client 92.240.253.180:54919] PHP Warning: fread() expects parameter 1 to be resource, boolean given in /nfsmnt/hosting1_2/0/3/031ab609-b23c-40f3-8d1b-6700b9221820/auto-flex.eu/web/wp-includes/functions.php on line 3882, referer http://www.auto-flex.eu/wp-admin/admin.php?page=heureka-feed/feed.php
www.auto-flex.eu [Wed May 21 18:58:35.078590 2014] [-:error] [pid 9298] [client 92.240.253.180:54919] PHP Warning: fclose() expects parameter 1 to be resource, boolean given in /nfsmnt/hosting1_2/0/3/031ab609-b23c-40f3-8d1b-6700b9221820/auto-flex.eu/web/wp-includes/functions.php on line 3885, referer http://www.auto-flex.eu/wp-admin/admin.php?page=heureka-feed/feed.php
www.auto-flex.eu [Wed May 21 18:58:35.379629 2014] [-:error] [pid 9298] [client 92.240.253.180:54919] PHP Warning: fopen(/nfsmnt/hosting1_2/0/3/031ab609-b23c-40f3-8d1b-6700b9221820/auto-flex.eu/web/wp-content/plugins/ankona-fields-polia/polia.php) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: No such file or directory in /nfsmnt/hosting1_2/0/3/031ab609-b23c-40f3-8d1b-6700b9221820/auto-flex.eu/web/wp-includes/functions.php on line 3879, referer http://www.auto-flex.eu/wp-admin/admin.php?page=heureka-feed/feed.php
www.auto-flex.eu [Wed May 21 18:58:35.379744 2014] [-:error] [pid 9298] [client 92.240.253.180:54919] PHP Warning: fread() expects parameter 1 to be resource, boolean given in /nfsmnt/hosting1_2/0/3/031ab609-b23c-40f3-8d1b-6700b9221820/auto-flex.eu/web/wp-includes/functions.php on line 3882, referer http://www.auto-flex.eu/wp-admin/admin.php?page=heureka-feed/feed.php
www.auto-flex.eu [Wed May 21 18:58:35.379803 2014] [-:error] [pid 9298] [client 92.240.253.180:54919] PHP Warning: fclose() expects parameter 1 to be resource, boolean given in /nfsmnt/hosting1_2/0/3/031ab609-b23c-40f3-8d1b-6700b9221820/auto-flex.eu/web/wp-includes/functions.php on line 3885, referer http://www.auto-flex.eu/wp-admin/admin.php?page=heureka-feed/feed.php
www.auto-flex.eu [Wed May 21 19:00:38.025588 2014] [-:error] [pid 9364] [client 92.240.253.180:59625] PHP Warning: fopen(/nfsmnt/hosting1_2/0/3/031ab609-b23c-40f3-8d1b-6700b9221820/auto-flex.eu/web/wp-content/plugins/ankona-fields-polia/polia.php) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: No such file or directory in /nfsmnt/hosting1_2/0/3/031ab609-b23c-40f3-8d1b-6700b9221820/auto-flex.eu/web/wp-includes/functions.php on line 3879, referer http://www.auto-flex.eu/wp-admin/admin.php?page=heureka-feed/feed.php
www.auto-flex.eu [Wed May 21 19:00:38.025663 2014] [-:error] [pid 9364] [client 92.240.253.180:59625] PHP Warning: fread() expects parameter 1 to be resource, boolean given in /nfsmnt/hosting1_2/0/3/031ab609-b23c-40f3-8d1b-6700b9221820/auto-flex.eu/web/wp-includes/functions.php on line 3882, referer http://www.auto-flex.eu/wp-admin/admin.php?page=heureka-feed/feed.php
www.auto-flex.eu [Wed May 21 19:00:38.025708 2014] [-:error] [pid 9364] [client 92.240.253.180:59625] PHP Warning: fclose() expects parameter 1 to be resource, boolean given in /nfsmnt/hosting1_2/0/3/031ab609-b23c-40f3-8d1b-6700b9221820/auto-flex.eu/web/wp-includes/functions.php on line 3885, referer http://www.auto-flex.eu/wp-admin/admin.php?page=heureka-feed/feed.php
www.auto-flex.eu [Wed May 21 19:00:38.138559 2014] [-:error] [pid 9364] [client 92.240.253.180:59625] PHP Warning: fopen(/nfsmnt/hosting1_2/0/3/031ab609-b23c-40f3-8d1b-6700b9221820/auto-flex.eu/web/wp-content/plugins/ankona-fields-polia/polia.php) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: No such file or directory in /nfsmnt/hosting1_2/0/3/031ab609-b23c-40f3-8d1b-6700b9221820/auto-flex.eu/web/wp-includes/functions.php on line 3879, referer http://www.auto-flex.eu/wp-admin/admin.php?page=heureka-feed/feed.php
www.auto-flex.eu [Wed May 21 19:00:38.138630 2014] [-:error] [pid 9364] [client 92.240.253.180:59625] PHP Warning: fread() expects parameter 1 to be resource, boolean given in /nfsmnt/hosting1_2/0/3/031ab609-b23c-40f3-8d1b-6700b9221820/auto-flex.eu/web/wp-includes/functions.php on line 3882, referer http://www.auto-flex.eu/wp-admin/admin.php?page=heureka-feed/feed.php
www.auto-flex.eu [Wed May 21 19:00:38.138672 2014] [-:error] [pid 9364] [client 92.240.253.180:59625] PHP Warning: fclose() expects parameter 1 to be resource, boolean given in /nfsmnt/hosting1_2/0/3/031ab609-b23c-40f3-8d1b-6700b9221820/auto-flex.eu/web/wp-includes/functions.php on line 3885, referer http://www.auto-flex.eu/wp-admin/admin.php?page=heureka-feed/feed.php
我知道这些只是 PHP 警告而不是错误,但我认为这就是插件不起作用的原因。我相信我的 htaccess 文件只有一些问题。现在它只是基本的 WP htaccess 文件,它看起来像这样:
# 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
functions.php 中的代码:
function get_file_data( $file, $default_headers, $context = '' ) {
$fp = fopen( $file, 'r' );
$file_data = fread( $fp, 8192 );
fclose( $fp );
$file_data = str_replace( "\r", "\n", $file_data );
if ( $context && $extra_headers = apply_filters( "extra_{$context}_headers", array() ) ) {
$extra_headers = array_combine( $extra_headers, $extra_headers ); // keys equal values
$all_headers = array_merge( $extra_headers, (array) $default_headers );
} else {
$all_headers = $default_headers;
}
foreach ( $all_headers as $field => $regex ) {
if ( preg_match( '/^[ \t\/*#@]*' . preg_quote( $regex, '/' ) . ':(.*)$/mi', $file_data, $match ) && $match[1] )
$all_headers[ $field ] = _cleanup_header_comment( $match[1] );
else
$all_headers[ $field ] = '';
}
return $all_headers;
}
对此有何建议?
谢谢转发。
【问题讨论】:
-
你能从functions.php的第3879行给出一些代码吗?
-
我已将其添加到我的帖子中,但它只是 WP 附带的通用 functions.php 文件,所以我认为问题不应该存在。我相信它与 htaccess 标头有关。
-
fopen 不使用 htaccess,因为它使用本地路径。能否手动检查一下路径结构是否正确,文件是否存在?
-
是的,两个文件都存在
-
然而,应该显示 xml 提要的站点有时会像我写的那样显示其中的一部分,但有时也会给出代理错误,说“代理服务器收到来自上游服务器的无效响应。代理服务器无法处理请求GET /index.php。原因:从远程服务器读取错误”
标签: php xml wordpress .htaccess