【发布时间】:2012-08-16 13:39:20
【问题描述】:
我正在尝试做的事情:
我在 wamp 上使用 cakephp 2.2.1 开发了一个 Web 应用程序。现在我想将它安装在 Apache 服务器上(版本 2.2.16)。
错误:
未找到请求的 URL /inetpub/wwwroot/cakephp/app/webroot 在这台服务器上。
我做了什么:
在我看来这是一个 .htaccess 错误。
我查过了
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
未注释。
我确定了
选项 FollowSymLinks 允许全部覆盖
已为 wwwroot/cakephp 目录启用。然后我检查了所有 .htaccess 文件是否符合docs。
还是没有运气。
问题:
有人知道怎么回事吗?
编辑:这里是 app/webroot/index.php:
<?php
/**
* Index
*
* The Front Controller for handling every request
*
* PHP 5
*
* CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
* Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
*
* Licensed under The MIT License
* Redistributions of files must retain the above copyright notice.
*
* @copyright Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
* @link http://cakephp.org CakePHP(tm) Project
* @package app.webroot
* @since CakePHP(tm) v 0.2.9
* @license MIT License (http://www.opensource.org/licenses/mit-license.php)
*/
/**
* Use the DS to separate the directories in other defines
*/
if (!defined('DS')) {
define('DS', DIRECTORY_SEPARATOR);
}
/**
* These defines should only be edited if you have cake installed in
* a directory layout other than the way it is distributed.
* When using custom settings be sure to use the DS and do not add a trailing DS.
*/
/**
* The full path to the directory which holds "app", WITHOUT a trailing DS.
*
*/
if (!defined('ROOT')) {
define('ROOT', dirname(dirname(dirname(__FILE__))));
}
/**
* The actual directory name for the "app".
*
*/
if (!defined('APP_DIR')) {
define('APP_DIR', basename(dirname(dirname(__FILE__))));
}
/**
* The absolute path to the "cake" directory, WITHOUT a trailing DS.
*
* Un-comment this line to specify a fixed path to CakePHP.
* This should point at the directory containing `Cake`.
*
* For ease of development CakePHP uses PHP's include_path. If you
* cannot modify your include_path set this value.
*
* Leaving this constant undefined will result in it being defined in Cake/bootstrap.php
*/
//define('CAKE_CORE_INCLUDE_PATH', ROOT . DS . 'lib');
/**
* Editing below this line should NOT be necessary.
* Change at your own risk.
*
*/
if (!defined('WEBROOT_DIR')) {
define('WEBROOT_DIR', basename(dirname(__FILE__)));
}
if (!defined('WWW_ROOT')) {
define('WWW_ROOT', dirname(__FILE__) . DS);
}
if (!defined('CAKE_CORE_INCLUDE_PATH')) {
if (function_exists('ini_set')) {
ini_set('include_path', ROOT . DS . 'lib' . PATH_SEPARATOR . ini_get('include_path'));
}
if (!include ('Cake' . DS . 'bootstrap.php')) {
$failed = true;
}
} else {
if (!include (CAKE_CORE_INCLUDE_PATH . DS . 'Cake' . DS . 'bootstrap.php')) {
$failed = true;
}
}
if (!empty($failed)) {
trigger_error("CakePHP core could not be found. Check the value of CAKE_CORE_INCLUDE_PATH in APP/webroot/index.php. It should point to the directory containing your " . DS . "cake core directory and your " . DS . "vendors root directory.", E_USER_ERROR);
}
App::uses('Dispatcher', 'Routing');
$Dispatcher = new Dispatcher();
$Dispatcher->dispatch(new CakeRequest(), new CakeResponse(array('charset' => Configure::read('App.encoding'))));
【问题讨论】:
-
你烘焙应用了吗?有时
webroot的路径在app/webroot/index.php中被硬编码,如果您从wampp安装复制它,则路径可能是错误的。 -
我确实烘焙了该应用程序。但这不是错误的根源,因为它也出现在全新安装的 cakephp 中。我仍然会在我的问题中添加文件的内容。
-
你的 apache 是否安装了
mod_rewrite?您的 apache 是否对这些文件夹具有读取/执行权限? -
mod_rewrite 已安装,它在 /inetpub/wwwroot/cakephp/app/webroot 中转换 /inetpub/wwwroot/cakephp
标签: apache .htaccess cakephp mod-rewrite