我从ftp下载了一个网站。该网站由CodeIgniter制作。我的问题是它似乎不适用于localhost。
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 :(得分:9)
1)下载最新版本的CodeIgniter。
2)解压缩并将解压缩的文件夹粘贴到'htcdocs'目录中。在我的场景中,我使用XAMPP 1.8.1,所以我将它粘贴在同一目录中。此外,您可以重命名文件夹E.g. CI
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
<强> E.g。 base_url - http://www.example.com/ index_page - index.php或直接发送到news.php,这取决于你
<强> routes.php文件强>
$route['default_controller'] = 'site' // your controller's method, originally "welcome" to display welcome message
我将“site”设置为默认控制器
<强> 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';
提示:如果您还没有访问数据库的任何权限,则默认用户名为root。此外,暂时将密码留空。
4)开始使用控制器 控制器是应用程序的核心,因为它们决定了如何处理HTTP请求。 Controller只是一个类文件,以一种可以与URI相关联的方式命名。
<强> E.g。强>
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,顾名思义,用于加载元素。这些元素可以是库(类)查看文件,助手,模型或您自己的文件。 (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 。
第一次运行:
答案 1 :(得分:5)
我应该像
$config['base_url'] = 'http://localhost/mysite/';
或喜欢
$config['base_url'] = 'http://MY_IP/mysite/';
并检查配置文件中的索引值,如
$config['index_page'] = 'index.php';
如果是这样,那么你需要在控制器名称之前在你的网址中添加index.php,并检查你的文件夹是否也具有权限......并在你的router.php上看到这个
$route['default_controller'] = "welcome";
如果要在调用sample_localhost/my_site
答案 2 :(得分:2)
使用以下代码替换基本网址将运行&amp;得到速度
$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']);
答案 3 :(得分:0)
我实现的解决方案适用于在本地主机上出现问题的不同方案:HTTP 404错误,Windows 10 [:: 1]问题,Session无法解决localhost问题,会话类无法在Chrome问题中运行。< / p>
在本地主机环境中:
<强> 1。请勿使用.htaccess ,删除或重命名该文件。
<强> 2。在config.php 中,明确基本网址和索引页面。
// 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。请参阅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()将返回一个可识别的正确地址。
答案 4 :(得分:0)
我已经在localhost上运行它了,但是我想要这样做,以便可以轻松地将其上传到托管服务器。
我的解决方法是:
$config['base_url'] = ($_SERVER['HTTP_HOST'] === 'localhost' ? '/programiranje' : '/') ;
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';
.htaccess:
RewriteEngine On
#RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php/$1
我将其本地托管在Windows 10计算机的C:\ Apache24 \ htdocs文件夹中。