共享 Windows Plesk 服务器上的 CakePHP

CakePHP on Shared Windows Plesk Server

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

我已将 CakePHP 文件提取到 /httpdocs/ 文件夹,并创建了一个 web.config 文件按照 CakePHP 文档中的说明,但是我似乎得到的只是一个 'Internal Server Error'。在查看基本的 Cake 配置页面之前,我是否还需要设置 MySQL 数据库,或者它是否应该能够在没有配置任何数据库的情况下向我显示一些内容?

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

报告的错误是:

PHP Fatal error: You must enable the intl extension to use CakePHP. in C:\Inetpub\vhosts\example.com\httpdocs\config\bootstrap.php on line 38

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

干杯,

皮特

这是你在 Cake 中的做法php 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/ [L] #to=> /app/webroot/
</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/    [L]  #to=> /webroot/
</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

希望对您有所帮助

Do I also need to have the MySQL DB setup prior to viewing the basic Cake config pages or should it be able to show me something without any DB configured?

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

缺少 "intl" 扩展是您的主要问题。你需要把它修好。我对 windows 上的 plesk 没有任何经验,所以无法帮助您。虽然我建议使用基于 linux 的服务器让您的生活更轻松。

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

您可以在

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

只需找到并取消注释此字符串:

;extension=php_intl.dll

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

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

希望有更多知识的人能够为那些希望获得它的人提供指南 运行 v3.x Windows Plesk 正如我注意到的那样有不同的目录结构等

干杯,

彼得