Reputation: 1292
I installed XAMPP 1.7.3 on Mac OS X 10.6.8 without changing any defaults.
The webserver seems to work okay, but the permissions on the htdocs directory are set to "Read only" for everyone other than system. So (a) I have to provide root password every time I copy in web content, and, more problematic, (b) NetBeans says it can't create a target directory, and doesn't even generate the index.php
file in the source directory.
Do I just need to manually change permissions on the htdocs
directory, or is there some more global XAMPP setting that should be changed? Running NetBeans as root seems a bit extreme.
Upvotes: 81
Views: 223791
Reputation: 1515
If the xampp has the default settings, it is quite a mess. I expand a little the topic.
The problem is with directory and file permissions (they control whether users can read, write, or execute - access and run - files and directories.) You are logged in as username:group (replace username and group with yours, for example username=joedoe, group=admin, so joedoe:admin) and the Apache runs as daemon:daemon (i.e. user=daemon and group=daemon). So the problems is not only the read, write, execute... but also owner and group.
When a program save a file (for example, PHP file_put_content), will be saved with permission 644 and belong to daemon:daemon (you can see in terminal ls -al
. To be able to save in a directory, the directory must have a permission to allow this. It was suggested in this thread 777 so many times, the last "7" belonging to "others" (owner, group, others) is responsible here as you and httpd/Apache are different users belonging to different groups.
Even if you save the file in that directory, you may still run into problems. In this example, you will not be able, for example, to use your editor to delete the files written in that directory by the program because they will have the permission 644 and do not belong to you.
Understanding the problem, you know how to fix it. Changing the ownership of all files to daemon:daemon may work if you do not work on that files in an editor. In addition, many other things will be problematic. For example, you may want to install something with brew (let's say xdebug) that works with XAMPP... what you install with brew will belong to user:group and you have XAMPP with daemon:daemon... I believe that is much better to do it the other way around.
Change the owner and group of XAMPP to your username:group.
In the thread there are instructions, on short:
httpd.conf
(Manage Server > Configure > Open Conf File) and replace the user and group "daemon" with yours. (Something like "User daemon" and "Group daemon").sudo chown -R admin:admin /path/to/xampp_root_directory
Upvotes: 0
Reputation: 1
The above worked only for some directories but didn't for all root files. To change root files permissions, open Xampp app, within Xampp app click button 'open terminal'. once there do the following:
- go to root directory: cd ..
- got to directory where lamp is located: cd opt
- change lampp permissions: chown -R bitnami:root lampp
note: you can replace bitnami with your user, and root with your group.
go to your users folder in finder and find the .bitnami hidden folder, access xampp folder within it and change permissions:
Upvotes: 0
Reputation: 3929
Following the instructions from this page,
manager-osx.app
).Manage Servers
tab -> select Apache Web Server
-> click Configure
.Open Conf File
. Provide credentials if asked.Change
<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>
to
<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>
Save and close.
Navigate to the document root of your server and make yourself the owner. The default is /Applications/XAMPP/xamppfiles/htdocs
.
$ cd your_document_root
$ sudo chown -R your_username:staff .
Navigate to the xamppfiles
directory and change the permission for logs
and temp
directory.
$ cd /Applications/XAMPP/xamppfiles
$ sudo chown -R your_username:staff logs
$ sudo chown -R your_username:staff temp
To be able to use phpmyadmin you have to change the permissions for config.inc.php
.
$ cd /Applications/XAMPP/xamppfiles/phpmyadmin
$ sudo chown your_username:staff config.inc.php
Upvotes: 18
Reputation: 51
Best solution for MAC OS Catalina Xampp
Finder
Cmd + shift + C
Macintosh HD => Users =>
copy {username}
Open /Applications/XAMPP/xamppfiles/etc/httpd.conf
Find User daemon
edit daemon => {username}
Xampp Manage Server => Restart all
If you encounter problems in phpMyAdmin:
1. Browser (Chrome) restart
Goodluck
Upvotes: 4
Reputation: 113
If you are running your page on the new XAMPP-VM version of MacOS you will have to set daemon as user and as group. Here you can find a great step-by-step illustration with screenshots from aXfon on how to do this.
As the htdocs folder under XAMPP-VM will be mounted as external volume, you'll have to do this as root of the mounted volume (root@debian). This can be achieved through the XAMPP-VM GUI: See screenshot.
Once you are running as root of the mounted volume you can as described above change the file permission using:
chown -R daemon:daemon /opt/lampp/htdocs/FOLDER_OF_YOUR_PAGE
Source (w/ step-by-step illustration): aXfon
Upvotes: 1
Reputation: 4259
By changing the file permissions in apps/wordpress
folder mounted on MAC XAMPP-VM shown in the below screenshot.
sudo chown -R bitnami:daemon TARGET # [ Replace "TARGET" with your file/folder path ]
find TARGET -type d -print0 | xargs -0 chmod 775
find TARGET -type f -print0 | xargs -0 chmod 664
chmod 640 TARGET/wp-config.php
Source: bitnami
TARGET - Replace placeholder for your mounted filesystem wordpress path eg: '1.1.1.1/lampp/apps/wordpress'
Now you can edit your themes in VS-Code or any developer editor of your choice.
NOTE: This should be done only in your development environment. Production build permissions are different & above doesn't apply
Upvotes: 0
Reputation: 921
Make sure the XAMPP app
is running then:
General
Tab, in XAMPP app
, click Open Terminal
root@debian:~#
, on the terminal shellchmod -R 0777 /opt/lampp/htdocs/
and enter
Exit
, the terminal and you be good to goUpvotes: 64
Reputation: 113
What worked for me was,
chmod -R 0777 /opt/lampp/htdocs/
Upvotes: 1
Reputation: 1964
For new XAMPP-VM
for Mac OS X,
I change the ownership to daemon
user and solve the problem.
For example,
$ chown -R daemon:daemon /opt/lampp/htdocs/hello-laravel/storage
Upvotes: 11
Reputation: 11
You can also simply change Apache Conf file to a different User Name and keep the group:
Apache Conf Applications/Xammp/etc/..
User 'User' = your user name in Mac os x.
Group daemon
sudo chown -R 'User':daemon ~/Sites/wordpress
sudo chmod -R g+w ~/Sites/wordpress
Upvotes: 1
Reputation: 21129
For latest OSX versions,
Get Info
Sharing & Permission
sectionRead & Write
privilege for the users+
icon to add usernameFinally click settings icon
and select Apply to enclosed items...
Upvotes: 29
Reputation: 1136
if you use one line folder or file
chmod 755 $(find /yourfolder -type d)
chmod 644 $(find /yourfolder -type f)
Upvotes: 1
Reputation: 16124
If you use Mac OS X and XAMPP, let's assume that your folder with your site or API located in folder /Applications/XAMPP/xamppfiles/htdocs/API. Then you can grant access like this:
$ chmod 777 /Applications/XAMPP/xamppfiles/htdocs/API
And now open the page inside the folder:
http://localhost/API/index.php
Upvotes: 6
Reputation: 2280
Tried the above but the option to amend the permission was not available for the htdocs folder,
My solution was:
Task complete, this will now allow you to populate sub-folders within the htdocs folder as needed to populate your website(s).
Upvotes: 224
Reputation: 61
Go to htdocs folder, right click, get info, click to unlock the padlock icon, type your password, under sharing permission change the priviledge for everyone to read & write, on the cog wheel button next to the + and - icons, click and select apply to all enclosed items, click to accept security request, close get info. Now xampp can write and read your root folder.
Note:
If you copy a new folder into the htdocs after this, you need to repeat the process for that folder to have write permission.
When you move your files to the live server, you need to also chmod the appropriate files & folders on the server as well.
Upvotes: 4