【问题标题】:Deploy CakePHP application to webserver将 CakePHP 应用程序部署到网络服务器
【发布时间】:2014-06-12 02:06:08
【问题描述】:

我在将我的 CakePHP 应用程序部署到共享 Web 服务器时遇到问题。这是我所做的:

1) 我从本地机器上压缩了应用程序:application.zip 2) 然后我将 zip 文件上传到服务器上的我的public_html 并解压缩它

所以现在我的应用程序位于www.mydomain.com/application 工作正常,但是一旦我将application 文件夹的内容移动到public_html(这样我的应用程序位于www.mydomain.com)它就不会加载应用程序适当地。它只加载主页的一些链接,不加载任何样式。

总结一下.. 提取到public_html/application/ 后,应用程序运行良好 但是一旦我将应用程序文件夹的内容移动到public_html,它就不起作用了。

我应该如何设置文件夹结构以使我的应用程序位于www.mydomain.com

任何帮助将不胜感激。

【问题讨论】:

  • 嗨。你在用阿帕奇吗?谁在托管您的服务器?这不是 1and1,是吗?
  • 是的,它是 Apache。不,我没有使用 1and1。
  • 嗯,我只能说确保所有 CakePHP .htaccess 文件都在那里(在应用程序的根目录、应用程序目录和应用程序/webroot 中)
  • 很可能您还没有将public_html/application/.htaccess 移动到public_html/.htaccess。您所描述的是未启用 mod 重写。最好将所有应用程序文件 out 放在文档根目录中,并使 public_html 成为 app/webroot 文件夹(或类似排列)的符号链接 - 这是唯一应该在其中的文件夹可通过网络访问的位置。

标签: php cakephp web-applications webserver cpanel


【解决方案1】:

您也可以尝试删除 app/tmp/cache 中的缓存文件 不是文件夹,而是文件夹中的文件

【讨论】:

    【解决方案2】:

    我只是碰巧尝试使用 CPanel 以相同的方式将 Cake 应用程序部署到共享服务器,并且遇到了完全相同的问题。我发现不知何故(我认为当我将 zip 解压缩到 public_html 目录时,有一个不想被替换的空 .htaccess 文件)应用程序根目录中的 .htaccess 文件是空的。

    只需确保应用程序根目录中的 .htaccess 文件(即 public_html 中)包含以下内容:

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

    对我来说工作得很好,我现在一切就绪!

    【讨论】:

    • 或者(如我对问题的评论所示)use a production install 并确保文档根目录指向 webroot 文件夹。无论如何 +1。
    • 注意到您的评论,但由于我使用的是 Cpanel,我认为这是不可能的,因为似乎 CPanel 和其他共享主机无法使用 DocumentRoot。不过,对于专用托管,是的,这将是最好的选择(这也是我通常所做的 - 我很少需要使用共享服务器或 Apache)。
    • 您无需更改文档根目录即可进行生产安装;只能将您的应用程序文件放在 文档根目录之外,并将 webroot 链接或复制到文档根目录(如果已复制,则为 ROOT constant needs redefining)。
    • 这似乎解决了我的问题。非常感谢朋友。
    • @AD7six 我明白了。没有考虑移动 webroot,但不确定是否可以使用共享主机进行链接。也许下次需要考虑一下——不过我习惯于使用具有 root 访问权限的 Nginx,所以通常它更简单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-17
    • 2014-03-25
    • 1970-01-01
    • 2016-04-02
    • 1970-01-01
    • 2016-04-09
    • 1970-01-01
    相关资源
    最近更新 更多