如何将我的cakephp 3.0项目放在共享托管服务器上?

时间:2015-04-01 21:30:13

标签: shared-hosting cakephp-3.0

我在cakephp 3.0中创建了一个项目,我希望将其放在共享托管服务器上。

Cakephp文档为这里的先前版本http://book.cakephp.org/2.0/en/installation/advanced-installation.html提供了解决方案,其中目录结构与新版本不同。

在旧版本中,在共享主机服务器上进行高级安装,整个项目分为3个部分

  1. lib中,
  2. app和
  3. 根目录,
  4. 然后将这些路径写入.htaccess文件中以运行项目。

    在新版本中,app目录已经成为src,webroot就是这样,但我找不到安装的lib目录。

    任何人都可以帮助我了解如何在最新版本中使用它吗?

3 个答案:

答案 0 :(得分:4)

我的工作方式是在共享主机上构建目录,如下所示:

/home/username/public_html/
    // webroot contents goes here
    css/
    img/
    js/
    .htaccess
    index.php

/home/username/mycakeapp/
    // necessary app directories go here
    /config
    /logs
    /plugins
    /src
    /tmp
    /vendor

然后我在第52行的WWW_ROOT中更改了mycakeapp/config/paths.php

define('WWW_ROOT', '/home/username/public_html/' . DS);

最后,我必须将第28行(位于bootstrap.php)的webroot index.php文件中定义的路径更改为/home/username/public_html/index.php

require '/home/username/mycakeapp/config/bootstrap.php';

答案 1 :(得分:3)

@jjz答案的小更新。

你的结构是:

/home/username/public_html (with webroot contents)
/home/username/mycakeapp (installed cakephp 3 app)

更改/home/username/public_html/index.php:

FROM: require dirname(__DIR__) . '/config/bootstrap.php';
TO: require dirname(__DIR__) . '/mycakeapp/config/bootstrap.php';

更改/home/username/mycakeapp/config/paths.php:

FROM: define('WWW_ROOT', ROOT . DS . 'webroot' . DS);
TO: define('WWW_ROOT', realpath(ROOT . DS . '../public_html' . DS));

通过这种方式,您的应用程序将更加便携,而不依赖于/ home / username。

答案 2 :(得分:2)

由CakePHP3的默认配置给出,我发现这种方法破坏性最小。

<强>假设:

     
  1. 您可以访问cPanel /文件管理器
  2.  
  3. 您的根文件夹是/ home / username
  4.  
  5. 您的公共(网络)文件夹是/ home / username / public_html
  6. <强>步骤:

       
    1. 将应用程序的根文件夹(cakephp或任何应用程序文件夹)的内容复制到/ home / username。这将导致您的应用程序的bin文件夹转到/ home / username / bin等等
    2.  
    3. 删除public_html文件夹并创建一个新的符号链接'public_html',指向/ home / username / webroot
    4. 这就是全部!