写入权限 - localhost - Mac OSX
写入权限 - localhost - Mac OSX
我是新来的MAC世界,刚刚设置了我的Web服务器。我使用了以下指南:https://alan.ivey.dev/posts/2011/os-x-10.7-lion-development-native-mamp-with-mysql-installer/
我已经转移了我的网站和数据库,一切都进行得很顺利。我唯一的问题就是写入权限。例如,有一个需要写入的配置文件,我不得不右键单击,进入“获取信息”,然后为staff和everyone启用读写权限。
我不能手动为每个文件/文件夹启用这些写入权限。在使用WAMP时我不需要这样做,这使得开发更加快速。
因此想知道两个可能的解决方案:
a) 将我的用户帐户添加到localhost的白名单中,使644权限足够
b) 递归地设置写入权限
我是提到的博客文章的作者。对于Web服务器文件权限,您需要为文件授予 _www 用户写入访问权限。对于 config.inc.php 文件,您可以采取以下几种方式:
让 _www 拥有该文件并具有写入权限:
$ sudo chown _www config.inc.php $ chmod u+w config.inc.php
让您的用户拥有该文件,将组更改为 _www,并赋予组写入权限:
$ sudo chgrp _www config.inc.php $ chmod g+w config.inc.php
或者,如果您感觉舒适,可以允许所有用户进行写入,但出于安全原因,我不建议这样做:
$ chmod a+w config.inc.php
如果需要将整个文件夹的写入权限授予 _www 用户,则它可以拥有该文件夹和所有文件:
$ sudo chown -R _www:_www folder/
或者,您可以让所有人都具有文件夹的写入和执行权限:
$ chmod a+wx folder/
之所以 chmod 774
会导致您出现无权限错误,是因为 _www 用户处于“4”权限下,即“只读”。对于目录来说,用户需要“执行”才能进入该文件夹。 chmod 775
将允许用户和组 rwx,其他人则为 r-x。 这里提供有关Unix文件权限的更多信息。
此外,您的用户可以保留完全所有权,并为 _www 用户添加特定的权限,而不是更改所有用户的访问级别,可以使用访问控制列表 (ACLs)。
$ sudo chmod -R +a '_www allow read,write,delete,add_file,add_subdirectory,file_inherit,directory_inherit' folder $ sudo chmod +a '_www allow read,write' config.inc.php
如果您要采用 ACLs 的方式,请做一些更多的阅读,以查看您确实需要提供哪些访问级别。 这是一个很好的起点。
我发现最好的解决方案是改变apache用户和组的设置。具体说明可以在这里找到:http://paulmason.name/item/change-apache-user-group-in-lion-os-x
-
打开终端并输入
sudo nano /private/etc/apache2/httpd.conf
-
找到并改变http.conf代码从
User _www Group _www
到
User your_mac_username Group staff
注意:在早期版本中(如Leopard),Staff需要大写。您可以在终端中输入“id”并按下回车键,以获取您的用户名和组
-
重启Apache
sudo apachectl restart