【问题标题】:CakePHP on Shared Windows Plesk Server共享 Windows Plesk 服务器上的 CakePHP
【发布时间】:2015-06-16 05:52:58
【问题描述】:

我想知道是否可以让 CakePHP 在共享的 Windows Plesk 服务器 上工作?

我已将 CakePHP 文件解压到 /httpdocs/ 文件夹,并按照中的说明创建了一个 web.config 文件CakePHP 文档,但是我似乎得到的只是“内部服务器错误”。在查看基本的 Cake 配置页面之前,我是否还需要设置 MySQL 数据库,或者它是否应该能够在没有配置任何数据库的情况下向我展示一些东西?

我已将我的网站配置为运行 PHP 5.4.32 (FastCGI)

报错是:

PHP 致命错误:您必须启用 intl 扩展才能使用 CakePHP。在 C:\Inetpub\vhosts\example.com\httpdocs\config\bootstrap.php 在第 38 行

但是我的主人说他们尝试包括 php_intl.dll 所在目录的路径,但这并没有解决问题。

干杯,

皮特

【问题讨论】:

  • 处理 webhost 支持工单的人不是很擅长他的工作,他无法启用所需的 php 扩展。
  • 您要安装 cakephp 3.x 吗?

标签: cakephp plesk


【解决方案1】:

在查看基本的 Cake 配置页面之前,我是否还需要设置 MySQL 数据库,或者它是否应该能够在没有配置任何数据库的情况下向我展示一些东西?

不,你没有。即使没有事先的数据库配置,也会加载默认主页。它只会给你一个消息框,说明数据库未配置。

缺少“intl”扩展是您的主要问题。你需要解决这个问题。我对 Windows 上的 plesk 没有任何经验,所以无法帮助您。虽然我建议使用基于 linux 的服务器来让您的生活更轻松。

【讨论】:

    【解决方案2】:

    这是在 Cakephp 2.x 中的操作方式

    一旦您设置了您的网站空间,您就不需要更改或破坏 php 配置(只要 php 被设置为该网站空间的默认设置)并且 当您在 Plesk 中创建 web_space 时,Plesk 服务器通常会这样做一切都适合你

    但是当您需要在 Plesk 服务器中配置 CakePhp 应用程序时,您需要遵循这些:

    • 根目录

    当您创建新的 DNS 或 web_space Plesk 为您创建目录结构时,您需要将您的应用程序放在创建的目录中并在这些文件夹中配置 htaccess,如下所示(只需在路径中添加一些“/”):

    CakePHP root directory (must be copied to your document; redirects everything to your CakePHP app and updated to):
    
    <IfModule mod_rewrite.c>
       RewriteEngine on
       RewriteRule    ^$ app/webroot/    [L]  #to=> /app/webroot/
       RewriteRule    (.*) app/webroot/$1 [L] #to=> /app/webroot/$1
    </IfModule>
    CakePHP app directory (will be copied to the top directory of your application by bake):
    
    <IfModule mod_rewrite.c>
       RewriteEngine on
       RewriteRule    ^$    webroot/    [L]  #to=> /webroot/
       RewriteRule    (.*) webroot/$1    [L]  #to=> /webroot/$1
    </IfModule>
    CakePHP webroot directory (will be copied to your application’s web root by bake):
    
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ index.php [QSA,L]  #to=> /index.php
    </IfModule>
    
    • 数据库

    当然,您需要配置您的数据库。

    为此,您需要在您的 plesk 服务器中为您的应用程序设置一个新数据库,然后获取:

    • 数据库ip地址
    • 数据库名称
    • 数据库用户名
    • 数据库密码

    并使用新的数据库详细信息更新您的 app/Config/database.php。如您所知:

    public $default = array(
            'datasource' => 'Database/Mysql',
            'persistent' => false,
            'host' => 'ip address here',
            'login' => 'database username',
            'password' => 'database password',
            'database' => 'database name'
        );
    

    Here is how to configure Cakephp 3.x

    希望对你有帮助

    【讨论】:

    • 您的说明如何帮助解决 PHP 中未启用“intl”扩展的事实?
    • 请再次阅读问题和我的回答
    • 我有。我的问题仍然存在。它如何帮助解决缺少“intl”扩展错误的主要问题?您提到了已经提供的 htaccess 文件,在这方面不需要做任何事情。此外,您提供的有关数据库配置的信息也是无效的,因为它适用于 CakePHP 2.x,而 OP 正在安装 CakePHP 3.0。即使没有配置 db,主页也会被加载。
    • 首先他没有提到 cake 的版本,我有在 Plesk9+ 中设置 cake 2.x 的经验。
    【解决方案3】:

    每个 Plesk PHP 处理程序默认禁用 php_intl 扩展:

    您可以在

    中启用它
    C:\Program Files (x86)\Parallels\Plesk\Additional\PleskPHP54\php.ini
    

    只要找到并取消注释这个字符串:

    ;extension=php_intl.dll
    

    【讨论】:

      【解决方案4】:

      感谢所有回答我问题的人。

      我回到 CakePHP 版本 2.6.7 而不是 3.x,在按照 Fury 帖子中的说明进行操作后,我成功地取得了一些进展并加载了基本的 CakePHP 页面。

      希望有更多知识的人能够为那些希望在 Windows Plesk 上使用 v3.x 运行它的人提供指南,因为我确实注意到存在不同的目录结构等。

      干杯,

      彼得

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-07
        • 2012-04-10
        • 2011-09-27
        相关资源
        最近更新 更多