我正在尝试使用unlink来删除我目前拥有以下代码的文件:
unlink(Yii::getAlias('@webroot') . $userprofile->avatar);
路径是正确的,因为我在视图中使用echo来检查并指向我想要删除的正确文件,但是我收到以下错误:
unlink(/Applications/MAMP/htdocs/advanced/Final Prototype): Operation not permitted
如果不是所有者,这可能是权限吗?如果可以,我该如何检查,我是否需要对文件或某些目录执行chmod?
注意:在Mac OS X上工作并使用MAMP
答案 0 :(得分:1)
将网络目录及其文件的所有者更改为您的网络服务器用户(例如,www-data
用于apache)。
在apache中,您可以通过查找httpd.conf
或User
从Group
找到* inx系统中的用户和群组。例如,arch linux上的httpd.conf
文件是:
<IfModule unixd_module>
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User http
Group http
</IfModule>
因此,使用此配置,您可以在Yii项目的根目录上运行chown -R http:http web
。
如果问题持续存在,您还需要更改Web文件夹的权限,以便在用户和组上设置写入规则(chmod -R 755 web
可能是此临时解决方案。您必须将文件移动到上传文件夹,将权限更改为755
)。