>  기사  >  백엔드 개발  >  is_writable返回false

is_writable返回false

WBOY
WBOY원래의
2016-06-20 12:35:541948검색

我有一个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账户,一直都是返回不能写呢,请高手帮忙,非常感谢!!



回复讨论(解决方案)

php test.php 可以,应该是root可以
sudo -u apache php test.php 不行

表示 apache这个用户没有写权限。

catalog 这个是777的,这个有权限写么?

 那不用is_writable

我找到原因了,因为父文件夹没有权限,所以,就算是子文件夹有权限,也不行;不过还是多谢各位~

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.