Pau*_*son 22 php apache macos privileges localhost
我是mac世界的新手,刚刚设置了我的网络服务器.我使用了以下指南:http://echo.co/blog/os-x-107-lion-development-native-mamp-mysql-installer
我已经转移了我的网站和数据库,一切都很顺利.我唯一的问题是写作权限.例如,有一个需要写入的配置文件,我必须右键单击,转到获取信息,然后为员工和所有人启用读写.
我无法手动完成并为每个文件/文件夹启用这些写权限.我不需要使用WAMP这样做,并使开发更快.
所以想知道两个可能的解决方案:a)将我的用户帐户添加到localhost的白名单,以便644特权足够b)递归设置写权限
Pau*_*son 49
我发现最好的解决方案是更改apache用户和组设置.有关说明,请访问:http://paulmason.name/item/change-apache-user-group-in-lion-os-x
打开终端并输入
sudo nano /private/etc/apache2/httpd.conf
Run Code Online (Sandbox Code Playgroud)查找并更改http.conf代码
User _www
Group _www
Run Code Online (Sandbox Code Playgroud)
至
User your_mac_username
Group staff
Run Code Online (Sandbox Code Playgroud)
注意:使用Leopard等早期版本,将员工资本化为员工.您可以输入"id"并点击在终端输入来获取您的用户名和组
重启Apache
sudo apachectl restart
Run Code Online (Sandbox Code Playgroud)Ala*_*vey 23
我是上述博文的作者.对于Web服务器文件权限,您需要为_www用户提供文件的写访问权限.对于config.inc.php,您可以设置几种方式:
拥有_www拥有该文件并具有写权限:
$ sudo chown _www config.inc.php
$ chmod u+w config.inc.php
Run Code Online (Sandbox Code Playgroud)
让您的用户拥有该文件,将该组更改为_www,并授予组写权限:
$ sudo chgrp _www config.inc.php
$ chmod g+w config.inc.php
Run Code Online (Sandbox Code Playgroud)
或者,如果您觉得允许所有用户编写,我出于安全原因不建议写入,请让所有用户都能够编写:
$ chmod a+w config.inc.php
Run Code Online (Sandbox Code Playgroud)
如果整个文件夹需要由_www用户编写,它可以拥有该文件夹和所有文件:
$ sudo chown -R _www:_www folder/
Run Code Online (Sandbox Code Playgroud)
或者您可以为所有人提供文件夹写入和执行权限:
$ chmod a+wx folder/
Run Code Online (Sandbox Code Playgroud)
之所以chmod 774给你禁止错误是因为_www用户属于'4'权限,这是'只读'.对于目录,用户需要"执行"才能遍历该文件夹.chmod 775允许用户和组到rwx,其他人到rx.这里有关于Unix文件权限的更多信息.
此外,您的用户可以保留完整的所有权并为_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
Run Code Online (Sandbox Code Playgroud)
如果你打算走ACL路线,我建议你做一些阅读,看看你真正需要提供什么级别的访问.这是一个很好的起点.
Jus*_*tin 10
我在OSX上运行Apache,这为我修复了它:
sudo chown -R _www:_www <mywebfolder>
sudo chmod -R 775 <mywebfolder>
Run Code Online (Sandbox Code Playgroud)
更新#1:
语法:sudo chown <user>:<group> <file-or-folder>.OSX上的Apache用户是_www.
要保留所有权,但要授予Apache rwx权限:
sudo chown -R <your-username>:_www <mywebfolder>
sudo chmod -R 775 <mywebfolder>
Run Code Online (Sandbox Code Playgroud)
更新#2:
我最喜欢这种方法.将Apache设置为以您的身份运行.
在终端类型id中获取uid=123(Myname).
打开/etc/apache2/httpd.conf并编辑它以使用您的用户名.
<IfModule unixd_module>
User Myname
Group staff
</IfModule>
Run Code Online (Sandbox Code Playgroud)回到终端: sudo apachectl restart
| 归档时间: |
|
| 查看次数: |
41998 次 |
| 最近记录: |