phpcms v9 で PHPSSO が通信できない問題の解決策 (PHPSSO が通信できないことは、phpcms v9 の登録メンバーが「重複した名前を渡すことができない」ことができないことに間接的に影響します)
通常の状況では、ほとんどの人は次のことを行います:
ローカルに仮想環境を作成し、localhost または 127.0.0.1 を使用して V9 システムをインストールします。ローカル通信には問題がないため、ローカルのデータをバックアップしてリモートでインストールします。その際、ドメイン名を使用してインストールされ、ローカル データがリモート サーバーに直接復元される場合があります。この場合、SSO と V9 システムが通信できないことがよくあります
。
バックアップ内のデータ リンクが保存されるため、URL は localhost または 127.0.0.1 またはローカル マシン 192.168.xxx.xxx となり、ドメイン名と一致しません。たとえば、対応する SSO は www.lanrensc.com であり、データ回復後の V9 システムは localhost または 127.0.0.1 に対応します。この 2 つが一致しない場合、通信は不可能になります。最も一般的な理由は、通常は公式の方法に従って解決できます。
もちろん、公式の方法で解決できない場合は、おそらくローカルのメソッドを使用する必要があります。 V9 によると、ディレクトリ内のすべてのソース コードは、インストールによって生成される V9Cache と SSO キャッシュを含め、リモート エンドを直接カバーします。特に Linux システムでは、ローカル マシンとサーバーのキャッシュに記録されるデータベース情報が異なることを知っておく必要があります。厳しい権限制限があるため、公式の方法に従っても通常は通信できません
理由 2: ローカルの V9 キャッシュと SSO キャッシュがサーバーの対応するファイルをカバーします。通信が確立できない 2 番目の理由は、キャッシュ内のいくつかのファイル ( system.php および database.php ) を変更しようとすることです。特定の変更方法 詳細は説明しませんが、キャッシュ内の設定ファイル datebase.php に必要なデータがあるかどうかを確認できます。
上記の 2 つの理由 に加えて、2 つの可能性があります:
まず、 Linux サーバーの場合、Web サイトのディレクトリの権限が正しく設定されていないため、通信できなくなる可能性があります
第二に、www を含むドメイン名と www を含まない 2 つのドメイン名が同じサーバーを同時に指していることです。 V9 をインストールするときに、インストールするのにトップレベル ドメイン名がない場合でも、マシンが www.lanrensc.com を使用している場合、この場合通信も失敗します
特に 2 番目の理由は、多くの人が無視しているかもしれません。 WWW を持っているかどうかに関係なく、SSO はこれらを 2 つの異なるアプリケーションとして認識します。当然、異なるアプリケーションは通信できません。 。 。
V9 と SSO 間の通信の問題を回避するには、次のことを行うことをお勧めします。
1. ローカル データを復元する必要がない場合。サーバーにテンプレートを直接アップロードします。ファイルのみを作成し、リモート キャッシュ フォルダーを上書きしないでください。
2. サーバーに復元する必要があるデータがローカル マシン上にある場合は、保存しないでください。ローカル データを保存する場合は、v9_admin、v9_member、および v9_sso を含むファイルを使用します。3 つのプレフィックスを持つテーブルの場合は、V9 をリモートでインストールするときに新しいインストールを使用します。インストールが完了したら、Cachesbakupdefault フォルダーに SQL バックアップとテンプレート パッケージのみをアップロードします。
3. 多くの場合、SSO を使用する場合と www を使用しない場合は、同じサーバーを指している場合でも、2 つの異なるアプリケーションとみなされることに注意してください。主に www を使用する場合は、V9 のインストールに www を使用することを忘れないでください。
4. Linux サーバーの場合は、V9 のインストール ディレクトリの権限に注意してください。サーバーが独立したホストであり、root 権限を持っている場合は、バイナリ アップロードを使用してください。 root 権限を持つアカウントでアップロードすることはお勧めできません。V9 プログラムは、サイトの作成時に関連付けられたアカウントを使用してアップロードされます。
SSO 通信の問題を解決する別の方法を提供しますつまり、
v9_admin、v9_member、および v9_sso を含まない方法を作成します。プレフィックス付きテーブルのデータをバックアップし (ローカル マシンでもサーバーでも問題ありません)、サーバーに新しい V9 をインストールします (最新の V9 の install、cache、および phpssoserver ディレクトリを使用してフォルダーを上書きします)をサーバー上で同じ名前で削除し、キャッシュ内の .lock ファイルを削除して、新しくインストールされた V9 通信が成功することを確認し、以前のバックアップを復元できるようにします。