yii2无法使用unlink删除文件

时间:2016-04-05 09:40:06

标签: php yii2 delete-file

我正在尝试使用unlink来删除我目前拥有以下代码的文件:

unlink(Yii::getAlias('@webroot') . $userprofile->avatar);

路径是正确的,因为我在视图中使用echo来检查并指向我想要删除的正确文件,但是我收到以下错误:

unlink(/Applications/MAMP/htdocs/advanced/Final Prototype): Operation not permitted

如果不是所有者,这可能是权限吗?如果可以,我该如何检查,我是否需要对文件或某些目录执行chmod?

注意:在Mac OS X上工作并使用MAMP

1 个答案:

答案 0 :(得分:1)

将网络目录及其文件的所有者更改为您的网络服务器用户(例如,www-data用于apache)。

在apache中,您可以通过查找httpd.confUserGroup找到* 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)。