WordPress 无法写入文件

Wordpress can't write file

我正在开发一个 Wordpress 插件,运行正在解决这个问题。我的插件无法将文件写入磁盘。这是我的测试代码。

<?php                                                                                                  
    $fl = fopen ( "output/test.txt" , "w" );
    fwrite ( $fl , "This is a test" );
    fclose ( $fl );
?>

如果我 运行 在一个独立的 PHP 文件中,那么 test.txt 会按预期出现并且“这是一个测试”在文件中。

如果我 运行 作为 Wordpress 插件的一部分,什么也不会发生。没有生成错误,文件夹中也没有任何内容。

所有脚本和文件夹都归 apache 用户 (www-data) 所有,文件夹权限为 775。我也试过 777,但没有任何改变,所以我把它放回去了。

接下来我应该尝试什么或我可以提供哪些其他信息?

您需要使用绝对路径或文档路径..您现在拥有的是尝试在 root 中查找名为 output 的目录进行实际调用的文件系统或应用程序的根目录,因此如果调用时您在 class 目录中,它将在该目录而不是脚本所在的目录中查找.

<?php                                                                                                  
    $fl = fopen ( "/var/www/path/to/your/wp/output/test.txt" , "w" );
    fwrite ( $fl , "This is a test" );
    fclose ( $fl );
?>

<?php                                                                                                  
    $fl = fopen ( $_SERVER["DOCUMENT_ROOT"] . "/myWPFolder/output/test.txt" , "w" );
    fwrite ( $fl , "This is a test" );
    fclose ( $fl );
?>