以下PHP脚本无法创建目录。当目录已经存在时,它也无法创建文件。
我不完全理解umask(),也不确定如何正确使用它。我不知道这是否是问题,但似乎很可能是。我应该更改umask,创建文件/目录,然后再将其更改回来吗?更改/创建/编辑文件/目录的umask应该是什么?服务器应该进行不同的配置吗?
ini_set('error_reporting', E_ALL);
define('ABSPATH', $_SERVER['DOCUMENT_ROOT']);
echo ABSPATH . '<br /><br />';
$dir_to_make = ABSPATH . '/aaatest';
$file_to_make = ABSPATH . '/aaatest/aaatest.txt';
echo umask() . '<br />';
mkdir($dir_to_make) or die('could not create directory');
fopen($file_to_make) or die('could not open/create file');
umask()返回了一个值为18。文档根目录中有一个句点(/var/www/blah/websitename.com/httpdocs)。我不完全理解umask(),也不确定如何正确使用它。我不知道这是否是问题,但似乎很可能是。我应该更改umask,创建文件/目录,然后再将其更改回来吗?更改/创建/编辑文件/目录的umask应该是什么?服务器应该进行不同的配置吗?
mkdir
。如果你已经确认你正在使用正确的路径,那么你肯定有一个权限问题 - 你需要授予文档根目录所需的权限,以便你的php进程可以写入它。如果你在服务器上没有管理员权限,那么这可能是系统管理员的任务。 - Lee$dir_to_make
和$file_to_make
包含您认为的字符串。像这样打印它们,以免混淆:echo "[{$dir_to_make}]"
。 - Lee