Amjad
Amjad

Reputation: 2090

linux (ubuntu) apache www folder access issue

I'm a newbie in Linux, just installed ubuntu 14.04 and wanted to install WAMP (MAMP), I followed a youtube tutorial to install php5, apache2, mysql and phpmyadmin. Installed successfully both http://localhost and http://localhost/phpmyadmin works fine logged in successfully.

now I wanted to add some files and folders to apache www folder which is located at /var/www but cant create files or folders. I'm a Windows user where I usually keep all my PHP work in www folder.

I would like to know if there is a way to use any-other folder as www folder or how to create folders and files in that www folder. I reckon its permission issues, since being a newbie don't know how to fix that.. please help

Regards

Upvotes: 1

Views: 594

Answers (2)

dbinns66
dbinns66

Reputation: 791

Ubuntu 14.04 runs apache as user www-data, you can change to this user using the command in terminal (shell)

sudo su 

This will make you root and have access to /var/www directory, and you will be able to create files and directories. Say you had a directory of images containing img1.jpg, img2.jpg, etc. in say /home/user1/images

as root you could

sudo su                      <- change to the document folder
cd /var/www                  <- change to the document folder
cp /home/user1/images/ .     <- copy what you need to copy
chown -r www-data images/    <- give the web server read/write permission to the folder / files

which will let you do access the images via a browser via the url

http://localhost/images/img1.jpg

Upvotes: 2

Peter Uhnak
Peter Uhnak

Reputation: 10217

The reason is that apache runs under different user (given your distro most likely www-data), while /var/www belongs either to the user or root.

So if you want to allow apache to write somewhere you have to give it permissions. Since it is not good practice to give apache full permission to your disk, usually you would have a special directory where it can upload data.

For example creating directory /var/www/myProject/uploaded

and then giving permission to all to write there

chmod 777 /var/www/myProject/uploaded

Alternatively you can change the owner/group with chown.

Upvotes: 1

Related Questions