Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在子目录中安装cakephp 2.0.0_Php_Macos_Apache_Cakephp_Installation - Fatal编程技术网

在子目录中安装cakephp 2.0.0

在子目录中安装cakephp 2.0.0,php,macos,apache,cakephp,installation,Php,Macos,Apache,Cakephp,Installation,我发现了一个类似的问题,但没有找到解决方案。基本上,我已经在“localhost/dyod”子目录中安装了一个现有的cakephp应用程序。在没有编辑htaccess文件的情况下,我得到一个错误,告诉我应用程序正在寻找dyod控制器,因此似乎uri不知何故关闭了。当我将rewritebase添加到htaccess文件(/dyod/)时,所有资产的URL都将关闭,并且不包括webroot。此外,它仍在寻找dyod控制器。我的htaccess文件是从中复制的 提前感谢。在.htaccess文件中添加

我发现了一个类似的问题,但没有找到解决方案。基本上,我已经在“localhost/dyod”子目录中安装了一个现有的cakephp应用程序。在没有编辑htaccess文件的情况下,我得到一个错误,告诉我应用程序正在寻找dyod控制器,因此似乎uri不知何故关闭了。当我将rewritebase添加到htaccess文件(/dyod/)时,所有资产的URL都将关闭,并且不包括webroot。此外,它仍在寻找dyod控制器。我的htaccess文件是从中复制的


提前感谢。

在.htaccess文件中添加RewriteBase指令:

重写基本/路径/到/蛋糕/应用程序

在您的情况下,这将是:


重写base/path/to/dyod

此页面说明如何在不同于“普通”的位置安装CakePHP:

基本上,您只需在
webroot/index.php
文件中更改3个值。您不必编辑任何.htaccess文件。我现在在每个站点的子目录中安装CakePHP,而且我从来没有接触过.htaccess文件。只要更改
webroot/index.php
中的值就可以了

示例-我的目录结构:

-cakephp
    -cakephp_2_2
    -cakephp_1_3
    -cakephp_2_1_beta
    - ...etc
-public_html
    -mysite1
        -Config
        -Console
        -Controller
        -Lib
        - ...etc
        -View
        -webroot
    -mysite2
        -Config
        -Console
        -Controller
        -Lib
        - ...etc
        -View
        -webroot
if (!defined('ROOT')) {
define('ROOT', DS.'home'.DS.'myusername'.DS.'public_html');
}


if (!defined('APP_DIR')) {
define('APP_DIR', 'mysite1');
}


define('CAKE_CORE_INCLUDE_PATH', DS.'home'.DS.'myusername'.DS.'cakephp'.DS.'cakephp_2_2'.DS.'lib');
在我的webroot中:

-cakephp
    -cakephp_2_2
    -cakephp_1_3
    -cakephp_2_1_beta
    - ...etc
-public_html
    -mysite1
        -Config
        -Console
        -Controller
        -Lib
        - ...etc
        -View
        -webroot
    -mysite2
        -Config
        -Console
        -Controller
        -Lib
        - ...etc
        -View
        -webroot
if (!defined('ROOT')) {
define('ROOT', DS.'home'.DS.'myusername'.DS.'public_html');
}


if (!defined('APP_DIR')) {
define('APP_DIR', 'mysite1');
}


define('CAKE_CORE_INCLUDE_PATH', DS.'home'.DS.'myusername'.DS.'cakephp'.DS.'cakephp_2_2'.DS.'lib');

再加上这个,因为它在我的谷歌搜索的顶端,这些答案没有帮助

CakePHP使用3.htaccess文件,这些文件都需要修改。一个位于CakePHP目录的顶部,一个位于app/中,一个位于app/webroot中。将以下各项添加到其中的每一项:

重写base/path/to/dir/

在我的机器上,我有以下结构: ~/Sites/site1 ~/sites/site2/admin

每个目录都有一个单独的CakePHP安装

在site1和site2/admin中安装CakePHP。 这些站点的URL为:

http://localhost/~me/site1
http://localhost/~me/site2/admin
我不断地得到这个错误: 在此服务器上找不到请求的URL/home/me/Sites/site1/app/webroot/index.php

我修改了3.htaccess文件以获得以下内容:

site1 .htaccess:

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteBase /~me/site1/
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

site1/app .htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /~me/site1/app/
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>

site1/app/webroot .htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /~me/site1/app/webroot/
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>
site1.htaccess:
重新启动发动机
重写base/~me/site1/
重写规则^$app/webroot/[L]
重写规则(*)app/webroot/$1[L]
site1/app.htaccess:
重新启动发动机
重写base/~me/site1/app/
重写规则^$webroot/[L]
重写规则(.*)webroot/$1[L]
site1/app/webroot.htaccess:
重新启动发动机
重写base/~me/site1/app/webroot/
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写规则^index.php[L]

就这样。这三个更改就是您所需要的。

如果我使用完整路径/applications/mamp/htdocs/dyod/我在服务器上找不到错误(显然),如果我使用/dyod/就像我在OP中所说的那样,那么所有资产都有错误的地址,并且仍然尝试加载dyod控制器。您的根目录、APP\u DIR、,例如,蛋糕、核心、包含路径?这些值似乎设置正确。你还有其他想法吗?更新了我的路径,例如Daniel Wolf-更改为匹配上面的示例文件夹结构,而不是我的内部结构。谢谢你指出这一点。抱歉,如果它不是本地主机,而是主机,而不是DS'home'.DS'myusername'.DS'public_html'我应该使用什么?例如,这是正确的