繁体   English   中英

将 EFS 挂载到 elastic beanstalk 上的 wp-content

[英]Mount EFS to wp-content on elastic beanstalk

所以我在 EB 上设置 Wordpress 站点时遇到问题。 我让 EFS 正确安装在 wp-content/uploads/wpfiles ( https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/php-hawordpress-tutorial.html ) 上,但这只允许页面存储而不是插件。 是否可以将整个 wp-content 文件夹挂载到 EFS 上,我已经尝试过,但到目前为止失败了

我不确定这个问题是否得到解决并且它悄无声息地过去了。 我和你有同样的问题,但有不同的错误。 我的知识相当有限,所以请对我所说的持保留态度,根据我在您的日志中看到的内容,问题是您的实例无法看到服务器。 我认为可能是您的 EB 应用程序部署在与 EFS 不同的可用区中。 我的意思是,也许您有 AZ a、b 和 d 的挂载目标,并且您的 EB 正在 AZ c 中部署。 我希望这有帮助。

我尝试了一种不同的方法(它基本上做同样的事情,但我手动链接每个子文件夹而不是 wp-content 文件夹),为了它起作用我删除了/var/app/ondeck中的原始文件夹(即最终将被复制到/var/app/current/这是提供服务的文件夹)。 当然,一旦完成,您的 Wordpress 将无法运行,因为它没有任何主题,这里的解决方案是快速登录到运行 ElasticBeanstalk 应用程序的 EC2 实例,然后手动将内容复制到挂载的EFS(在我的例子中是/wpfiles文件夹)。 要连接到 EC2 实例(您可以在您的 EB 健康配置下找到实例 ID),您可以点击此链接并安装您的 EFS,您可以点击此链接 当然,如果配置有效,你就不必挂载它,因为它虽然是空的,但已经挂载了。 这是我的配置文件的内容:

option_settings:
  aws:elasticbeanstalk:application:environment:
    EFS_NAME: '`{"Ref" : "FileSystem"}`'
    MOUNT_DIRECTORY: '/wpfiles'
    REGION: '`{"Ref": "AWS::Region"}`'

packages:
  yum:
    nfs-utils: []
    jq: []

files:
  "/tmp/mount-efs.sh" :
    mode: "000755"
    content: |
      #!/usr/bin/env bash
      mkdir -p $MOUNT_DIRECTORY
      EFS_REGION=$(/opt/elasticbeanstalk/bin/get-config environment | jq -r '.REGION')
      EFS_NAME=$(/opt/elasticbeanstalk/bin/get-config environment | jq -r '.EFS_NAME')
      MOUNT_DIRECTORY=$(/opt/elasticbeanstalk/bin/get-config environment | jq -r '.MOUNT_DIRECTORY')
      mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 $EFS_NAME.efs.${EFS_REGION}.amazonaws.com:/ $MOUNT_DIRECTORY || true
      mkdir -p $MOUNT_DIRECTORY/uploads
      mkdir -p $MOUNT_DIRECTORY/plugins
      mkdir -p $MOUNT_DIRECTORY/themes
      chown webapp:webapp -R $MOUNT_DIRECTORY/uploads
      chown webapp:webapp -R $MOUNT_DIRECTORY/plugins
      chown webapp:webapp -R $MOUNT_DIRECTORY/themes

commands:
  01_mount:
    command: "/tmp/mount-efs.sh"
container_commands:
  01-rm-wp-content-uploads:
    command: rm -rf /var/app/ondeck/wp-content/uploads && rm -rf /var/app/ondeck/wp-content/plugins  && rm -rf /var/app/ondeck/wp-content/themes
  02-symlink-uploads:
    command: ln -snf $MOUNT_DIRECTORY/uploads /var/app/ondeck/wp-content/uploads && ln -snf $MOUNT_DIRECTORY/plugins /var/app/ondeck/wp-content/plugins && ln -snf $MOUNT_DIRECTORY/themes /var/app/ondeck/wp-content/themes

我在这里使用另一个配置文件来创建我的 EFS,如果您已经创建了 EFS,则必须将EFS_NAME: '`{"Ref": "FileSystem"}`'更改为EFS_NAME: id_of_your_EFS

我希望这对user3738338 有所帮助。

您可以按照此链接进行操作 - https://github.com/aws-samples/eb-php-wordpress/blob/master/.ebextensions/efs-mount.config

只需记下它使用上传,您可以将其更改为 wp-content。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM