2012-08-02 96 views
0

首先抱歉,但我是一个非常大的初学者,所以如果你愿意,你可以投下这个问题。FuelPHP从网址删除公众

所以我去了很多的教程,唯一能为我工作的是拉出公用文件夹的内容。

而问题是我得到了一堆的错误。

错误:

Warning: require(\bootstrap.php) [function.require]: failed to open stream: No such file or directory in C:\EasyPHP\www\fuelphp\index.php on line 33 

Fatal error: require() [function.require]: Failed opening required '\bootstrap.php' (include_path='.;C:\php\pear') in C:\EasyPHP\www\fuelphp\index.php on line 33 

,所以我发现DOCROOT是C:\EasyPHP\www\fuelphp\,所以我需要拉东西,在这样本地主机/ fuelphp /燃油/核心

原来的指数看起来像这样

<?php 
/** 
* Set error reporting and display errors settings. You will want to change these when in production. 
*/ 
error_reporting(-1); 
ini_set('display_errors', 1); 

/** 
* Website document root 
*/ 
define('DOCROOT', __DIR__.DIRECTORY_SEPARATOR); 

/** 
* Path to the application directory. 
*/ 
define('APPPATH', realpath(__DIR__.'/../fuel/app/').DIRECTORY_SEPARATOR); 

/** 
* Path to the default packages directory. 
*/ 
define('PKGPATH', realpath(__DIR__.'/../fuel/packages/').DIRECTORY_SEPARATOR); 

/** 
* The path to the framework core. 
*/ 
define('COREPATH', realpath(__DIR__.'/../fuel/core/').DIRECTORY_SEPARATOR); 

// Get the start time and memory for use later 
defined('FUEL_START_TIME') or define('FUEL_START_TIME', microtime(true)); 
defined('FUEL_START_MEM') or define('FUEL_START_MEM', memory_get_usage()); 

// Boot the app 
require APPPATH.'bootstrap.php'; 

// Generate the request, execute it and send the output. 
try 
{ 
    $response = Request::forge()->execute()->response(); 
} 
catch (HttpNotFoundException $e) 
{ 
    $route = array_key_exists('_404_', Router::$routes) ? Router::$routes['_404_']->translation : Config::get('routes._404_'); 
    if ($route) 
    { 
     $response = Request::forge($route)->execute()->response(); 
    } 
    else 
    { 
     throw $e; 
    } 
} 

// This will add the execution time and memory usage to the output. 
// Comment this out if you don't use it. 
$bm = Profiler::app_total(); 
$response->body(
    str_replace(
     array('{exec_time}', '{mem_usage}'), 
     array(round($bm[0], 4), round($bm[1]/pow(1024, 2), 3)), 
     $response->body() 
    ) 
); 

$response->send(true); 

比修饰以这种

<?php 
/** 
* Set error reporting and display errors settings. You will want to change these when in production. 
*/ 
error_reporting(-1); 
ini_set('display_errors', 1); 

/** 
* Website document root 
*/ 
define('DOCROOT', '/'); 

/** 
* Path to the application directory. 
*/ 
define('APPPATH', 'fuel/app/').DIRECTORY_SEPARATOR; 

/** 
* Path to the default packages directory. 
*/ 
define('PKGPATH', 'fuel/packages/').DIRECTORY_SEPARATOR; 

/** 
* The path to the framework core. 
*/ 
define('COREPATH', 'fuel/core/').DIRECTORY_SEPARATOR; 

// Get the start time and memory for use later 
defined('FUEL_START_TIME') or define('FUEL_START_TIME', microtime(true)); 
defined('FUEL_START_MEM') or define('FUEL_START_MEM', memory_get_usage()); 

// Boot the app 
require APPPATH.'bootstrap.php'; 

// Generate the request, execute it and send the output. 
try 
{ 
    $response = Request::forge()->execute()->response(); 
} 
catch (HttpNotFoundException $e) 
{ 
    $route = array_key_exists('_404_', Router::$routes) ? Router::$routes['_404_']->translation : Config::get('routes._404_'); 
    if ($route) 
    { 
     $response = Request::forge($route)->execute()->response(); 
    } 
    else 
    { 
     throw $e; 
    } 
} 

// This will add the execution time and memory usage to the output. 
// Comment this out if you don't use it. 
$bm = Profiler::app_total(); 
$response->body(
    str_replace(
     array('{exec_time}', '{mem_usage}'), 
     array(round($bm[0], 4), round($bm[1]/pow(1024, 2), 3)), 
     $response->body() 
    ) 
); 

$response->send(true); 

现在公众是不是在URL,但即时得到一堆错误,当我打开网站,我看到insted的UTS反斜杠斜杠的,但不能真正找到问题

Warning: require_once(fuel/core/classes\error.php) [function.require-once]: failed to open stream: No such file or directory in C:\EasyPHP\www\fuelphp\fuel\core\base.php on line 25 

Fatal error: require_once() [function.require]: Failed opening required 'fuel/core/classes\error.php' (include_path='.;C:\php\pear') in C:\EasyPHP\www\fuelphp\fuel\core\base.php on line 25 

可以请别人给我一个提示如何修改索引是否可以?

谢谢

回答

3

你不应该需要修改索引文件,以达到你尝试什么。

Fuel被设计为位于文档根(docroot)之上。您的docroot似乎是www /。

这意味着你的目录结构其实应该如下:

C:\EasyPHP\fuelphp\ 
C:\EasyPHP\www\ 

的FuelPHP zip文件或混帐克隆(或但您可能获得它)包含一个名为public文件夹。此文件夹是您的文档根目录的化名,因此,在您的具体情况public/内容应该复制到www/

但是,您可以将它设置所有的文档根目录里面,你要尝试并记录流程上FuelPHP网站here

As explained in point 3, for security reasons it is strongly advised NOT to install Fuel inside your webserver's document root.

However, there are cases where you would like to do that, [...]

In that case, you need an additional .htaccess file that you need to place in your document root, which will redirect requests to the site root to your public folder, and also modifies the rewrites to include the public folder:

<IfModule mod_rewrite.c> 
    RewriteEngine on 

    RewriteBase /public 

    RewriteRule ^(/)?$ index.php/$1 [L] 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 

    RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule> 

的index.php的默认配置考虑到默认/燃料/文件夹的位置。就拿路径定义如下

define('COREPATH', realpath(__DIR__.'/../fuel/core/').DIRECTORY_SEPARATOR); 

__DIR__ - Path of current working directory, i.e. wherever index.php is 
..   - go up a directory, i.e. directory above wherever index.php is 
fuel/  - Fuel folder 
core/  - Core folder within fuel/ 

realpath() - Resolves the .. to it's real location and makes sure/is correct or changes to \ depending on the OS 

你得到不同方向的斜线的原因是因为你硬编码/到代码,而无需使用realpath()

+0

添加到htaccess的根,现在工作得很好,最后一个问题是可以安全使用这个htaccess的?因为现在我可以通过这种方式访问​​它http:// localhost/fueljob /和这种方式http:// localhost/fueljob/public,这不是一个问题吗? – Side 2012-08-02 09:00:46

+0

这不是问题,不。如果你真的想要使用.htaccess通过后面的URL访问它,你可以拒绝访问,但这不是问题,是的,我会说它是安全的使用。 – 2012-08-02 09:05:08

+0

非常感谢你的帮助 – Side 2012-08-02 09:06:44

0

在您的文件:

C:\EasyPHP\www\fuelphp\public\.htaccess

设置RewriteBase这个值:/easyphp/www/fuelphp/public