在Linux生产服务器上配置Cakephp

时间:2014-05-26 23:31:26

标签: cakephp

我在Linux服务器上托管一个网站,文件夹就像那样

/var/www/html/agitoriosul.com.br/web/

/ web 是公用文件夹

我希望将核心应用文件夹放在 web 文件夹之前,将 webroot 放在 web之内文件夹。

我知道我需要在webroot中配置index.php,但是我已经尝试了很多东西而没有任何作用。

现在所有文件夹都在网络(公共文件夹)内,但首先我知道核心应用文件夹不能留在 web(公共文件夹),第二,用Html->链接助手创建的所有链接指向物理路径(/var/www/html/agitoriosul.com.br/web/)而不是虚拟(agitoriosul。 com.br/)path。

2 个答案:

答案 0 :(得分:0)

  

/ web是公用文件夹

因此,使用标准文件夹layou会有以下内容:

/var/www/html/example.com
    app
        webroot
    lib
    plugins
    vendors

但反过来想要这个:

/var/www/html/example.com
    app
    lib
    plugins
    vendors
    web

移动和编辑

实现这一目标的步骤非常简单:

移动文件夹

使用如下命令:

$ cd /var/www/html/example.com
$ mv app/webroot web

更正ROOT pathAPP_DIR常量

即。 web / index.php文件将包含:

//define('ROOT', dirname(dirname(dirname(__FILE__))));
define('ROOT', dirname(dirname(__FILE__)));

//define('APP_DIR', basename(dirname(dirname(__FILE__))));
define('APP_DIR', 'app');
// cannot be derived, as the app folder is not a parent

或者,如果愿意:

//define('ROOT', dirname(dirname(dirname(__FILE__))));
define('ROOT','/var/www/html/example.com');

//define('APP_DIR', basename(dirname(dirname(__FILE__))));
define('APP_DIR', 'app');

可选地

不要移动任何东西,只需将webroot符号链接:

/var/www/html/example.com
    app
        webroot
    lib
    plugins
    vendors
    web -> app/webroot

使用如下命令:

$ cd /var/www/html/example.com
$ ln -s app/webroot web

这不需要修改app webroot文件。

答案 1 :(得分:-1)

我使用相同的lib和plugins以及vendor文件夹

创建了两个应用程序

请参阅下面提到的文件夹结构:

主文件夹

/var/www/cake
/var/www/cake/lib
/var/www/cake/plugins
/var/www/cake/vendors

申请1

/var/www/cake/cake1/app
/var/www/cake/cake1/webroot

编辑:

/var/www/cake/cake1/webroot/index.php (only three edits)

if (!defined('ROOT')) {
    //define('ROOT', dirname(dirname(dirname(__FILE__))));
    define('ROOT', dirname(dirname(__FILE__)));
}

if (!defined('APP_DIR')) {
    //define('APP_DIR', basename(dirname(dirname(__FILE__))));
    define('APP_DIR', 'app');
}

define('CAKE_CORE_INCLUDE_PATH', dirname(dirname(dirname(__FILE__))) . DS . 'lib');

申请2

/var/www/cake/cake2/app
/var/www/cake/cake2/webroot

编辑:

/var/www/cake/cake2/webroot/index.php (only three edits)

if (!defined('ROOT')) {
    //define('ROOT', dirname(dirname(dirname(__FILE__))));
    define('ROOT', dirname(dirname(__FILE__)));
}

if (!defined('APP_DIR')) {
    //define('APP_DIR', basename(dirname(dirname(__FILE__))));
    define('APP_DIR', 'app');
}

define('CAKE_CORE_INCLUDE_PATH', dirname(dirname(dirname(__FILE__))) . DS . 'lib');

这适用于我在ubuntu上的两个虚拟主机

http://cake1/
http://cake2/