3

私は CakePHP で実行されている Web サイトを持っています。次に、それに合わせて実行する 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 つの別個のドメインとそれぞれにフレームワークを持たせることができれば、(特に将来のアップグレードに関して) 多くの手間を省くことができます。このようにすることで、最も複雑なのは 2 つのフレームワーク間である種の SSO を実装することですが、2 つのフレームワーク (動作がまったく異なる) をマージするよりも簡単なはずです。

于 2013-09-23T19:17:21.867 に答える
0

マルチドメイン ログインを管理したい場合は、シングル サインオン方式でのみ行うことができます。その機能と認証を管理するために、CAS サーバーを使用することもできます。

CASに関連する小さな情報を提供します。

その中に、CAS サーバーをインストールする必要があります。また、利用可能なPHPクライアントがあります。

CAS サーバーのインストールが正常に完了したら、cas サーバー アプリケーションをアプリケーション全体のホームページとしてセットアップする必要があります。

したがって、最初にアプリケーションにアクセスすると、cas サーバーのセッションが直接チェックされます。ログインしていない場合は、ログイン フォームが要求され、PHP クライアントがアプリケーションのログイン セッションを管理します。

ログインに成功すると、ユーザー ID の詳細を取得でき、それに基づいて、cakephp アプリケーション データベースと wordpress データベースを比較できます。

ID が見つかった場合は、ログインする必要があります。そうでない場合は、CAS サーバーにリダイレクトされます。

于 2013-09-24T07:43:43.787 に答える