2015-04-01 144 views
4

我在cakephp 3.0中创建了一个项目,我想将它放在共享托管服务器上。如何将我的cakephp 3.0项目放在共享托管服务器上?

Cakephp文档已经给出了以前版本的解决方案http://book.cakephp.org/2.0/en/installation/advanced-installation.html,其中目录结构不同于新版本。

在旧版本做一个共享的主机服务器上预先安装,整个工程分裂成3个部分

  1. lib下,
  2. 应用和
  3. 根目录,

然后将这些路径写入.htaccess文件以运行项目。

在新版本中,应用程序目录已成为src,webroot按原样,但无法找到安装的lib目录。

任何人都可以帮助我,如何去它的最新版本?

+0

它与2.x基本相同,目录结构稍有不同,但就是这样。您可能想要重述您的问题并解释您所面临的实际问题!? – ndm 2015-04-02 07:32:21

+0

已经没有'lib'文件夹了,您是否阅读过安装说明? ** HTTP://book.cakephp.org/3.0/en/installation.html** – ndm 2015-04-07 10:56:20

回答

3

我得到这个工作的方式是构建共享的主机,像这样的目录:

/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 

然后我mycakeapp/config/paths.php改变WWW_ROOT在线52:

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

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

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

@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。

1

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

假设:

  1. 您可以访问的cPanel /文件管理器
  2. 你的根文件夹是/ home /用户名
  3. 你的公共(网络)文件夹是/ home /用户名/的public_html

步骤:

  1. 将应用程序根文件夹(cakephp或任何您的应用程序文件夹)的内容复制到/ home/username。这将导致你的应用程序的bin文件夹去到/ home /用户名/ bin和等
  2. 删除的public_html文件夹,并创建一个新的符号链接“的public_html”指向/ home /用户名/根目录

这一切!

相关问题