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