我是mac世界的新手,刚刚设置了我的网络服务器。我使用了以下指南:http://echo.co/blog/os-x-107-lion-development-native-mamp-mysql-installer
我已经转移了我的网站和数据库,一切都很顺利。我唯一的问题是写作权限。例如,有一个需要写入的配置文件,我必须右键单击,转到“获取信息”,然后启用“读取和放大”。写给员工和每个人。
我无法手动完成并为每个文件/文件夹启用这些写权限。我不需要使用WAMP来做这件事,并使开发更快。
因此想知道2种可能的解决方案: a)将我的用户帐户添加到localhost的白名单中,以便644权限就足够了 b)递归设置写权限
答案 0 :(得分:49)
我发现最好的解决方案是更改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等早期版本,将员工资本化为员工。您可以输入“id”并点击输入终端
重启Apache
sudo apachectl restart
答案 1 :(得分:22)
我是上述博文的作者。对于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。 Here's more information on Unix file permissions
此外,您的用户可以保留完整的所有权并为_www用户添加某些权限,而不是使用访问控制列表更改所有用户的访问权限。
$ 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
如果你要去ACL的路线,我建议你做一些阅读,看看你真正需要提供什么级别的访问。 Here is a great place to start
答案 2 :(得分:10)
我在OSX上运行Apache并为我修复了它:
sudo chown -R _www:_www <mywebfolder>
sudo chmod -R 775 <mywebfolder>
更新#1:
语法:sudo chown <user>:<group> <file-or-folder>
。 OSX上的Apache用户是_www
。
保留所有权但授予Apache r-w-x权限:
sudo chown -R <your-username>:_www <mywebfolder>
sudo chmod -R 775 <mywebfolder>
更新#2:
我最喜欢这种方法。将Apache设置为以您的身份运行。
在终端类型id
中获取uid=123(Myname)
。
打开/etc/apache2/httpd.conf并对其进行编辑以使用您的用户名。
<IfModule unixd_module>
User Myname
Group staff
</IfModule>
返回终端:sudo apachectl restart
答案 3 :(得分:2)
我建议您为Web根设置递归写入权限。
您可以使用chmod -R 774 /my/web/root
通过控制台/终端执行此操作。对我来说,所有者和群组设置为:www-data:myUserName
,可以使用chown
进行设置。不要忘记先检查您的网络用户是谁。
修改:为了更好地理解,为什么您没有访问权限:
Chmod 774,每个号码代表特定权利:用户,组,其他。如果用户设置为www-data
且组设置为www-data
(Unix系统上的大多数用户位于由其用户名命名的组中)。因此,如果您不在组www-data
中,则必须加入它,或者您必须更改所有者(chown)或者您必须更改权限(chmod)。有更多信息,有几个教程。
答案 4 :(得分:0)