Php 使用elastic beanstalk在amazon web服务上上载codeigniter项目

Php 使用elastic beanstalk在amazon web服务上上载codeigniter项目,php,codeigniter,amazon-web-services,amazon-elastic-beanstalk,Php,Codeigniter,Amazon Web Services,Amazon Elastic Beanstalk,我已经在AWS上搜索了托管codeigniter应用程序,但没有找到任何解决方案。 所以我试着用elastic beanstalk上传到AWS上。 但是我得到了错误404:-当我试图访问它时,你请求的页面没有找到 弹性豆茎配置:- 运行PHP 7.0的64位Amazon Linux 2017.03 v2.4.1 软件配置下的文档根:-/cieg(我的codeigniter应用程序的名称为cieg) 这是我的config.php $config['base_url'] = 'http://cieg

我已经在AWS上搜索了托管codeigniter应用程序,但没有找到任何解决方案。 所以我试着用elastic beanstalk上传到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]
我尝试过的事情如下

将基本url更改为空,删除结尾处的斜杠,在结尾处添加应用程序名称(即)

将uri_协议更改为自动

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

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


对不起我的英语

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

$route['default_controller'] = 'dashboardC';
上述声明提出了一个问题。应该是这样的

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

此外,您还应该通过大写第一个字母来重命名所有控制器的文件。

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

您是否已启用AWS控制台对公共IP的传入和传出请求?您还需要为实例配置安全组。@HimanshuUpadhyay我解决了这个问题。错误是因为控制器文件的第一个字母是小写。它应该在首都。谢谢你的回复。但现在我面临的问题如下:SQLSTATE[HY000][2002]php\u network\u getaddresses:getaddrinfo失败:名称或服务未知您知道这背后的原因吗?您的数据库连接配置不正确。检查database.php文件,或者如果您正在使用.env文件作为环境变量,请检查其中的值。@HimanshuUpadhyay我正在使用PDO进行php查询。我没有使用任何.env文件。环境变量在elastic beanstalk软件配置中配置。在此评论中,我无法发布我的数据库文件,我将发布其中的dsn部分。”dsn'=>'mysql:host=“”.$”服务器['RDS\U主机名'.'”;dbname=“”。$”服务器['RDS_dbname']”;port=“.”.$”服务器['RDS\U端口].';字符集=utf8;',