//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 }
我几天前没有任何问题,但是今天testing时我遇到了问题。
我已经包含了ini_set('display_errors','On'); 在我的页面中看到我正在抛出什么错误,这是一个权限错误。
Warning: mkdir(): Permission denied
SVN – 如何导出只是一个修订
java.lang.NoClassDefFoundError:apache-tomcat-7.0.25
如何使用.htaccess重新编写URL
在htaccess中使用mod访问阻止多个IP范围
Tomcat 8 URL重写问题
图像文件夹具有完整的读/写权限的所有用户和组以及任何父文件夹,所以我不明白这将是一个问题,并已经多次工作。
如果有问题,我正在研究Windows。
有任何想法吗?
与远程服务器进行SSL握手期间出错
RewriteRule的作品,但丑陋的URL显示,而不是漂亮的一个
在.htaccess中需要一个特定的URL RewriteRule
为了避免在CLI用户和Apache用户之间的权限问题上花太多时间,一个简单的配置是在两个进程中使用相同的用户。
通过这样做来获得你的用户ID和组
$ id uid=1000(my_user),gid=1000(my_group),...
接着:
$ 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会更好更安全
您必须确保父目录允许您创建文件夹,而不是它自己正在创建的文件夹与0777权限…
另外,请检查Apache服务器是由哪个用户启动的
在使用mkdir()之前检查目录是否已经存在
if (!is_dir ($directoryPath) ) { mkdir($directoryPath,0777); }
我想你应该试试这个 –
mkdir("../images/".$accountID,0777,'R');
递归的文件夹创建可能会导致问题。 也从 – mkdir获取更多信息
同时检查文件夹权限。
如果有问题,我正在研究Windows。
它确实。
尝试改变这一点
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上模式被忽略 。