2013-06-07 4 views
5

Я загрузил веб-сайт из ftp. Веб-сайт создан с помощью CodeIgniter. Моя проблема заключается в том, что он не работает на localhost.CodeIgniter не работает на localhost

Базовый URL в config.php:

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

Настройки database.php:

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

Любая помощь очень высоко ценится. Заранее спасибо!

+0

403 запрещенная ошибка продолжает появляться при запуске сайта на локальном –

+0

. Редактируйте вопрос и добавьте 'htaccess'. он может помочь – tomexsans

+0

Проверьте папку для прав доступа к файлам. Запрещенные ошибки возникают только при возникновении проблемы с разрешением ... –

ответ

5

Моя быть она должна быть как

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

или как

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

и проверить значение индекса в конфигурационном файле как

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

, если это так, то вам нужно добавьте index.php в свой url перед именем контроллера и проверьте, что у вашей папки есть разрешения ... и на вашем router.php см. это

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

вы можете изменить, если вы хотите отобразить контроллер с помощью defaulty при вызове sample_localhost/my_site

+0

Фактически это его локальный хост, я просто изменил его на sample_localhost здесь, в stackoverflow, поскольку он не позволяет слово «localhost» в вопросах :) –

+0

Все те же, не работают ни , Кстати, вот мой код htaccess: RewriteEngine на RewriteCond $ 1!^(Index \ .php | images | css | js | robots \ .txt) RewriteRule^(. *) $ /index.php/$1 [L] –

+0

См. Мое редактирование для маршрутов – Gautam3164

9

1) Скачать последнюю версию CodeIgniter.

2) Извлеките его и вставьте извлеченную папку в каталог «htcdocs». В моем сценарии я использую XAMPP 1.8.1, поэтому я вставлю его в тот же каталог. Кроме того, вы можете переименовать папку E.g. CI.

enter image description here

3) Посмотрите первый в конфигурационных файлах и сделал некоторые несколько модификаций.

autoload.php

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

config.php

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

в моем случае:

$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 

. base_url - http://www.example.com/ index_page - index.php или прямо к news.php, это до вас

маршрутов.PHP

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

Я установил «сайт» в качестве контроллера по умолчанию

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'; 

TIP: Имя пользователя по умолчанию будет корнем, если вы этого не сделаете имеют какие-либо разрешения на доступ к базе данных. Кроме того, оставьте пароль пустым.

4) Начало работы с контроллерами Контроллеры являются сердцем вашего приложения, так как они определяют, как HTTP запросы должны быть обработаны. Контроллер - это просто файл класса, который указан таким образом, который может быть связан с URI.

E.g.

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

В приведенном выше примере, CodeIgniter будет пытаться найти контроллер с именем blog.php и загрузить его.

Когда имя контроллера совпадает с первым сегментом URI, оно будет загружено.

- Reference

Теперь, давайте ввести код для нашего контроллера.

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

В основном, это будет просто загрузить наш вид/страница под названием дом

* Что такое нагрузка?

Погрузчик, как следует из названия, используется для загрузки элементов. Этими элементами могут быть библиотеки (классы). Просмотр файлов, помощников, моделей или ваших собственных файлов. (ref)

Этот фрагмент кода позволит вам отображать страницу home.php. Кроме того, поскольку вы вызываете home.php, вы должны иметь эту страницу под папкой views. Создайте свой home.php, напишите все, что вы хотите отобразить в качестве теста для нашего первого запуска и сохраните его.

Этот фрагмент кода позволит вам отображать страницу home.php. Кроме того, поскольку вы вызываете home.php, вы должны иметь эту страницу под папкой views. Создайте свой home.php, напишите все, что вы хотите отобразить в качестве теста для нашего первого запуска и сохраните его.

home.php

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

Кроме того, сохранить наш контроллер под контроллеров папки, имя файла должно быть таким же, как ваше имя класса. В этом случае его следует сохранить как site.php.

Первый запуск:

enter image description here

+0

. ОП задал вопрос о том, что веб-сайт уже создан и настроен, а не о новой установке. – tomexsans

+0

@tomexsans, да, это уже созданный и настроенный веб-сайт, загруженный с ftp. установка работал хорошо. –

2

Заменить базовый URL с помощью следующего кода будет работать & прибудет скорость

$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

Решение Я реализовал, работает с различными сценариями, которые имеют проблемы на локальном хосте: ошибка HTTP 404, проблема с Windows 10 [:: 1], сеанс не работает с проблемой localhost, класс сеанса не работает в Chrome.

В локальной среде хоста:

1. Не используйте .htaccess, удалить или переименовать файл.

2. В config.php введите явный базовый url и индексную страницу.

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

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

3. На контроллере, каждый раз, когда вы вызываете метод, используйте SITE_URL() функция вместо base_url(). Вы должны были загрузить url_helper. См. too.

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

Это все.

Просмотров пример:

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

менее чистое решение: всегда сцепить index_page() с base_url(). Не забудьте обеспечить обратную косую черту перед методом.

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

Объяснение

Как правило, в производственной среде, вы покинете опустошить index_page параметр, возможно base_url параметр тоже, и будет использовать файл ".htaccess". Затем site_url() функция или альтернатива base_url() + index_page() вернет узнаваемый правильный адрес.

Смежные вопросы