返回信息流在apache+linux下安装一些网站的开源代码,总是会报出文件没有写权限。我把apache的运行时用户从一个不能登陆的用户apache改为普通用户了,文件权限也改为那个普通用户,为啥还是报错权限不足呢?
这是一条镜像帖。来源:北邮人论坛 / www-technology / #7622同步于 2009/6/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖
文件权限的问题,郁闷好久了!帮忙啊
openssl
2009/6/11镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
囧死,改用户干什么?本来apache设计显示登录用户的名字是apache或者nobody或htdocs,都是不能登录的。
chmod 777 /var/www -R试一试,如果这样还能出文件权限问题我就无语了
apache运行时用户?你在哪改的?
没写权限,即使是属主也写不了
【 在 openssl (最爱北京的秋天) 的大作中提到: 】
: 在apache+linux下安装一些网站的开源代码,总是会报出文件没有写权限。我把apache的运行时用户从一个不能登陆的用户apache改为普通用户了,文件权限也改为那个普通用户,为啥还是报错权限不足呢?
httpd.conf里面是可以改的吧。我已经把根目录下所有的文件权限改为了777,为啥还是有问题,郁闷。做一个简单代码如下:
<?php
$perms = fileperms('upgrade');
if(is_writable(upgrade))echo "can write<br>";
else echo "can't write<br>";
if (($perms & 0xC000) == 0xC000) {
// Socket
$info = 's';
} elseif (($perms & 0xA000) == 0xA000) {
// Symbolic Link
$info = 'l';
} elseif (($perms & 0x8000) == 0x8000) {
// Regular
$info = '-';
} elseif (($perms & 0x6000) == 0x6000) {
// Block special
$info = 'b';
} elseif (($perms & 0x4000) == 0x4000) {
// Directory
$info = 'd';
} elseif (($perms & 0x2000) == 0x2000) {
// Character special
$info = 'c';
} elseif (($perms & 0x1000) == 0x1000) {
// FIFO pipe
$info = 'p';
} else {
// Unknown
$info = 'u';
}
// Owner
$info .= (($perms & 0x0100) ? 'r' : '-');
$info .= (($perms & 0x0080) ? 'w' : '-');
$info .= (($perms & 0x0040) ?
(($perms & 0x0800) ? 's' : 'x' ) :
(($perms & 0x0800) ? 'S' : '-'));
// Group
$info .= (($perms & 0x0020) ? 'r' : '-');
$info .= (($perms & 0x0010) ? 'w' : '-');
$info .= (($perms & 0x0008) ?
(($perms & 0x0400) ? 's' : 'x' ) :
(($perms & 0x0400) ? 'S' : '-'));
// World
$info .= (($perms & 0x0004) ? 'r' : '-');
$info .= (($perms & 0x0002) ? 'w' : '-');
$info .= (($perms & 0x0001) ?
(($perms & 0x0200) ? 't' : 'x' ) :
(($perms & 0x0200) ? 'T' : '-'));
echo $info;
?>
结果显示如下:
can't write
drwxrwxrwx
文件是可写的啊,为啥呢?
ps的时候看到的不是nologin的用户名啊?
【 在 yegle 的大作中提到: 】
: apache运行时用户?你在哪改的?
: 没写权限,即使是属主也写不了
你直接file_put_contents($filename,"test");试试
【 在 openssl (最爱北京的秋天) 的大作中提到: 】
: httpd.conf里面是可以改的吧。我已经把根目录下所有的文件权限改为了777,为啥还是有问题,郁闷。做一个简单代码如下:
: <?php
: $perms = fileperms('upgrade');
: ...................
=。=
你当前什么用户?apache什么用户?su成apache的用户再试试
【 在 openssl (最爱北京的秋天) 的大作中提到: 】
: 用这样的方式没问题,php -f,但是在网页上就不行。file_put_contents也不行。why??
当前普通的用户。apache的shell是nologin的,不能su的。
【 在 yegle 的大作中提到: 】
: =。=
: 你当前什么用户?apache什么用户?su成apache的用户再试试