2016-08-08 25 views
1

Ich habe ein Problem mit meiner Codeigniter-Anwendung auf einer EC2-Instanz bei Amazon bereitgestellt.Codeigniter URI-Problem ... Keine URI vorhanden. Standard-Controller-Set

$config['base_url'] = 'http://XX.XX.XXX.107/'; 
$config['index_page'] = 'index.php'; 

Das ist mein route.php ist (ohne besondere Regel)

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

Eigentlich, wenn ich http://xx.xx.xxx.107/ nenne es richtig dargestellt meine erste Seite (es lädt meine Standard-Controller home.php und zeigt nach Hause. PHP-Ansicht). Aber wenn ich zum Beispiel http://52.59.107.107/index.php/Home/sign_in_form anrufe, zeigt es, anstatt sign_in Formularansicht anzuzeigen, es wieder Home-Ansicht.

aktiviert ich log, und das ist, was ich

INFO - 2016-08-08 15:43:25 --> Config Class Initialized 
INFO - 2016-08-08 15:43:25 --> Hooks Class Initialized 
DEBUG - 2016-08-08 15:43:25 --> UTF-8 Support Enabled 
INFO - 2016-08-08 15:43:25 --> Utf8 Class Initialized 
INFO - 2016-08-08 15:43:25 --> URI Class Initialized 
DEBUG - 2016-08-08 15:43:25 --> No URI present. Default controller set. 
INFO - 2016-08-08 15:43:25 --> Router Class Initialized 
INFO - 2016-08-08 15:43:25 --> Output Class Initialized 
INFO - 2016-08-08 15:43:25 --> Security Class Initialized 
DEBUG - 2016-08-08 15:43:25 --> Global POST, GET and COOKIE data sanitized 
INFO - 2016-08-08 15:43:25 --> Input Class Initialized 
INFO - 2016-08-08 15:43:25 --> Language Class Initialized 
INFO - 2016-08-08 15:43:25 --> Loader Class Initialized 
INFO - 2016-08-08 15:43:25 --> Helper loaded: file_helper 
INFO - 2016-08-08 15:43:25 --> Helper loaded: form_helper 
INFO - 2016-08-08 15:43:25 --> Helper loaded: url_helper 
INFO - 2016-08-08 15:43:25 --> Database Driver Class Initialized 
INFO - 2016-08-08 15:43:25 --> Database Driver Class Initialized 
INFO - 2016-08-08 15:43:25 --> Session: Class initialized using 'files' driver. 
INFO - 2016-08-08 15:43:25 --> XML-RPC Class Initialized 
INFO - 2016-08-08 15:43:25 --> Controller Class Initialized 
INFO - 2016-08-08 15:43:25 --> Model Class Initialized 
INFO - 2016-08-08 15:43:25 --> Model Class Initialized 
INFO - 2016-08-08 15:43:25 --> Model Class Initialized 
INFO - 2016-08-08 15:43:25 --> Model Class Initialized 
INFO - 2016-08-08 15:43:25 --> Form Validation Class Initialized 
DEBUG - 2016-08-08 15:43:25 --> Session class already loaded. Second attempt ignored. 
INFO - 2016-08-08 15:43:25 --> File loaded: /var/www/core_ci/application/views/header.php 
INFO - 2016-08-08 15:43:25 --> File loaded: /var/www/core_ci/application/views/home.php 
INFO - 2016-08-08 15:43:25 --> File loaded: /var/www/core_ci/application/views/footer.php 
INFO - 2016-08-08 15:43:25 --> Final output sent to browser 
DEBUG - 2016-08-08 15:43:25 --> Total execution time: 0.1061 

erhalten, wie Sie im Protokoll sehen, ich bin DEBUG bekommen - 2016.08.08 15.43.25 -> Nein URI vorhanden. Standard-Controller gesetzt, auch wenn ich rufe diese URL http://xx.xx.xxx.107/index.php/Home/sign_in_form

Hier einige Daten über meinen Server.

PHP Version 5.5.35 
System Linux ip-xx-x-x-xxx 4.4.8-20.46.amzn1.x86_64 #1 SMP Wed Apr 27 19:28:52 UTC 2016 x86_64 
Build Date May 2 2016 23:29:10 
Server API FPM/FastCGI 

Hier die vhost Apache-Datei:

<VirtualHost *:80> 

    # Leave this alone. This setting tells Apache that 
    # this vhost should be used as the default if nothing 
    # more appropriate is available. 

    ServerName default:80 

    # REQUIRED. Set this to the directory you want to use for 
    # your “default” site files. 

    DocumentRoot /var/www/html 

    # Optional. Uncomment this and set it to your admin email 
    # address, if you have one. If there is a server error, 
    # this is the address that Apache will show to users. 

    #ServerAdmin [email protected] 

    # Optional. Uncomment this if you want to specify 
    # a different error log file than the default. You will 
    # need to create the error file first. 

    #ErrorLog /var/www/vhosts/logs/error_log 

    <Directory /var/www/html> 
    AllowOverride All 
    </Directory> 

    ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/$1 
    DirectoryIndex /index.php index.php 
</VirtualHost> 

Gibt es jemanden, dass Kann mir sagen, wo ich versage?

Vielen Dank im Voraus.

AKTUALISIERT

home.php

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 
class Home extends CI_Controller { 
     public function __construct() 
     { 
       parent::__construct(); 
       $this->load->model('Home_model'); 
       $this->load->model('Users_model'); 
       $this->load->model('Credit_model'); 
       $this->load->library('form_validation'); 
       $this->load->library('language'); 
       $this->load->library('alerts'); 
       $this->load->library('session'); 
       $this->load->helper('url'); 
//  $this->load->helper('captcha'); 
     } 

public function test() 
{ 
     print_r('my test method'); 
} 

Wie Sie ich der Einfachheit halber ein Testverfahren in Heimsteuerung vorbereitet zu sehen. Wenn ich rufe bekomme ich die gleiche Protokollsequenz und es zeigt die Home-Ansicht, anstatt meine Rohdaten zu drucken.

Es scheint, dass, da es nicht in der Lage ist, korrekte URi zu erhalten, es Standardcontroller ausgeführt wird.

+0

Können Sie Zeigen Sie Ihren HomeController.php-Code an? –

+0

@MaxGilbert siehe Teil der Home-Controller in den Updates – agodoo

+0

Danke für das Update. Die Anwendung lebt definitiv im Ordner www/public_html, es gibt keine Unterverzeichnisse? –

Antwort

0

nach viel Forschung und den Blick in httpd Service Log fand ich die Lösung

In vhost-Datei ich diese Codezeile ersetzt

ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/$1 

mit diesen diejenigen

<FilesMatch \.php$> 
     # 2.4.10+ can proxy to unix socket 
     # SetHandler "proxy:unix:/var/run/php5-fpm.sock|fcgi://localhost/" 

     # Else we can just use a tcp socket: 
     SetHandler "proxy:fcgi://127.0.0.1:9000" 
</FilesMatch>