【发布时间】: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;',
标签: php codeigniter amazon-web-services amazon-elastic-beanstalk