2013-06-07 44 views
5

Tôi đã tải xuống một trang web từ ftp. Trang web được tạo bằng CodeIgniter. Vấn đề của tôi là nó dường như không hoạt động trên localhost.CodeIgniter không hoạt động trên localhost

URL cơ sở trong config.php:

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

Settings trong database.php:

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

Bất kỳ sự giúp đỡ rất nhiều đánh giá cao. Cảm ơn trước!

+0

403 lỗi cấm tiếp tục xuất hiện trong khi chạy trang web trên địa phương –

+0

chỉnh sửa bạn đang đặt câu hỏi và thêm 'htaccess'. nó có thể giúp – tomexsans

+0

Kiểm tra thư mục cho quyền đối với tệp. Các lỗi bị cấm chỉ xảy ra khi sự cố cấp quyền xảy ra ... –

Trả lời

5

của tôi có thể là nên như thế

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

hoặc như

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

Và kiểm tra giá trị chỉ số của bạn trong tập tin cấu hình như

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

nếu nó là như vậy thì bạn cần phải thêm index.php vào url của bạn trước tên bộ điều khiển và kiểm tra thư mục của bạn cũng có quyền ... và tại router.php của bạn, hãy xem này

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

bạn có thể thay đổi nếu bạn muốn hiển thị một bộ điều khiển bằng defaulty khi bạn gọi sample_localhost/my_site

+0

thực sự là localhost của nó, tôi chỉ thay đổi nó thành sample_localhost ở đây trong stackoverflow vì nó không cho phép từ "localhost" trong câu hỏi :) –

+0

Vẫn như cũ, không hoạt động . Bằng cách đây là mã htaccess của tôi: RewriteEngine trên RewriteCond $ 1!^(Chỉ mục \ .php | hình ảnh | css | js | robots \ .txt) RewriteRule^(. *) $ /index.php/$1 [L] –

+0

Xem bản chỉnh sửa của tôi cho các tuyến đường – Gautam3164

9

1) Tải về phiên bản mới nhất của CodeIgniter.

2) Trích xuất và dán thư mục đã trích xuất vào thư mục ‘htcdocs’. Trong kịch bản của tôi, tôi đang sử dụng XAMPP 1.8.1, vì vậy tôi sẽ dán nó vào cùng một thư mục. Ngoài ra, bạn có thể đổi tên thư mục Ví dụ: CI

enter image description here

3) Hãy nhìn đầu tiên về tập tin cấu hình của bạn và thực hiện một số vài sửa đổi.

autoload.php

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

config.php

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

trong trường hợp của tôi:

$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 

Ví dụ: BASE_URL-http://www.example.com/ index_page - index.php hoặc thẳng về phía trước để news.php, đó là tùy thuộc vào bạn

tuyến đường.php

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

tôi thiết lập “trang web” như bộ điều khiển mặc định

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: Tên đăng nhập như một mặc định sẽ là thư mục gốc nếu bạn không có bất kỳ quyền truy cập cơ sở dữ liệu nào. Ngoài ra, hãy để trống mật khẩu ngay bây giờ.

4) Bắt đầu làm việc với bộ điều khiển Bộ điều khiển là trung tâm của ứng dụng của bạn, vì chúng xác định cách xử lý yêu cầu HTTP. Bộ điều khiển chỉ đơn giản là một tệp lớp được đặt tên theo cách có thể được liên kết với một URI.

Ví dụ:

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

Trong ví dụ trên, CodeIgniter sẽ tìm bộ điều khiển có tên là blog.php và tải bộ điều khiển đó.

Khi tên của bộ điều khiển khớp với đoạn đầu tiên của một URI, nó sẽ được tải.

- Reference

Bây giờ, chúng ta hãy gõ mã cho điều khiển của chúng tôi.

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

Về cơ bản, điều này sẽ chỉ tải chế độ xem/trang của chúng tôi gọi nhà

* tải là gì?

Trình tải, như tên cho thấy, được sử dụng để tải các phần tử. Các phần tử này có thể là các thư viện (các lớp) Xem các tệp, Người trợ giúp, Mô hình hoặc các tệp của riêng bạn. (ref)

Đoạn mã này sẽ cho phép bạn hiển thị trang, home.php. Kể từ đó, bạn đang gọi home.php, bạn phải có trang này trong thư mục views. Tạo home.php của bạn, viết bất cứ điều gì bạn muốn hiển thị như là một thử nghiệm cho lần chạy đầu tiên của chúng tôi và lưu nó.

Đoạn mã này sẽ cho phép bạn hiển thị trang, home.php. Kể từ đó, bạn đang gọi home.php, bạn phải có trang này trong thư mục views. Tạo home.php của bạn, viết bất cứ điều gì bạn muốn hiển thị như là một thử nghiệm cho lần chạy đầu tiên của chúng tôi và lưu nó.

home.php

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

Ngoài ra, tiết kiệm bộ điều khiển của chúng tôi dưới sự điều khiển thư mục, tên file nên được giống như tên lớp của bạn. Trong trường hợp này, cần lưu thành site.php.

Việc chạy đầu tiên:

enter image description here

+0

OP hỏi về một trang web đã được tạo và định cấu hình, không phải về cài đặt mới. – tomexsans

+0

@tomexsans, vâng đây là trang web đã được tạo và định cấu hình, được tải xuống từ ftp. cài đặt đã hoạt động tốt. –

2

Thay url cơ bản với mã sau sẽ chạy & get tốc độ

$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

Các giải pháp tôi đã thực hiện, làm việc với các tình huống khác nhau mà có vấn đề trên máy chủ cục bộ: Lỗi HTTP 404, Windows 10 [:: 1] vấn đề, Phiên không hoạt động trên vấn đề localhost, lớp phiên không hoạt động trong vấn đề Chrome.

Trong môi trường máy chủ địa phương:

1. Không sử dụng .htaccess, xóa hoặc đổi tên tập tin.

2. Trong config.php, hãy làm rõ url cơ sở và trang chỉ mục.

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

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

3. Mở Controller, mỗi lần bạn gọi một phương pháp, sử dụng site_url() chức năng thay vì BASE_URL(). Bạn nên tải url_helper. Xem too.

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

Đó là tất cả.

Xem ví dụ:

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

giải pháp Ít sạch: luôn nối các index_page() với BASE_URL(). Đừng quên để đảm bảo các dấu gạch chéo ngược trước khi phương pháp.

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

Giải thích

Điển hình trong môi trường sản xuất, bạn sẽ để trống một index_page tham số, có lẽ BASE_URL tham số quá, và sẽ sử dụng ".htaccess" tập tin. Sau đó, site_url() chức năng hoặc thay thế base_url() + index_page() sẽ trả lại địa chỉ chính xác có thể nhận dạng được.

Các vấn đề liên quan