6

我从 ftp 下载了一个网站。该网站是用 CodeIgniter 制作的。我的问题是它似乎不适用于本地主机。

config.php 中的基本 URL:

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

很感谢任何形式的帮助。提前致谢!

4

5 回答 5

9

1)下载最新版本的CodeIgniter

2)解压并将解压后的文件夹粘贴到“htcdocs”目录中。在我的场景中,我使用的是 XAMPP 1.8.1,所以我会将它粘贴到同一目录中。此外,您可以重命名文件夹,例如 CI。

在此处输入图像描述

3)首先查看您的配置文件并进行一些修改。

自动加载.php

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

配置文件

$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_urlhttp://www.example.com/ index_page — index.php 或直接到 news.php,这取决于你

路由.php

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

我将“站点”设置为默认控制器

数据库.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';

提示:如果您还没有访问数据库的任何权限,则默认用户名是 root。另外,暂时将密码留空。

4)开始使用控制器控制器是应用程序的核心,因为它们决定了应该如何处理 HTTP 请求。控制器只是一个类文件,它以可以与 URI 关联的方式命名。

例如

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

在上面的例子中,CodeIgniter 会尝试找到一个名为 blog.php 的控制器并加载它。

当控制器的名称与 URI 的第一段匹配时,它将被加载。

参考

现在,让我们输入控制器的代码。

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

基本上,这只会加载我们称为主页的视图/页面

* 什么是负载?

Loader,顾名思义,就是用来加载元素的。这些元素可以是库(类)视图文件、帮助程序、模型或您自己的文件。(参考)

此代码片段将让您显示页面 home.php。此外,由于您调用的是 home.php,因此您必须在 views 文件夹下拥有此页面。创建你的 home.php,写下你想显示的任何东西作为我们第一次运行的测试并保存它。

此代码片段将让您显示页面 home.php。此外,由于您调用的是 home.php,因此您必须在 views 文件夹下拥有此页面。创建你的 home.php,写下你想显示的任何东西作为我们第一次运行的测试并保存它。

主页.php

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

另外,将我们的控制器保存在控制器文件夹下,文件名应与您的类名相同。在这种情况下,它应该保存为site.php

第一次运行:

在此处输入图像描述

于 2013-06-07T10:01:48.277 回答
5

我的应该是这样的

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

或喜欢

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

并检查配置文件中的索引值,例如

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

如果是这样,那么您需要在控制器名称之前的 url 中添加 index.php 并检查您的文件夹是否也有权限......并且在您的 router.php 看到这个

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

您可以更改是否要在调用时默认显示控制器sample_localhost/my_site

于 2013-06-07T09:31:52.020 回答
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']);
于 2015-12-16T09:45:12.753 回答
0

我让它在 localhost 上工作,但我想让它像那样,这样我就可以轻松地将它上传到托管服务器。

我的解决方案是这样的:

$config['base_url'] = ($_SERVER['HTTP_HOST'] === 'localhost' ? '/programiranje' : '/') ;
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';

.ht 访问:

RewriteEngine On
#RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php/$1

我在 C:\Apache24\htdocs 文件夹中的 Windows 10 机器上本地托管它。

于 2018-09-18T15:45:34.590 回答
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. 在 Controller上,每次调用方法时,使用site_url()函数代替base_url()。您应该已经加载了url_helper。见

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()将返回可识别的正确地址。

于 2016-01-19T16:25:56.050 回答