在Mac OS X上,XAMPP的权限如何设置?

76

我在 Mac OS X 10.6.8 上安装了默认设置的 XAMPP 1.7.3。

虽然 Web 服务器似乎工作正常,但 htdocs 目录的权限除了系统用户外,其他所有人都被设置为“只读”。 因此 (a) 每次复制 web 内容时,我必须提供 root 密码,并且更为严重的是,(b) NetBeans 无法创建目标目录,甚至不会在源目录中生成 index.php 文件。

我是否需要手动更改 htdocs 目录的权限,还是应该更改某些全局的 XAMPP 设置?以 root 用户身份运行 NetBeans 看起来有点极端。

15个回答

218

我尝试了上述方法,但无法更改htdocs文件夹的权限选项。

我的解决方法是:

  1. 打开应用程序文件夹
  2. 找到XAMPP文件夹
  3. 右键点击,获取信息(如上所述)
  4. 在弹出窗口中找到“共享和权限”部分
  5. 单击“锁定”小锁图标
  6. 输入管理员密码
  7. 将“所有人”的权限更改为读取和写入
  8. 在“获取信息”窗口中,仍然选择最底部的“齿轮”图标下拉选项,并选择“应用于包含的项目”,这将调整所有子文件夹的权限。
  9. 重新锁定小锁图标
  10. 关闭“获取信息”窗口。

任务完成,现在您可以根据需要填充htdocs文件夹中的子文件夹以填充您的网站。


10
我曾经费了一番功夫才明白 - 我已经更改了“htdocs”文件夹中我的文件夹的权限,但关键是要更改XAMPP文件夹本身的权限。顺便说一下,这也可以通过终端从“应用程序”目录中使用chmod -R 0775 XAMPP/来完成。 - head in the codes
16
警告:如果您在主XAMPP文件夹上执行此操作,将会影响phpmyadmin等内容......我的解决方案只是在htdocs目录中启用它。 - James Alvarez
2
我只在我的/wordpress_site/wp-content文件夹上进行了此操作,它起作用了。现在可以安装插件和主题了。您建议在FTP上传到在线托管提供商之前将文件权限更改回原始状态吗? - Matthew
这对我所有的文件夹都没有起作用(令人恼火),但另一个解决方案起了作用。https://dev59.com/Qmox5IYBdhLWcg3wq2IC#55412980 - Nathan Todd

64

请确保 XAMPP 应用程序 已经运行,然后:

  1. XAMPP 应用程序 中的 通用 选项卡下,单击 打开终端
  2. 将会启动一个终端窗口,上面会显示类似于 root@debian:~# 的提示符
  3. 在终端窗口中输入 chmod -R 0777 /opt/lampp/htdocs/ 并按 Enter
  4. 关闭终端窗口,完成操作

运行得非常好,这是一个很棒的本地设置解决方案。 - jojeyh
3
哦,我的天啊,它他妈的成功了。试验了这么多建议,谢谢。 - Tillit Forsikring
@leSmooth 欢迎。愉快编码。我很高兴它对你有用。 - Bryan Kimani
之前尝试了其他解决方案,但都无法解决问题——无法找到xampp文件夹,更改Finder权限对某些文件夹也没有用——但这个方法成功了!谢谢。 - Nathan Todd
3
将 Web 服务器文件夹权限设置为 777,会增加主要的安全风险,所以你真的不应该这样做。 - Burgi
如何在Windows中实现这个功能? - Jenuel Ganawed

29

对于最新版本的OSX,

  1. 右键单击文件夹
  2. 选择获取信息
  3. 展开共享与权限部分
  4. 通过点击右下角锁图标来解锁该文件夹
  5. 现在,选择用户列表并为用户启用读取和写入特权
  6. 点击+图标添加用户名
  7. 最后,点击设置图标并选择应用于封闭项目...

    输入图像说明


14

按照此页面的指示:

  1. 打开XAMPP控制面板 (cmd-space,然后输入manager-osx.app)。
  2. 选择Manage Servers选项卡 -> 选择Apache Web Server -> 点击Configure
  3. 点击Open Conf File。如果被要求提供凭据,则提供。
  4. <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 daemon
    Group daemon
    </IfModule>
    

    <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 your_username
    Group staff
    </IfModule>
    
  5. 保存并关闭。

  6. 使用XAMPP控制面板,重新启动Apache。
  7. 导航至服务器文档根目录并将其所有权更改为您自己。默认目录为/Applications/XAMPP/xamppfiles/htdocs

  8. $ cd your_document_root
    $ sudo chown -R your_username:staff .
    
  9. 导航到 xamppfiles 目录并更改 logstemp 目录的权限。

  10. $ cd /Applications/XAMPP/xamppfiles
    $ sudo chown -R your_username:staff logs
    $ sudo chown -R your_username:staff temp
    
    要使用phpmyadmin,您需要更改config.inc.php的权限。
    $ cd /Applications/XAMPP/xamppfiles/phpmyadmin
    $ sudo chown your_username:staff config.inc.php
    

1
谢谢,你真的非常有帮助。 - Nabeel Khan
2
我按照这些指示进行了操作,但是我的 MySql 数据库无法运行。 - CrashBurn
就是这样,谢谢!令人难以置信的是,即使过了4年,XAMPP工作人员仍然没有解决这个问题。 - Vladimir Jovanović
1
我不需要更改日志、临时文件或config.inc.php的所有权。我必须更改/Applications/XAMPP/xamppfiles/temp/mysql的所有权。我必须将其设置为“everyone”。除了我的用户名或staff之外。 - Vishwas

11

对于新的Mac OS X上的XAMPP-VM,我将所有权更改为daemon用户并解决了问题。

例如,

$ chown -R daemon:daemon /opt/lampp/htdocs/hello-laravel/storage

我的解决方案是:chown -R bitnami:root我正在使用composer,在htdocs中有一个名为“apps”的文件夹,其中包含我的开发Web应用程序。为了使它更简单,如果我通过composer运行一些更新到应用程序中,我在根目录中创建了一个简单的do_chown.sh脚本,以便在单击终端按钮时轻松访问,它只是执行chown -R bitnami:root /opt/lampp/htdocs/Apps/。 - Tom

6
如果你使用Mac OS X和XAMPP,假设你的网站或API所在的文件夹位于 /Applications/XAMPP/xamppfiles/htdocs/API。那么你可以像下面这样授权访问:
$ chmod 777 /Applications/XAMPP/xamppfiles/htdocs/API

现在打开文件夹内的页面:

http://localhost/API/index.php

1
这是其中一个正确的答案。它对我有效。如果您需要递归执行此操作,请使用 sudo chmod -R 0777 /Applications/XAMPP/xamppfiles/htdocs/ - Eranda
4
那两个答案都是不正确的,因为将文件夹权限设置为777存在安全风险。正确的答案应该是以下内容:https://dev59.com/Qmox5IYBdhLWcg3wq2IC#48931236 - Ed T.

4

MAC OS Catalina Xampp的最佳解决方案

  1. 打开 Finder
  2. 按下 Cmd + shift + C
  3. Macintosh HD => Users => 复制 {username}

  4. 打开 /Applications/XAMPP/xamppfiles/etc/httpd.conf

    找到 User daemon 编辑为 daemon => {username}

  5. Xampp Manage Server => Restart all

如果在phpMyAdmin遇到问题:

1. Browser (Chrome) restart

祝你好运


同样适用于旧版本——比如我的 El-Cap,这是最佳解决方案。 - jcansell

2

进入htdocs文件夹,右键点击,选择“获取信息”,点击解锁的小锁图标,在共享权限下将所有人的权限更改为读写,点击+和-图标旁边的齿轮按钮,选择应用于所有封闭项目,点击接受安全请求,关闭获取信息。现在xampp可以读写您的根目录。

注意:

  1. 如果在此之后将新文件夹复制到htdocs中,则需要重复此过程以获取该文件夹的写入权限。

  2. 当您将文件移动到实际服务器时,您还需要在服务器上对相应的文件和文件夹进行chmod操作。


看起来似乎没有全局的XAMPP设置,手动更改权限是正确的方法。嗯... - Andrew
目前是这样的,我还没有找到任何解决方法,xampp论坛也没有提供解决方案。如果您找到了解决方案,请发布一下,我想知道。 - Gabriel Nwoffiah II

1
如果您使用单行文件夹或文件。
chmod 755 $(find /yourfolder -type d)
chmod 644 $(find /yourfolder -type f)

2
当您有太多文件或文件夹时,会出现“参数列表过长”的错误。更好的方法是执行find /yourfolder -type d -exec chmod 755 {} \;find /yourfolder -type f -exec chmod 644 {} \;,这两个命令具有相同的效果。 - Alejandro Iván

1
您也可以简单地更改Apache Conf文件中的用户名称,并保留组:

Apache Conf应用程序/Xammp/etc/..

用户“User”=您在Mac OS X中的用户名。

组守护程序

sudo chown -R 'User':daemon ~/Sites/wordpress 

sudo chmod -R g+w ~/Sites/wordpress

因此,如果您需要更新插件等,则“WordPress”可以访问文件。否则,WordPress无法更新文件。注意:仅适用于Mac OS X。 - rickb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接