将EFS挂载到弹性beantalk上的wp-content

时间:2018-08-27 10:17:44

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

所以我在EB上设置Wordpress网站时遇到问题。我已将EFS正确安装在wp-content / uploads / wpfiles(https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/php-hawordpress-tutorial.html)上,但这仅允许存储页面,而不允许插件。是否可以将整个wp-content文件夹安装到EFS上?

2 个答案:

答案 0 :(得分:1)

我不确定此问题是否已解决并且是否通过了。我遇到的问题与您相同,但错误有所不同。我的知识很有限,因此,请按照我在日志中看到的内容说些什么,问题是您的实例看不到服务器。我认为可能是您的EB应用程序正在与EFS部署在不同的可用区中。我的意思是,也许您已经为AZ a,b和d设置了挂载目标,而您的EB已部署在AZ c中。我希望这会有所帮助。

我尝试了另一种方法(它基本上可以完成相同的操作,但是我手动链接了每个子文件夹而不是wp-content文件夹),为了使其正常工作,我删除了/var/app/ondeck内的原始文件夹(最终将被复制到/var/app/current/,该文件夹即为要投放的文件夹)。当然,一旦完成,由于没有任何主题,您的Wordpress将无法正常工作,此处的解决方案是快速登录运行ElasticBeanstalk应用程序的EC2实例,然后手动将内容复制到已安装的EC2中。 EFS(在我的情况下为/wpfiles文件夹)。要连接到EC2实例(您可以在EB运行状况配置下找到实例ID),可以遵循this link,而要安装EFS则可以遵循this link。当然,如果该配置有效,则无需挂载它,因为它虽然已经为空,但已经被挂载了。这是我的配置文件的内容:

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,如here一样,如果已经创建了EFS,则必须将EFS_NAME: '`{"Ref" : "FileSystem"}`'更改为EFS_NAME: id_of_your_EFS

我希望这对user3738338有帮助。

答案 1 :(得分:-1)

您可以点击以下链接-https://github.com/aws-samples/eb-php-wordpress/blob/master/.ebextensions/efs-mount.config

只需记录一下它使用上传的内容,就可以更改其wp内容。