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 );
?>
我正在开发一个 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 );
?>