使用弹性 beantalk 在亚马逊网络服务上上传 codeigniter 项目

Posted

技术标签:

【中文标题】使用弹性 beantalk 在亚马逊网络服务上上传 codeigniter 项目【英文标题】:Uploading codeigniter project on amazon web services using elastic beanstalk 【发布时间】:2017-12-21 03:28:48 【问题描述】:

我在 AWS 上搜索了托管 codeigniter 应用程序,但没有找到任何解决方案。 所以我尝试使用弹性豆茎将其上传到 AWS。 但我收到错误 404:- 当我尝试访问时找不到您请求的页面。

弹性豆茎配置:- 运行 php 7.0 的 64 位 Amazon Linux 2017.03 v2.4.1

软件配置下的文档根目录:- /cieg(我的 codeigniter 应用程序的名称是 cieg)

这是我的 config.php

$config['base_url'] = 'http://ciegforum-env.p5fjm8jgtw.ap-south-1.elasticbeanstalk.com/';
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';

这是我的 routes.php

$route['default_controller'] = 'dashboardC';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

这是我的 .htaccess

RewriteEngine On
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(.*)$ index.php/$1 [L]

我尝试过的事情如下;

将 base_url 更改为空白,删除末尾的斜杠,在末尾添加应用名称(即http://ciegxxxxx.com/cieg)

将 uri_protocol 更改为 auto,

删除.htaccess,尝试通过index.php正常访问

我第一次在服务器上部署应用程序,这个应用程序在本地主机上运行良好。

对不起我的英语

【问题讨论】:

您是否启用了从 AWS 控制台对公共 IP 的传入和传出请求?您还需要为实例配置安全组。 @HimanshuUpadhyay 我解决了这个问题。错误是因为控制器文件名的第一个字母是小写的。应该是大写的。谢谢您的回复。但是现在我面临如下问题 SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known 你知道这背后的原因吗? 您的数据库连接配置不正确。检查 database.php 文件,或者如果您使用 .env 文件作为环境变量,请检查其中的值。 @HimanshuUpadhyay 我正在使用 PDO 进行 php 查询。我没有使用任何 .env 文件。环境变量在弹性 beanstalk 软件配置中配置。在此评论中,我无法发布我的数据库文件,我将发布 dsn 的一部分。 'dsn' => 'mysql:host="'.$_SERVER['RDS_HOSTNAME'].'"; dbname="'.$_SERVER['RDS_DBNAME'].'"; port="'.$_SERVER['RDS_PORT'].'";charset=utf8;', 【参考方案1】:

最后,我找到了解决这个问题的方法。唯一的错误是控制器的名称以小写字母开头。在 AWS 上,规则很严格。您应该仅以大写字母开头命名您的每个控制器。

$route['default_controller'] = 'dashboardC';

上面的语句有问题。应该是这样的

$route['default_controller'] = 'DashboardC';

您还应该通过首字母大写来重命名所有控制器的文件。

【讨论】:

【参考方案2】:

我遇到了同样的问题。我的问题是我的 zip 部署中有不必要的文件,因此在我删除了除 index.php 应用程序和系统之外的所有文件和文件夹之后。然后再次压缩并上传。现在它正在工作。乙

【讨论】:

以上是关于使用弹性 beantalk 在亚马逊网络服务上上传 codeigniter 项目的主要内容,如果未能解决你的问题,请参考以下文章

如何使用弹性 beantalk 加密负载均衡器和 Web 服务器之间的流量

Flask 应用程序未在 AWS 弹性 beantalk 上部署

AWS弹性beantalk上的预定http调用

在弹性 beantalk AWS 中部署应用程序

推送到弹性 beantalk 会删除在服务器上创建的文件

弹性beantalk反应应用程序docker容器启动问题