This article only talks about PHP installed alongside Apache under Linux (see here). Since PHP is run through
libapache2-mod-php5. it inherits the permissions from Apache. So let's take a look about Apache. By default, it uses www-data user, to check this,
ps -u www-data
If it is so, you might get something similar:
PID TTY TIME CMD 1276 ? 00:00:00 php5-fpm 1277 ? 00:00:00 php5-fpm 1278 ? 00:00:00 php5-fpm 1279 ? 00:00:00 php5-fpm 14934 ? 00:00:00 apache2 14935 ? 00:00:00 apache2 14936 ? 00:00:00 apache2 ...
Now check user info and its group of
cat /etc/passwd | grep www-data
The following shows up on my machine which says it doesn't belong to the root group or my administrator group.
We list the file permissions of the folder
img/ to see apache's right:
ls -l | grep img
All right! Since Apache is in other group here, it doesn't have 'w' permission.
drwxrwxr-x 2 admin admin 4096 Nov 12 19:26 img
Then let's give him the permission. Notice that it is dangerous to do this, since in this way every user on the computer will have rights on this folder. Normally, we let the owner of the folder be Apache, and others can only read.
chmod o+w img