无法从EC2 wordpress网站

时间:2017-01-08 01:59:10

标签: php mysql wordpress amazon-ec2 amazon-rds

我正在将我的网站从CPanel托管迁移到Amazon EC2。我正在使用Amazon RDS来托管我的WordPress数据库。

我按照以下步骤操作:

  1. 使用旧服务器中的WordPress文件创建了一个文件夹。
  2. 在RDS中创建了一个数据库并上传了旧站点的数据库转储。
  3. 编辑wp-config.php文件以更改参数以连接到RDS实例。
  4. 虽然一切都很顺利,但我在浏览器中打开网站时遇到以下错误“Error establishing a database connection”。我尝试更改RDS上的安全组并允许所有人,并在MySQL上添加了具有数据库所需权限的用户。

    问题是与RDS的连接尚未建立。我能够从我的EC2实例连接到RDS,但WordPress无法连接。

    我的wp-config.php看起来像是:

    /** The name of the database for WordPress */
    define('DB_NAME', 'wordpress');
    
    /** MySQL database username */
    define('DB_USER', 'db_username');
    
    /** MySQL database password */
    define('DB_PASSWORD', 'db_password');
    
    /** MySQL hostname */
    define('DB_HOST', 'wordpress-site.something.rds.amazonaws.com:3306');
    
    /** Database Charset to use in creating database tables. */
    define('DB_CHARSET', 'utf8');
    
    /** The Database Collate type. Don't change this if in doubt. */
    define('DB_COLLATE', '');
    

    编辑:我将localhost的wp-config.php更改为指向RDS,并且该网站在我的localhost上工作正常。唯一的问题是EC2的连接问题。

2 个答案:

答案 0 :(得分:1)

转到您的AWS设置,看看您打开了哪些端口。 IIRC,大多数都关闭了,你可能需要打开DB的端口。

答案 1 :(得分:0)

使用准系统服务器时,您必须自己安装所有内容。请继续检查你的EC2服务器上是否安装了PHP,Apache和mysql,否则它将无效!

当您在安全组上打开端口时,我希望您也没有打开EC2 / RDS的所有传入端口 - 这两个端口都有不同的安全组。

如果站点在您的localhost中运行,则意味着RDS也接受来自任何地方的传入连接。理想情况下,为了使数据库安全--RDS必须只接受来自一个IP的传入连接(EC2实例的弹性IP)

干杯!