Elastic Beanstalk上Wordpress部署的多个问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elastic Beanstalk上Wordpress部署的多个问题相关的知识,希望对你有一定的参考价值。

我开始使用AWS部署,主要是出于必要,在Elastic Beanstalk,Elastic Filesystem,Amazon RDS(MariaDB)和Route 53 plus证书上安装Wordpress。我跟着一对夫妇开始并把所有东西放在一起,到目前为止我做得很好,但现在我面临着一些问题。

  1. 在设置Route 53和证书之后,我想强制使用HTTPS,所以我做了我以前在WP安装上做的事情:安装Really Simple SSL。到目前为止,它进展顺利。然后我通过EB CLI部署了一些更改,然后我进行了重定向循环地狱,迫使我删除该插件。我尝试了几次,结果相同。
  2. 我发现重新部署Wordpress会重置一些应该保存在数据库中的配置。到目前为止,我注意到在部署新版本的应用程序后,会重置永久链接,语言和其他次要设置。也许这会导致我提到的重定向循环。

寻找解决方案,我遇到了我实施的this answer,但我不知道它是否真的有效。

我能做什么?

更新

我尝试了this answer提出的解决方案无济于事,问题得到了重复。进一步搜索让我到find someone with exactly the same issue as mine

从这里我认为可能真正简单的SSL是罪魁祸首,并开始寻找替代品而不使用插件。所以我登陆this AWS Developer Forums thread,其中有些事情很顺利,因为我设法将主页和WP管理员重定向到HTTPS。但该网站的其余部分没有。

答案

以下内容多次适用于我。这假设您拥有AWS Certificate Manager的SSL证书。

1. Configure your certificate

使用以下内容在secure-listener.config目录中创建文件.ebextensions

option_settings:
    aws:elb:listener:443:
        SSLCertificateId: replace:with:your:arn
        ListenerProtocol: HTTPS
        InstancePort: '80'

将Qazxswpoi文本替换为您的证书的ARN。以上内容告诉Elastic Beanstalk将您的SSL证书与端口443上的请求一起使用,并将这些请求转发到EC2实例上的端口80。

2. Set up redirects and environment variables

使用以下内容在replace:with:your:arn目录中创建文件ssl-rewrite.config

.ebextensions

files: "/etc/httpd/conf.d/ssl_rewrite.conf": mode: "000444" owner: root group: root content: | RewriteEngine On <If "-n '%{HTTP:X-Forwarded-Proto}' && %{HTTP:X-Forwarded-Proto} != 'https'"> RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L=301] </If> SetEnvIfNoCase X-FORWARDED-PROTO "^https$" HTTPS=on 子句检查由Elastic Beanstalk设置的<If></If>头是否等于https。如果不是,则将请求重定向到https。如果原始请求超过https,则X-Forwarded-Proto语句会创建一个SetEnvIfNoCase环境变量。 WordPress需要此环境变量设置为正确行为。

3. Update your WordPress configuration

假设您的网站是HTTPS,请将以下内容添加到您的www.example.com文件中:

wp-config.php

此回复基于define('WP_HOME', 'https://www.example.com'); define('WP_SITEURL', 'https://www.example.com'); ,这可能有助于获得更多细节。

另一答案

尝试在wp-config.php中设置RELOCATE

this tutorial

来自define('RELOCATE',true);

注意:当RELOCATE标志设置为true时,站点URL将自动更新为您用于访问登录屏幕的任何路径。这将使管理部分在新URL上运行并运行,但它不会更正设置的任何其他部分。您仍然需要手动更改。

另请检查以下表格的一致性:

Changing the Site URL
另一答案

如果您使用负载均衡器(ELB),我没有从您的评论中获得。但即便如此,Really-simple-ssl也应该检测出来。

永久链接的问题可归因于您实际上忽略了本地.htaccess文件,或者它与服务器上的文件不同。确保在更新时包含它。更新时,您的数据库未重置或更改。请注意,使用EB CLI进行部署时,它基本上会拍摄本地版本的快照,将其拉上并上传到新的应用程序版本,因此它会完全忽略服务器上以前版本中的任何内容。

select * from options where option_name = 'siteurl';
select * from options where option_name = 'home';
select domain from site;
select * from sitemeta;
select * from blogs;
select * from  sitemeta where meta_key = 'siteurl';

以上是关于Elastic Beanstalk上Wordpress部署的多个问题的主要内容,如果未能解决你的问题,请参考以下文章

在 Amazon Elastic Beanstalk 上安装 Anaconda

如何在 aws elastic beanstalk 环境实例启动上运行 shell 脚本

如何在 AWS Elastic Beanstalk 上修改 Nginx 配置

让 django celery worker 在 elastic-beanstalk 上启动的问题

在 Elastic Beanstalk 上部署 Docker 环境

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