我想在服务器上的php web应用程序的源代码中创建文件夹。我尝试了这段代码,但我无法在应用程序文件夹中创建一个文件夹。是否需要服务器的用户名和密码?
<?php
if (!file_exists('http://domain.com/tourism/data/new')) {
if(mkdir('http://domain.com/tourism/data/new', 0777, true))
{
echo "success";
}
else
echo "error";
}
?>
答案 0 :(得分:0)
<?php
// Desired folder structure relative path
$str = './depth1/depth2/depth3/';
// To create the nested structure, the $recursive parameter
// to mkdir() must be specified.
if (!mkdir($str, 0777, true)) {
die('Failed to create folders...');
}
// ...
?>
确保您有权创建任何文件夹。
答案 1 :(得分:0)
如果您的脚本需要存储文件,通常的做法是为此指定一个专用文件夹。此文件夹将位于Web根目录之外(不能通过http / https访问),并且将以Web服务器可以写入的方式设置其权限。您可以使用(例如)
执行此操作chgrp https $FOLDER
chmod g+w $FOLDER
因此,无法在mkdir
中使用http://。您应该使用文件系统路径,例如/srv/my-script/data
。最好将此路径配置为可配置,例如将其放在配置文件中。
[...]在服务器上的php web应用程序的源代码中创建文件夹。
这是一个非常糟糕的主意,可能会让您容易受到攻击。攻击者可能能够上传自己的PHP代码。
答案 2 :(得分:-1)
为此,执行脚本的“用户”将需要写入权限。这通常是Web服务器用户(在许多linux中,'www-data')。
这可能是也可能不是。大多数人建议至少在web-root之外创建位置。