Reputation: 2135
I'm using WordPress on centos 6.
I try to install a plugin. But I got this error:
Installing Plugin: bbPress 2.5.9 Downloading install package from https://downloads.wordpress.org/plugin/bbpress.2.5.9.zip…
Unpacking the package…
Could not create directory.
How can I resolve this?
P/S: I run this command:
sudo -u root touch /var/www/html/wordpress/wp-content/plugins/test.txt
and it works. But I still get that error.
Upvotes: 86
Views: 212857
Reputation: 1837
You only need to change the access permissions for your WordPress Directory:
chown -R www-data:www-data your-wordpress-directory
Best practices:
sudo find /var/www/html/wordpress/ -type d -exec chmod 755 {} \;
sudo find /var/www/html/wordpres/ -type f -exec chmod 644 {} \;
or
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
Where .
is the path of WordPress directory.
Upvotes: 136
Reputation: 1851
If you are using some app that wraps http, you have to set these user in the command.
sudo chown -R [desireduser]:[desireduser] wp-content/
By example, if you are using lampp, the users that init httpd is "daemon" and the command that works will be:
sudo chown -R [desireduser]:[desireduser] wp-content/
You can search in your httpd.conf file
Upvotes: 0
Reputation: 23794
CentOS7 or Ubuntu 16
WordPress uses ftp
to install themes and plugins.
So the ftpd
should have been configured to create-directory
vim /etc/pure-ftpd.confg
and if it is no then should be yes
# Are anonymous users allowed to create new directories?
AnonymousCanCreateDirs yes
lastly
sudo systemctl restart pure-ftpd
Maybe there is an ownership issue with the parent directories. Find the Web Server user name and group name if it is Apache Web Server
apachectl -S
it will print
...
...
User: name="apache" id=997
Group: name="apache" id=1000
on Ubuntu it is
User: name="www-data" id=33 not_used
Group: name="www-data" id=33 not_used
then
sudo chown -R apache:apache directory-name
Sometimes it is because of directories permissions. So try
sudo chmod -R 755 directory-name
in some cases 755
does not work. (It should & I do not no why) so try
sudo chmod -R 777 directory-name
Maybe it is because of php safe mode. So turn it off in the root of your domain
vim php.ini
then add
safe_mode = Off
NOTE:
For not entering FTP username and password each time installing a theme we can configure WordPress to use it directly by adding
define('FS_METHOD','direct');
to the wp-config.php file.
Upvotes: 7
Reputation: 18803
Webserver user must have write access to directories to perform such operations, so you can try to change owner of files to webserver user (apache
in this example, but can be differ from yours)
chown -R apache YOUR_BLOG_DIRECTORY
Upvotes: 0
Reputation: 17
None of the above work for me except this one.
sudo chown daemon:daemon /opt/bitnami/apache/htdocs/
Don't forget to change /opt/bitnami/apache/htdocs/
to your directory
Upvotes: 0
Reputation: 409
If you are mac user , using XAMP
Go to the htdocs folder and open the terminal on the folder , as shown in the screenshot
Then Type the following command on the Terminal
**sudo chmod -R 777 <your wordpress folder Name>/**
E.g sudo chmod -R 777 wordpress/
Upvotes: 10
Reputation: 8055
You need to change the permission of the directory
At first change the user HTML folder (replace yourcomputerusername)
sudo chown yourcomputerusername:yourcomputerusername /var/www/html
Next change the permission for the user
cd /var/www/html
sudo chmod -R goa=rwx wordpress
or
sudo chmod -R 777 wordpress/wp-content
Upvotes: 4
Reputation: 3252
wordpressProject is the project name.
/var/www/html/wordpressProject sudo chmod -R 777 wp-content
Thanks. It will work.
Upvotes: -4
Reputation: 1252
If you have installed wordpress using apt, the config files are split in multiple directories. In that case you need to run:
sudo chown -R -h www-data:www-data /var/lib/wordpress/wp-content/
sudo chown -R -h www-data:www-data /usr/share/wordpress/wp-content/
The -h
switch changes the permissions for symlinks as well, otherwise they are not removable by user www-data
Upvotes: 11
Reputation: 6161
To solve permission issue on ubuntu server, you just run this
sudo chmod 777 -R 'wordpress wp-content file location'
for example.
sudo chmod 777 -R /usr/share/wordpress/wp-content
Upvotes: -3
Reputation: 303
I had to give ownership of /plugins
and /upgrade
to the server, nothing else.
$ cd /var/www/wordpress/wp-content
$ sudo chown www-data:www-data /plugings
$ sudo chown www-data:www-data /upgrade
Running Apache server on Ubuntu 18.04. Maybe more dirs will need to be changed later. Anyways, I plan to restore permissions once I finish editing, as suggested in this anwser.
Upvotes: 11
Reputation: 497
To solve permission issue on plugins and themes on localhost or production quickly, you just run this
sudo chmod 757 wp-content/themes
sudo chmod 757 wp-content/plugins
if take care permission on production, you can run
sudo chown -R www-data:www-data wp-content/themes
sudo chown -R www-data:www-data wp-content/plugins
Upvotes: 8
Reputation: 6017
For me the problem was FTP server that WP is using to upload update. It had writting disabled in configuration, so just enabling it fixed the problem.
Shame on WordPress for providing such misleading error message.
Upvotes: 1
Reputation: 747
What I end up doing is every time I create a WordPress project. in /www/html
I run below command
sudo chown www-data:www-data wordpress_folder_name -R
hope this will help someone.
Upvotes: 2
Reputation: 6630
I was on XAMPP for linux localhost and this worked for me:
sudo chown -R my-linux-username wp-content
Upvotes: 2
Reputation: 7055
You can fix this by using the following commands. You should first be in the root folder of Wordpress.
sudo chown -R www-data:www-data wp-content/plugins/
sudo chmod 775 wp-content
sudo chown -R www-data:www-data wp-content/
Upvotes: 93
Reputation: 1
Absolutely it must be work!
chown -Rf www-data:www-data /var/www/html
Upvotes: -9
Reputation: 443
If anyone using shared hosting and get same problem it may be disk space issue. In that case contact with your hosting support and ask them to increase disk space of your acocunt.
Upvotes: 3
Reputation: 1637
A quick solution would be to change the permissions of the following:
/var/www/html/wordpress/wp-content
/var/www/html/wordpress/wp-content/plugins
Change it to 775
.
After installation, don't forget to change it back to the default permissions.. :D
Upvotes: 17
Reputation: 455
The user that is running your web server does not have permissions to write to the directory that Wordpress is intending to create the plugin directory in. You should chown the directory in question to the user that is running Wordpress. It is most likely not root.
In short, this is a permissions issue. Your touch command is working because you're using it as root, and root has global permissions to write wherever it wants.
Upvotes: 21