3

我有一个使用 CakePHP 运行的网站。现在我需要包含一个 Wordpress 博客来与它一起运行。问题是我需要进行一些集成,比如用户登录,所以我试图包含应该提供集成的 Wordpress 文件。

我的服务器的文件系统结构是:

/root
    /app (cake's app directory)
        /webroot
        /...
    /blog (wordpress directory)
        /wp-admin
        /...

Wordpress 的安装很顺利(我正在使用指向该文件夹的子域),所以现在我的两个站点都可以完美地自行运行。

然而,正如我上面提到的,我需要与他们创建一些集成,特别是当用户登录到我的 CakePHP 站点时登录 Wordpress 站点。我试过做这个其他问题所说的,但我收到以下错误:

Fatal error: Cannot redeclare __() (previously declared in /homepages/36/d******/htdocs/cake/basics.php:657) in /homepages/36/d********/htdocs/app/controllers/users_controller.php on line 60 

我正在尝试将应该将 Wordpress 功能带入 CakePHP (require('../../blog/wp-blog-header.php');)的代码放在users_controller中,但我什至不确定这是正确的地方。

我在其他地方读到过,有时不同的框架会声明具有相同名称的函数,这可能会导致冲突。

所以我不确定是否是这种情况,或者我只是将“集成代码”放在错误的位置。

任何帮助将非常感激!

4

2 回答 2

1

如果您可以将您的设计修改为拥有 2 个独立的域以及每个域中的一个框架,那么您将为自己省去很多麻烦(尤其是在未来升级时)。通过这种方式,最复杂的一点是在两者之间实现某种 SSO……但它应该比尝试合并 2 个框架(操作完全不同)更容易。

于 2013-09-23T19:17:21.867 回答
0

如果您想管理多域登录,那么您只能使用单点登录方法来做到这一点。您还可以使用 CAS Server 以及 Auth 来管理该功能。

我只是给你一些与 CAS 相关的小信息。

其中,您必须安装 CAS 服务器。并且有可用的 PHP 客户端。

成功安装 CAS 服务器后,您必须将您的 CAS 服务器应用程序设置为整个应用程序的主页。

因此,如果您首先访问您的应用程序,它将直接检查您的 cas 服务器上的会话。如果您没有登录,那么它会询问登录表单,您的 php 客户端将为您的应用程序管理登录会话。

成功登录后,您可以获取用户 id 的详细信息,并在此基础上比较您的 cakephp 应用程序数据库和 wordpress 数据库。

如果找到了 id,那么您只需要登录,否则它将重定向到 CAS 服务器。

于 2013-09-24T07:43:43.787 回答