在AWS Elastic Beanstalk上使用Wordpress CMS - 无法部署(页面无法加载)

时间:2015-01-11 23:48:23

标签: wordpress amazon-web-services rds elastic-beanstalk

我正在努力让Wordpress在AWS Elastic Beanstalk上运行。我开始时:

  • 一组Wordpress 4.1文件(带有一些额外的插件等)
  • AWS Elastic Beanstalk上的环境(我们称之为app-dev)
  • 在AWS RDS上运行的MySQL数据库
  • 使用MAMP运行的本地服务器

我可以成功地让应用程序在本地运行。我启动服务器,将其指向WP目录,然后可以访问它。我浏览WP设置屏幕,插入我的数据库信息,安装WP,一切都与数据库一起工作正常。这也会生成我的wp-config.php文件。

现在,当我使用Elastic Beanstalk命令行工具尝试将应用程序部署到app-dev环境时(通过制作git repo,使用eb init和eb deploy),我得到了应用程序的结果-dev.elasticbeanstalk.com只是一个“此网页不可用”的问题。有趣的是,如果我转到app-dev.elasticbeanstalk.com/wp-admin,它会自动将我重定向到localhost:8888 / wp-admin页面。这让我觉得我在设置wp-config时做错了 - 它正在做一些事情将它链接回localhost:8888链接。

我试图不在本地进行WP设置,只是部署到服务器并在那里进行设置,但是在我点击设置后,它奇怪地重新路由我在localhost:8888再次尝试设置。所以我觉得这是错误的做法。

我尝试从以下教程中获取见解,特别是关于本地与生产设置(即所有与local-config.php文件有关的内容),但我尝试过的各种变化都没有'结果更好。

我倾向于认为我误解了一些关于WP设置如何工作以及它在设置过程中的作用的基本概念。有人能指出我正确的方向,还是试着为我描述一下?

谢谢!

1 个答案:

答案 0 :(得分:2)

想出来。事实证明,我只是没有考虑WP在安装WP时设置的一些变量 - 与安装相关联的URL。所以在这种情况下,即使我部署到服务器,WP也指向我的localhost链接。

直接的解决方法是转到WordPress,设置>常规,并更改Wordpress地址和站点地址URL以反映服务器URL而不是本地URL。您应该在部署之前执行此操作,因为在您更改之后,您将无法再通过localhost访问它。

更完整的修复方法是设置wp-config.php文件以解决此问题。这两个字段对应于WP_HOME和WP_SITEURL变量。对于我的设置(我使用git分支来区分开发代码和生产代码),我使用了这个:

// Check for a local config file
if ( file_exists( dirname( __FILE__ ) . '/local-config.php' ) ) {
   define( 'WP_LOCAL_DEV', true );
   include( dirname( __FILE__ ) . '/local-config.php' );
} else {
  define( 'WP_LOCAL_DEV', false );
  define('WP_HOME','http://myserverurl.com');
  define('WP_SITEURL','http://myserverurl.com');
}

在local-config.php中,我刚刚:

<?php define('WP_HOME','http://localhost:8888'); 
define('WP_SITEURL','http://localhost:8888'); ?>

我在.gitignore中列出了local-config.php,这意味着每当我部署时,都没有包含local-config.php,并且在尝试在服务器上运行时使用了正确的变量。