使用弹性 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 服务器之间的流量