I moved from a shared hosting to a VPS a few weeks ago and I’m having these annoying permission issues with WordPress. You know you can download and upgrade plugins (and wordpress itself) from the admin panel, but since I moved it started asking me my FTP credentials, which is kinda slow when I have to update ~20 plugins.
I think this should be some kind of rights issue. I looked that the shared hosting wordpress files, they all belong to the username and group kovshenin (kovshenin:kovshenin) and the files are -rw-r–r– and the directories are drwx-r-xr-x.
On my VPS apache runs under apache:apache and my files are kovshenin:kovshenin. What should I do to make them readable and writable by both kovshenin and apache?
Also, I changed the permissions to 0777 for all files and folders of my wordpress installation, that allowed me to install and delete plugins without FTP, but when I pushed to automatic upgrade to WordPress 2.8.1 it still asked me for my FTP account. Is that a wp issue or did I miss something?
Thanks.
Update: I managed to run id
and id www-data
on the MediaTemple shared hosting. User kovshenin is in group kovshenin, and www-data is in group www-data. No more groups. What’s the trick?
Another update Okay, I added the apache
user to the kovshenin
group, my wordpress files are kovshenin:kovshenin
with rw-rw-r--
permissions and drwxrwxr-x
permissions on directories, but something is still wrong. The user apache
can access the files and folders, I can use the online Themes and Plugins editor in the wordpress admin panel, I’m able to make changes to the .htaccess file from within wordpress, but plugin/theme installation still asks me for FTP credentials!
Any ideas? Thanks.
The second last step is the trick. It means that whenever kovshenin or apache creates a file in those directories, the group owner will be set to wordpress (instead of kovshenin or apache).
You can give ownership to www-data according to here.
Run the following command in your WordPress directory (sudo required):
Works for Apache.
Assuming your wordpress install directory is
/var/www/html
to mass change all the files and directories to the proper permission use:To mass change the owner group of everything use:
I had the same problem and I solved it turning off PHP ‘safe_mode’ in plesk, now WP can create folders and move files without any problems.
I hope this help you.
Currently, adding
define('FS_METHOD', 'direct');
to wp-config.php might do the trick. Not sure that would have worked in ’09 though. See here for my similar case using nginx. I found that it was an essential step.