警告:mkdir():权限被拒绝
问题描述:
我想创建一个新帐户时创建一个目录。
该目录应位于我的图像文件夹中,用于更好地分离上传的图像。警告:mkdir():权限被拒绝
//get the ID of the new account that was just created/inserted
$accountID = mysqli_insert_id($dbc);
//create a new directory path for that account
$directoryPath = "../images/" . $accountID;
// check if the directory exists
if (!is_dir($directoryPath)) {
//create the directory
mkdir($directoryPath, 0777); //breaking here
}
我没有问题让它在几天前工作,但是当今天测试时我有问题。
我在页面中包含ini_set('display_errors', 'On');
以查看我正在抛出什么错误,这是一个权限错误。
Warning: mkdir(): Permission denied
的图像文件夹对所有用户和组以及任何父文件夹,所以我不明白怎么会是一个问题,那和之前工作过几次完全的读/写权限。
我正在研究windows,如果这很重要。
任何想法?
答
为了避免在CLI用户和Apache用户之间的权限问题上花费太多时间,一个简单的配置是在两个进程中使用相同的用户。
做
$ id
uid=1000(my_user), gid=1000(my_group), ...
,然后让你的用户ID和组:
$ sudo service apache2 stop
$ sudo vi /etc/apache2/envvars
export APACHE_RUN_USER=my_user
export APACHE_RUN_GROUP=my_group
$ sudo chown -R my_user /var/lock/apache2
它的更好,更安全,而不是整个目录的权限更改你777
答
你必须确保父目录允许您创建文件夹,而不是正在被用权利...
还创建的文件夹它的自我检查与用户的Apache服务器启动
检查目录已经在使用mkdir()
if (!is_dir ($directoryPath)) {
mkdir($directoryPath, 0777);
}
答
我在窗户上工作,如果重要的话。
它的确如此。
尝试修改此
if (!is_dir($directoryPath)) {
//create the directory
mkdir($directoryPath, 0777); //breaking here
}
对此
if (!is_dir($directoryPath)) {
//create the directory
mkdir($directoryPath); //breaking here
}
你是一个的Windows箱所以它会忽略CHMOD模式。也尝试使用完整的路径,而不是相对的。
该模式默认为0777,这意味着可能的访问范围最广。 有关模式的更多信息,请阅读chmod()页面上的详细信息。
注意:Windows上的模式被忽略。
但是由于uid gid的改变,似乎codeigniter不能在/ var/lib中写会话/ php/sessions/ci_sessionxxxxxxxxxx – 2018-01-20 08:15:59