WordPress on EC2 Requires FTP Credentials to Install Plugins

Amazon Ec2Wordpress

Amazon Ec2 Problem Overview


I just installed WordPress 3.5.2 on an Amazon Linux AMI EC2 micro instance. When I tried to install the wp-db-backup plugin (Plugins -> Add New), I was prompted for a Hostname, FTP Username, FTP Password and Connection Type.

The answer to this question recommended that passwd be done at the command line. I'm not clear on exactly what I'm doing at the commandline based on this answer. So I Googled and found an article on configuring vsftpd. The article discusses the generation of a certificate on the server and I'm wondering whether I'm going off track here by following this article. I'm using CentOS 6.3 locally, and an Amazon Linux AMI on EC2).

Any assistance/guidance will be appreciated. Thanks in advance.


EDIT


I was reading the WordPress Codex which discussed ftp constants for the wp-config.php file. It recommended that I define as few of these constants as needed to correct my update issues. I'm I on the right track here (especially security-wise)? I've listed the constants below. Any guidance will be appreciated.

define('FS_METHOD', 'ftpext');
define('FTP_BASE', '/path/to/wordpress/');
define('FTP_CONTENT_DIR', '/path/to/wordpress/wp-content/');
define('FTP_PLUGIN_DIR ', '/path/to/wordpress/wp-content/plugins/');
define('FTP_PUBKEY', '/home/username/.ssh/id_rsa.pub');
define('FTP_PRIKEY', '/home/username/.ssh/id_rsa');
define('FTP_USER', 'username');
define('FTP_PASS', 'password');
define('FTP_HOST', 'ftp.example.org');
define('FTP_SSL', false);

Amazon Ec2 Solutions


Solution 1 - Amazon Ec2

The main issue here is that apache does not have access to the folders. The default permission is given to the ec2-user in the AMI.

run this in your terminal and you should be good to go.

sudo chown -R apache:apache /var/www/html

Once this is done you should be able to upload themes, plugins, updates etc.

Solution 2 - Amazon Ec2

Try this code in your wp config file

define('FS_METHOD', 'direct');

Solution 3 - Amazon Ec2

change owner of wordpress directory

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

OR try

define('FS_METHOD', 'direct');

Solution 4 - Amazon Ec2

This worked for me:

First follow what Faizan said to do and put the following line if your wp-config.php:

# you will want this as close to the bottom as possible
define('FS_METHOD', 'direct');

Then you need to TEMPORARILY swap your file permissions to a more open state. In the command line type the following:

sudo chmod 777 -R /your_whole_wp_project

Now run your updates and then change the permissions back to something sane like:

sudo chmod 664 -R /your_whole_wp_project

I'm aware this is a security issue and maybe not the best way to do this, but its the only thing I could try that got it to work for me.

Solution 5 - Amazon Ec2

I found the answer to this question at [Stephen White's blog post][1].

In a nutshell, I have to

  • create custom rules for Port Ranges 20-21 and some additional ports in my EC2 instance FW
  • install and configure the FTP server vsftpd
  • create and configure an FTP user
  • and put my FTP setting in the wp-config.php file

This works very well for me now. [1]: http://stephen-white.blogspot.com/2012/05/how-to-set-up-wordpress-on-amazon-ec2_31.html

Solution 6 - Amazon Ec2

The 'define('FS_METHOD', 'direct');' suggestion worked for me after editing my security group in EC2 to allow outbound access to the port 443 (HTTPS)

Solution 7 - Amazon Ec2

sudo chown -R apache:apache /var/www/html

if this doesn't work, try replacing "apache" with "www-data" and you'll be good to go.

Solution 8 - Amazon Ec2

sudo chown -R www-data:www-data /var/www/html/wordpress

the above command did the trick for me.

Solution 9 - Amazon Ec2

For me it was a selinux issue. This did it for me: chcon -Rv --type=httpd_sys_rw_content_t /var/www/html/

See: https://www.svnlabs.com/blogs/centos-7-selinux-apache-php-writeaccess-permission/

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAnthonyView Question on Stackoverflow
Solution 1 - Amazon Ec2Basil AbbasView Answer on Stackoverflow
Solution 2 - Amazon Ec2Faizan KhanView Answer on Stackoverflow
Solution 3 - Amazon Ec2Saurabh Chandra PatelView Answer on Stackoverflow
Solution 4 - Amazon Ec2usumoioView Answer on Stackoverflow
Solution 5 - Amazon Ec2AnthonyView Answer on Stackoverflow
Solution 6 - Amazon Ec2Hugo ScavinoView Answer on Stackoverflow
Solution 7 - Amazon Ec2Heena ManglaniView Answer on Stackoverflow
Solution 8 - Amazon Ec2LComingHomeView Answer on Stackoverflow
Solution 9 - Amazon Ec2KahitarichView Answer on Stackoverflow