28

I have installed wordpress on my ubuntu 10.10 desktop edition and I am trying to install plugin from the browser (I know I can drop it to the wp-content/plugin but I want to do it via the web browser using FTP) I get this screen when I am trying to set auto update or install a plugin from web browser.

alt text

I provide the hostname 127.0.0.1 and Username and password the ones that I use to login to wordpress. I get the error

Username/password Incorrect and cannot connect to 127.0.0.1:20

I think i'll have to grant a user with ftp password but I dont know how. I have already installed vsftp but when I try "ftp 127.0.0.1" I get -

$ ftp 127.0.0.1
Connected to 127.0.0.1.
220 (vsFTPd 2.3.0)
Name (127.0.0.1:gaurav): root
331 Please specify the password.
Password:
530 Login incorrect.
Login failed.
ftp> 

Wordpress is running locally on my Ubuntu Desktop.

8 Answers 8

15

Well your Wordpress login and your FTP login are two different things. I have see that you use vsFTPd, so one easy thing that you can do it this :

Edit the vsFTPd configuration file :

gksu gedit /etc/vsftpd.conf

Add this at the end :

local_enable=YES

Restart your vsFTPd server :

sudo /etc/init.d/vsftpd restart

Now you should be able to connect to your FTP using your Ubuntu login.

4
  • and how can I grant a user (wordpress user) access to FTP who can use FTP over the network Nov 22, 2010 at 7:55
  • I would also not login as root, but create a dummy user, make him part of your www-data group and use it to push updates/install
    – csgeek
    Nov 22, 2010 at 15:14
  • I had this same issue and just wanted to add for any others that are going through this that you need to use '127.0.0.1' and not 'localhost'. Or at least I did. Also had to use FTP not FTPS.
    – Jay
    Jan 8, 2011 at 8:31
  • -1 Even though it's listed as best answer, it lacks the information that write_enable is commented out by default. If you do not uncomment, your solution still doesn't work.
    – Jakke
    Aug 22, 2014 at 3:12
9

Just add this line to wp-config.php

define('FS_METHOD', 'direct');

Then It will be OK.

1
  • Are there any disadvantages with this method? Seems like the best/easiest one to me but I could be wrong.
    – JoniVR
    Jun 15, 2019 at 20:30
8

For me changing the ownership of the wordpress folder solved the issue.

sudo chown -R www-data wordpress
2
  • 3
    This worked right away for me!
    – Max Kulik
    Oct 23, 2019 at 2:23
  • It doesn't help here :/
    – ifrit
    Apr 1, 2020 at 16:18
3

If you are using the default file the problem I had was not seeing enable write access. That resolved my problems.

listen=YES
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
1
  • The same issue here, write_enable is commented out by default. Thanks for the tip. It's nowhere mentioned here, but I also changed the home directory for the wordpress ftp user to /var/www/html (or whatever the path to the site is). I'm not sure if this is actually needed.
    – Jakke
    Aug 22, 2014 at 3:11
3

I had the same issue.

When I created my Ubuntu server I installed a wordpress site and everytime I wanted to update a plugin I needed ftp access which was really annoying. I knew I could just add the ftp details in the config for wordpress but I was Like NAH! So It turned out that wordpress can't write files to the wp-content directory because apache doesn't have permission to edit the directory so this is how I fixed it.

Copy group file to groups in the same directory

sudo cp /etc/group /etc/groups

Then give Recursive Permission to apache

sudo chown -R www-data:root /var/www

Thats it.

Another way of doing it is by editing apache envvars

sudo nano /etc/apache2/envvars

Edit the lines where it says

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data

And replace www-data with your username for ubuntu

export APACHE_RUN_USER=USERNAME
export APACHE_RUN_GROUP=USERNAME

now restart apache

sudo service apache2 restart

and then make sure your account has permissions to the directory

sudo chown -R USERNAME:USERNAME /var/www

If this doesnt work for you then simply reply.

1

To configure vsftpd, open vsftpd.conf in /etc and copy paste the following into your vsftpd.conf

listen=YES
anonymous_enable=YES
anon_root=/srv/ftp
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
ftpd_banner=Welcome to my FTP server.
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem

Note:
You should create a new directory inside /srv in the name ftp or what ever name you prefer.If you prefer another name then you should change the line anon_root=/srv/ftp to anon_root=/srv/toyourfoldername Now place all your files inside the folder /srv/ftp

To test your settings in localhost type:

ftp://127.0.0.1
If you have any problems let me know.

To start/stop/restart vsftpd:

sudo service vsftpd start
sudo service vsftpd stop
sudo service vsftpd restart
1
  • 1
    +1 for sudo service vsftpd ....
    – solgar
    Dec 18, 2015 at 19:02
1

This worked for me:

Add this file to wp-config.php:

if(is_admin()) {
    add_filter('filesystem_method', create_function('$a', 'return "direct";' ));
    define( 'FS_CHMOD_DIR', 0751 );
}

for more http://www.jamison.org/2010/12/04/how-to-configure-wordpress-for-automatic-ftps-updates-using-vsftp-in-ubuntu/

0

I had the same problem before and here how I resolved it.

1) You have to check what group owned that specific wordpress folder. i.e www-data. Then make sure the group owned recursively. You can can do

sudo chown -R www-data.www-data /var/www/wordpress

2) the ftpuser that you plan to use need to belong to www-data group. You can check by following.

groups ftpuser

If it is not in that group, just add it. here how i did it.

sudo usermod -a -G www-data ftpuser

The last thing is to set the default folder of the ftpuser to your wordpress folder.

usermod -d /var/www/wordpress ftpuser

that's it...

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.