我想要做的:
我已经开发了Web应用程序与CakePHP的瓦帕2.2.1。现在我想Apache服务器(2.2.16版本)上安装它。
错误
所请求的网址/的Inetpub / wwwroot文件/ CakePHP的/应用程序/ Web根目录未找到 在此服务器上。
我所做的:
这在我看来是一个htaccess的错误。
我检查
的LoadModule rewrite_module的libexec / apache2的/ mod_rewrite.so
是注释。
我确信,
有FollowSymLinks 所有的AllowOverride
在启用了wwwroot文件/目录CakePHP的。然后,我检查了所有的.htaccess文件都符合文档。
仍然没有运气。
问:
有谁知道这是怎么回事?
编辑:这里是应用程序/ Web根目录/ index.php的:
< PHP
/ **
* 指数
*
*处理每个请求前端控制器
*
* PHP 5
*
* CakePHP的(TM):快速开发框架(http://cakephp.org)
*版权2005-2012,蛋糕软件基金会(http://cakefoundation.org)
*
*在MIT许可
*文件的再分发必须保留以上版权声明。
*
* @copyright版权所有2005-2012,蛋糕软件基金会(http://cakefoundation.org)
* @link http://cakephp.org CakePHP的(TM)项目
* @package app.webroot
* @Since CakePHP的(TM)V 0.2.9
* @license MIT许可证(http://www.opensource.org/licenses/mit-license.php)
* /
/ **
*使用DS分离在其他定义的目录
* /
如果(!定义(DS)){
定义(DS,DIRECTORY_SEPARATOR);
}
/ **
*这些定义应该只是被编辑,如果你有蛋糕安装
*比它分配的方式与其它的目录结构。
*当使用自定义设置,一定要使用DS和不添加尾随DS。
* /
/ **
*完整路径,其中包含应用程序,没有一个尾随DS的目录。
*
* /
如果(!定义(根)){
定义('根',目录名(目录名(目录名(__ FILE__))));
}
/ **
*对于应用程序实际的目录名。
*
* /
如果(!定义('APP_DIR')){
定义(APP_DIR',基本名(目录名(目录名(__ FILE__))));
}
/ **
*绝对路径蛋糕目录下,如果没有一个尾随DS。
*
*取消注释该行指定一个固定的路径CakePHP的。
*这应该指向包含`Cake`的目录。
*
*为了便于开发CakePHP的使用PHP的include_path。如果你
*不能修改您的include_path设置这个值。
*
*离开这个常数不确定将导致它正在蛋糕/ bootstrap.php中定义
* /
//定义(CAKE_CORE_INCLUDE_PATH,ROOT DS'库'。);
/ **
*编辑下面这行不应该是必要的。
*更改需要您自担风险。
*
* /
如果(!定义('WEBROOT_DIR')){
定义(WEBROOT_DIR',基本名(目录名(__ FILE__)));
}
如果(!定义('WWW_ROOT')){
定义(WWW_ROOT,目录名(__ FILE__)DS。);
}
如果(!定义('CAKE_CORE_INCLUDE_PATH')){
如果(function_exists('ini_set')){
ini_set('include_path中,ROOT DS'库'PATH_SEPARATOR ini_get('include_path中)。);
}
如果(!包括('蛋糕'。DS。bootstrap.php中)){
$失败= TRUE;
}
} 其他 {
如果(!包括:(CAKE_CORE_INCLUDE_PATH。DS。'蛋糕'。DS。bootstrap.php中)){
$失败= TRUE;
}
}
如果(!空($失败)){
trigger_error(CakePHP的核心无法找到。请CAKE_CORE_INCLUDE_PATH在APP / Webroot公司/ index.php文件的价值。它应该指向包含您的目录DS蛋糕核心目录和你DS厂商根目录,E_USER_ERROR);
}
应用::用途(调度,路由);
$调度=新调度();
$ Dispatcher->调度(新CakeRequest(),新CakeResponse(阵列('字符集'=>配置::阅读('App.encoding'))));
解决方案
问题解决了:
首先,如果你的网站是
http://www.example.info/tmp/
在三个的.htaccess投入分别为:
的RewriteBase的/ tmp /
的RewriteBase的/ tmp / APP /
的RewriteBase的/ tmp /应用程序/ Web根目录
和替换
重写规则^(。*)$的index.php [QSA,L]
按
重写规则^(。*)$的index.php?URL = $ 1 [QSA,L]
What I'm trying to do:
I've developed a web application with cakephp 2.2.1 on wamp. Now I want to install it on an Apache server (version 2.2.16).
Error:
The requested URL /inetpub/wwwroot/cakephp/app/webroot was not found on this server.
What I did:
That's seemed to me to be a .htaccess error.
I checked that
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
was uncommented.
I made sure that
Options FollowSymLinks AllowOverride All
was enabled for the wwwroot/cakephp dir. Then I checked that all the .htaccess files were conform to the docs.
Still no luck.
Question:
Does anyone know what's going on?
EDIT: here is 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'))));
解决方案
Problem solved:
First if your website is
http://www.example.info/tmp/
put respectively in the three .htaccess:
RewriteBase /tmp/
RewriteBase /tmp/app/
RewriteBase /tmp/app/webroot
and replace
RewriteRule ^(.*)$ index.php [QSA,L]
by
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
上一篇:使用的.htaccess干净网址干净、网址、htaccess
下一篇:Symfony的2:如何删除&QUOT; /网络/&QUOT;从文件夹中的URL共享托管?文件、夹中、网络、Symfony