在 AWS Elastic Beanstalk 上使用 Wordpress CMS - 部署问题(页面未加载)

Posted

技术标签:

【中文标题】在 AWS Elastic Beanstalk 上使用 Wordpress CMS - 部署问题(页面未加载)【英文标题】:Using Wordpress CMS on AWS Elastic Beanstalk - Trouble deploying (page doesn't load) 【发布时间】:2015-03-09 17:10:59 【问题描述】:

我正在尝试让 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 的方式)时,我在 app 上得到的结果-dev.elasticbeanstalk.com 只是“此网页不可用”的问题。有趣的是,如果我访问 app-dev.elasticbeanstalk.com/wp-admin,它会自动将我重定向到 localhost:8888/wp-admin 页面。这让我觉得我在设置 wp-config 时做错了 - 它正在做一些事情将其链接回 localhost:8888 链接。

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

我尝试从以下教程中获得见解,尤其是关于它们的本地与生产设置(即与 local-config.php 文件有关的所有内容),但我尝试过的每一种变化都没有t 有更好的结果。

https://www.otreva.com/blog/deploying-wordpress-amazon-web-services-aws-ec2-rds-via-elasticbeanstalk/ http://slicenpress.com/how-we-manage-sites-with-beanstalk/

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

谢谢!

【问题讨论】:

【参考方案1】:

想通了。事实证明,我只是没有考虑 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 不包括在内,并且在尝试在服务器上运行时使用了正确的变量。

【讨论】:

以上是关于在 AWS Elastic Beanstalk 上使用 Wordpress CMS - 部署问题(页面未加载)的主要内容,如果未能解决你的问题,请参考以下文章

在 AWS Elastic Beanstalk 上扩展 Magento

如何在 AWS Elastic Beanstalk 上设置 HTTPS

如何在 AWS Elastic Beanstalk 上设置 HTTPS

在 AWS Elastic Beanstalk 上运行节点和反应

如何使用 aws cli 在 Elastic Beanstalk 上上传和部署?

在aws elastic beanstalk上上传文件?