is_writable返回false
程序员文章站
2022-05-10 21:01:53
...
我有一个test.php文件,内容如下:
if(is_writable("/home/www/testapp/image/cache"))
{
echo ("can write!");
}
else
{
echo ("can not write!");
}
?>
通过命令行执行,返回的是“can write!”
php test.php
但是,通过网站访问,返回的是can not write!
而且通过命令sudo -u apache php test.php 执行,返回的也是can not write!
通过ps aux | grep apache查看,用户信息如下:
apache 17446 0.0 2.5 373988 49420 ? S Jan13 0:06 /usr/sbin/httpd
apache 17447 0.0 2.5 373760 49084 ? S Jan13 0:07 /usr/sbin/httpd
apache 17448 0.0 3.2 387204 62392 ? S Jan13 0:05 /usr/sbin/httpd
apache 17449 0.0 2.0 360468 39820 ? S Jan13 0:06 /usr/sbin/httpd
apache 17450 0.0 3.0 383112 58328 ? S Jan13 0:06 /usr/sbin/httpd
apache 17451 0.0 3.0 382332 57808 ? S Jan13 0:06 /usr/sbin/httpd
apache 17452 0.0 2.6 374792 50300 ? S Jan13 0:05 /usr/sbin/httpd
apache 17453 0.0 2.5 372472 48364 ? S Jan13 0:07 /usr/sbin/httpd
apache 17942 0.0 2.3 365588 45172 ? S Jan13 0:05 /usr/sbin/httpd
apache 19042 0.0 3.0 384096 59060 ? S Jan14 0:04 /usr/sbin/httpd
apache 19115 0.0 2.4 372488 47748 ? S Jan14 0:02 /usr/sbin/httpd
并且cache的权限也改成了apache
drw-rw-rw- 2 apache apache 4096 10月 20 22:18 cache
drwxrwxrwx 3 apache apache 4096 1月 16 2015 catalog
我的问题是,为什么通过网站或者apache账户,一直都是返回不能写呢,请高手帮忙,非常感谢!!
if(is_writable("/home/www/testapp/image/cache"))
{
echo ("can write!");
}
else
{
echo ("can not write!");
}
?>
通过命令行执行,返回的是“can write!”
php test.php
但是,通过网站访问,返回的是can not write!
而且通过命令sudo -u apache php test.php 执行,返回的也是can not write!
通过ps aux | grep apache查看,用户信息如下:
apache 17446 0.0 2.5 373988 49420 ? S Jan13 0:06 /usr/sbin/httpd
apache 17447 0.0 2.5 373760 49084 ? S Jan13 0:07 /usr/sbin/httpd
apache 17448 0.0 3.2 387204 62392 ? S Jan13 0:05 /usr/sbin/httpd
apache 17449 0.0 2.0 360468 39820 ? S Jan13 0:06 /usr/sbin/httpd
apache 17450 0.0 3.0 383112 58328 ? S Jan13 0:06 /usr/sbin/httpd
apache 17451 0.0 3.0 382332 57808 ? S Jan13 0:06 /usr/sbin/httpd
apache 17452 0.0 2.6 374792 50300 ? S Jan13 0:05 /usr/sbin/httpd
apache 17453 0.0 2.5 372472 48364 ? S Jan13 0:07 /usr/sbin/httpd
apache 17942 0.0 2.3 365588 45172 ? S Jan13 0:05 /usr/sbin/httpd
apache 19042 0.0 3.0 384096 59060 ? S Jan14 0:04 /usr/sbin/httpd
apache 19115 0.0 2.4 372488 47748 ? S Jan14 0:02 /usr/sbin/httpd
并且cache的权限也改成了apache
drw-rw-rw- 2 apache apache 4096 10月 20 22:18 cache
drwxrwxrwx 3 apache apache 4096 1月 16 2015 catalog
我的问题是,为什么通过网站或者apache账户,一直都是返回不能写呢,请高手帮忙,非常感谢!!
回复讨论(解决方案)
php test.php 可以,应该是root可以
sudo -u apache php test.php 不行
表示 apache这个用户没有写权限。
catalog 这个是777的,这个有权限写么?
那不用is_writable
我找到原因了,因为父文件夹没有权限,所以,就算是子文件夹有权限,也不行;不过还是多谢各位~
下一篇: 七牛mkzip压缩中文文件名乱码
推荐阅读
-
向数据库中插入数据并返回当前插入的行数及全局变量@@IDENTITY应用
-
解决vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效问题
-
vue通过滚动行为实现从列表到详情,返回列表原位置的方法
-
调用HttpHanlder的几种返回方式小结
-
blender渲染界面怎么返回到3d视图场景?
-
解决Python3 被PHP程序调用执行返回乱码的问题
-
Python中用函数作为返回值和实现闭包的教程
-
表单提交错误后返回内容消失问题的解决方法(PHP网站)
-
gearman中任务的优先级和返回状态实例分析
-
Android 自定义返回按钮的实例详解