我在尝试将Drupal应用程序部署到Elastic Beanstalk时遇到了我认为是权限问题
我按照本教程启动并运行Drupal:http://comm-press.de/en/blog/drupal-climbs-aws-elastic-beanstalk
我正在使用Postgres数据库,并且在填写install.php上的表单时输入了正确的凭据,没有错误。
初始部署后的任何后续部署都会将我带回install.php。输入我的数据库信息后,我收到此消息,告诉我Drupal已经安装(它是)。 http://i.imgur.com/N6KDvvo.png
为什么在“eb deploy'”之后我的网站会被重定向到install.php?我应该设置drupal文件夹的权限,以便生成settings.php和/ sites / default / files?
答案 0 :(得分:0)
安装状态由DB控制 - 如果没有数据库信息的Drupal bootstraps,您将被路由到要求您的代码。
我能够通过设置AWS RDS数据库并将所有实例连接到它来绕过这部分。
- 但是,等等,还有更多。现在,从同一个DB读取所有实例已经压制了实例之间的大多数并发问题*。继续,尝试将照片添加到您的管理员个人资料中。我将等待。是的,大多数情况下你会得到错误的实例,并且所有实例上都没有显示一个实例上的单个图像。 我正在努力通过启动和解决方案来解决这个问题。 cron作业脚本,用于从AWS S3服务加载对资源的更新。
Step A load code into S3
Step B set an accessible timestamp for $lastModified to now()
Step 1 wget/curl a timestamp of the last remote modification ($lastModified)
Step 2 compare the local last updated stamp ($lastUpdated) to remote last modified timestamp
Step 3 if ($lastModified == $lastUpdated) {die} else {update incremental changes && set $lastUpdated = $lastModified}
注意第一次增量更新,这是一个很糟糕的事情。
所以...另外我应该提一下,当我们实例化一个图像时,我们正在安装完全vanilla drupal,作为drupal的drpal apache镜像的Docker文件的一部分,Docker文件运行的最后一件事是一个安装脚本。
Elastic Beanstalk设置环境变量 - 其中一些变量是亚马逊访问密钥ID和访问密钥。
我卷曲了一个只在Elastic Beanstalk curl -v 169.254.169.254内可用的IP
从设置脚本中的输出我可以判断我是本地AWS EB还是AWS EB。这允许我有条件地改变某些配置 - 比如将RDS或本地MySQL DB连接到Drupal。
安装脚本使用aws cli从S3(同步)中提取,以添加,替换,更新webroot中的所有内容,将实例转换为设置Drupal安装,直到文件级资产为止。
sed和服务重新加载已经完成了很多。 Elasticache与当地的Redis ......
最后我们在前台&&和tail -f / dev / null所以容器不会立即关闭。
Drupal仅适用于我们的Web应用程序的静态资源页面和标题/菜单/页脚包装器(模板服务...,Twig / JS使用数据填充模板)。身份验证通过API进行 - 甚至不使用Drupal中90%左右的优点......
通过比较哈希值来拉取增量更改,如果它们不同,则执行更新过程。