2013-06-07 28 views
5

Ich habe eine Website von ftp heruntergeladen. Die Website wird mit CodeIgniter erstellt. Mein Problem ist, dass es nicht auf localhost funktioniert.CodeIgniter funktioniert nicht auf localhost

Basis-URL in config.php:

$config['base_url'] = 'http://sample_localhost/mysite/'; 

Einstellungen in database.php:

$db['default']['hostname'] = 'sample_localhost'; 
$db['default']['username'] = 'root'; 
$db['default']['password'] = 'admin'; 
$db['default']['database'] = 'my_database'; 

Jede Hilfe wird sehr geschätzt. Danke im Voraus!

+0

403 verbotener Fehler erscheint weiterhin beim Ausführen der Website auf lokale –

+0

bearbeiten Sie Ihre Frage und fügen Sie die 'htaccess'. es könnte helfen – tomexsans

+0

Überprüfen Sie den Ordner auf Dateiberechtigungen. Verbotene Fehler treten nur auf, wenn ein Berechtigungsproblem auftritt ... –

Antwort

5

Mein sei es wie

$config['base_url'] = 'http://localhost/mysite/'; 

oder wie

$config['base_url'] = 'http://MY_IP/mysite/'; 

werden soll, und überprüfen Sie Ihren Indexwert in der Konfigurationsdatei wie

$config['index_page'] = 'index.php'; 

wenn es so ist, dann müssen Sie füge index.php in deine url vor dem controllernamen hinzu und überprüfe ob dein ordner auch berechtigungen hat ... und an deiner router.php siehst diese

$route['default_controller'] = "welcome"; 

können Sie ändern, wenn Sie einen Controller von defaulty angezeigt werden soll, wenn Sie sample_localhost/my_site

+0

eigentlich sein localhost, ich habe es hier in stackoverflow nur in sample_localhost geändert, da es das "localhost" -Wort in Fragen nicht erlaubt :) –

+0

Immer noch dasselbe, funktioniert auch nicht . Übrigens, hier ist mein Htaccess-Code: RewriteEngine on RewriteCond $ 1!^(Index \ .php | images | css | js | robots \ .txt) RewriteRule^(. *) $ /index.php/$1 [L] –

+0

Siehe meine Bearbeitung für die Routen – Gautam3164

9

1) Laden Sie die neueste Version von CodeIgniter nennen.

2) Entpacken Sie es und fügen Sie den extrahierten Ordner im Verzeichnis 'htcdocs' ein. In meinem Szenario verwende ich XAMPP 1.8.1, also werde ich es in das gleiche Verzeichnis einfügen. Sie können den Ordner z. B. auch umbenennen. CI.

enter image description here

3) Werfen Sie einen Blick auf Ihre Konfigurationsdateien zuerst und einige wenige Änderungen vorgenommen.

autoload.php

$autoload['libraries'] = array('database'); 
$autoload['helper'] = array('url'); 

config.php

$config['base_url'] = 'your localhost url'; 

in meinem Fall:

$config['base_url'] = 'http://localhost/CI/index.php/'; // your current URL on the address bar when displaying the welcome_message 
$config['index_page'] = 'index.php'; // page where you want your viewers are redirected when they type in your website name 

z. base_url-http://www.example.com/ index_page - index.php oder geradeaus news.php, es liegt an Ihnen

Routen.php

$route['default_controller'] = 'site' // your controller's method, originally "welcome" to display welcome message 

Ich stelle „site“ als Standard-Controller

database.php

$db['default']['hostname'] = 'localhost'; 
$db['default']['username'] = 'root'; 
$db['default']['password'] = ''; 
$db['default']['database'] = '[your database]'; // e.g. CI_series 
$db['default']['dbdriver'] = 'mysql'; 

TIPP: Benutzername als Standard würde root sein, wenn Sie nicht tun haben irgendwelche Berechtigungen für den Zugriff auf die Datenbank noch nicht. Lassen Sie das Passwort für den Moment leer.

4) Beginnen Sie mit den Controllern Controller sind das Herz Ihrer Anwendung, da sie bestimmen, wie HTTP-Anfragen behandelt werden sollen. Ein Controller ist einfach eine Klassendatei, die so benannt ist, dass sie einem URI zugeordnet werden kann.

z.

http://www.example.com/index.php/blog/ 

In dem obigen Beispiel versuchen, CodeIgniter würde es einen Controller namens blog.php und laden zu finden.

Wenn der Name eines Controllers mit dem ersten Segment eines URI übereinstimmt, wird dieser geladen.

- Reference

Jetzt, lassen Sie uns den Code für unsere Controller eingeben.

<?php 
class Site extends CI_Controller 
{ 
    function index() 
    { 
     $this->load->view('home.php'); 
    } 
} 
?> 

Grundsätzlich wird dies nur unsere Ansicht/Seite Hause

* Was Last genannt laden?

Loader wird, wie der Name schon sagt, zum Laden von Elementen verwendet. Diese Elemente können Bibliotheken (Klassen), Dateien anzeigen, Helfer, Modelle oder eigene Dateien sein. (ref)

Mit diesem Codeausschnitt können Sie die Seite home.php anzeigen. Da Sie home.php aufrufen, müssen Sie diese Seite unter dem Views-Ordner haben. Erstellen Sie Ihre home.php, schreiben Sie alles, was Sie als Test für unseren ersten Lauf anzeigen möchten und speichern Sie es.

Mit diesem Code-Snippet können Sie die Seite home.php anzeigen. Da Sie home.php aufrufen, müssen Sie diese Seite unter dem Views-Ordner haben. Erstellen Sie Ihre home.php, schreiben Sie alles, was Sie als Test für unseren ersten Lauf anzeigen möchten und speichern Sie es.

home.php

<p> 
My view has been loaded. Welcome! 
</p> 

Auch speichern unsere Controller unter den Controller Ordner sollte Dateinamen die gleiche wie Ihre Klassennamen sein. In diesem Fall sollte es als site.php gespeichert werden.

Der erste Lauf:

enter image description here

+0

das OP fragte nach einer Website bereits gemacht und konfiguriert, nicht über eine neue Installation. – tomexsans

+0

@tomexsans, ja, es ist eine Website, die bereits erstellt und konfiguriert wurde, heruntergeladen von ftp. Installation hat gut funktioniert. –

2

Basis-URL ersetzen mit folgendem Code läuft & get Geschwindigkeit

$config['base_url'] = ''; 
$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http"); 
$config['base_url'] .= "://".$_SERVER['HTTP_HOST']; 
$config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']); 
0

Die Lösung, die ich umgesetzt habe, mit verschiedenen Szenarien funktioniert, die haben Probleme auf dem lokalen Host: HTTP 404-Fehler, Windows 10 [:: 1] -Ausgabe, Sitzung funktioniert nicht bei localhost-Problem, Sitzungsklasse funktioniert nicht in Chrome-Problem.

In lokalen Umgebung host:

1. Verwenden Sie .htaccess nicht, entfernen oder die Datei umbenennen.

2. Machen Sie in der config.php die Basis-URL und die Indexseite explizit.

// Base Site URL 
$config['base_url'] = 'http://localhost/'; 

// Index File 
$config['index_page'] = 'index.php/'; // Note backslash at the end 

3. Auf der Controller-, Sie jedes Mal eine Methode aufrufen, site_url() Funktion statt base_url() verwenden. Sie sollten die url_helper geladen haben. Siehe too.

redirect(site_url('entity/method')); 

Das ist alles.

Ansichten Beispiel:

<li><a href="<?php echo site_url('entity/method')?>">Method</a></li> 

Weniger saubere Lösung: immer verketten die index_page() mit base_url(). Vergessen Sie nicht, den Backslash vor der Methode zu sichern.

redirect(base_url().index_page().'entity/method'); 

Erklärung

Typischerweise Umwelt in der Produktion, Sie leeren einen index_page Parameter verlassen, vielleicht base_url Parameter zu und wird verwenden, um die ".htaccess" -Datei. Dann site_url() Funktion oder Alternative base_url() + index_page() wird eine erkennbare korrekte Adresse zurückgeben.

Verwandte Themen