apache - CentOS上部署PHP框架CodeIgniter,调用控制器的时候出现404错误如何解决?

WBOY
リリース: 2016-06-06 20:46:12
オリジナル
1355 人が閲覧しました

CI版本为3.0 dev。

在本地虚拟机CentOS 6.3 和 windows上部署好后,

本机数据库能正确连接
本机controllers能正确调用,通过URL也能正确访问

<code class="lang-PHP"># /application/config/config.php
$config['base_url'] = '';
$config['index_page'] = 'index.php';
$config['uri_protocol'] = 'AUTO';
$config['url_suffix'] = '';
$config['enable_hooks'] = FALSE;
$config['subclass_prefix'] = 'MY_';
</code>
ログイン後にコピー
ログイン後にコピー

======================================
但是部署到阿里云服务器上后

index.php->
controllers welcome.php->
views welcome_message.php->

首页的welcome_message.PHP依然能正确显示,但是一旦调用自己写的控制器就报错404:
apache - CentOS上部署PHP框架CodeIgniter,调用控制器的时候出现404错误如何解决?

这是我自己写的控制器:

<code class="lang-PHP"><?php ini_set("error_reporting",E_ALL ^ E_NOTICE);
class Userinfo extends CI_Controller{
            function userinfo(){
                    parent::__construct();
                    $this->load->database();
                    $this->load->helper('url');
                }
            function index()
            {
                    $id=$_POST['id'];
                    $this->load->model('getmodel');
                    $data = $this->getmodel->getone($id);
                    $output = json_encode($data);
                    $userinfo = '[{"msgtype":"3"}]';
                    $query['getuser_output'] = $userinfo.$output;
                    $this->load->view('welcome_message',$query);
                }
}

/* End of file userinfo.php */
/* Location: ./application/controllers/userinfo.php */
</code>
ログイン後にコピー
ログイン後にコピー

PHP版本是5.3.3 默认配置
apache版本是2.2.15 默认配置
Centos版本是 6.3 x64 关闭了SELINUX

请问大概是哪个环节出了问题?

回复内容:

CI版本为3.0 dev。

在本地虚拟机CentOS 6.3 和 windows上部署好后,

本机数据库能正确连接
本机controllers能正确调用,通过URL也能正确访问

<code class="lang-PHP"># /application/config/config.php
$config['base_url'] = '';
$config['index_page'] = 'index.php';
$config['uri_protocol'] = 'AUTO';
$config['url_suffix'] = '';
$config['enable_hooks'] = FALSE;
$config['subclass_prefix'] = 'MY_';
</code>
ログイン後にコピー
ログイン後にコピー

======================================
但是部署到阿里云服务器上后

index.php->
controllers welcome.php->
views welcome_message.php->

首页的welcome_message.PHP依然能正确显示,但是一旦调用自己写的控制器就报错404:
apache - CentOS上部署PHP框架CodeIgniter,调用控制器的时候出现404错误如何解决?

这是我自己写的控制器:

<code class="lang-PHP"><?php ini_set("error_reporting",E_ALL ^ E_NOTICE);
class Userinfo extends CI_Controller{
            function userinfo(){
                    parent::__construct();
                    $this->load->database();
                    $this->load->helper('url');
                }
            function index()
            {
                    $id=$_POST['id'];
                    $this->load->model('getmodel');
                    $data = $this->getmodel->getone($id);
                    $output = json_encode($data);
                    $userinfo = '[{"msgtype":"3"}]';
                    $query['getuser_output'] = $userinfo.$output;
                    $this->load->view('welcome_message',$query);
                }
}

/* End of file userinfo.php */
/* Location: ./application/controllers/userinfo.php */
</code>
ログイン後にコピー
ログイン後にコピー

PHP版本是5.3.3 默认配置
apache版本是2.2.15 默认配置
Centos版本是 6.3 x64 关闭了SELINUX

请问大概是哪个环节出了问题?

把这个controller的index设置成default页面呢
404一般是路由错了

弱弱的问一句和pathinfo有关系吗

把你的 方法:userinfo() 改成:__construct()

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!