勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

WordPressと別プログラム間でSESSIONが引き継げない場合の対応方法

   2024/02/20  WordPress CMS

同一サーバ内に自作したプログラムとWordPressを設置しており両者でセッションを引き継ぎたかった。ただ、WordPressのテーマフォルダ内functions.phpへsession_start()を追記する形でも引き継げなかった。以下に対処方法のメモ。

 

.user.iniファイルが設置されていた

先に原因と対処法を書く。WordPressのディレクトリ直下に.user.iniというファイルが設置されており、ファイル内にsession.save_pathの記述があり、セッションの保存先が定められていた。

自作プログラム内とのセッションの保存先が異なっていた為、引き継げなかったものと思われる。

.user.iniを削除するかsession.save_pathの記述を変更、もしくはコメントアウトで解決する。今回は.user.iniを削除した。

 

対応方法

通常であればWordPressテーマフォルダ内のfunctions.phpに以下を追記すればセッションの引継ぎを行える。

function init_session_start(){
    session_name('hogehoge'); //必要に応じて記述
    session_start();
}
add_action('init', 'init_session_start', 1);

 

なぜ.user.iniファイルが設置されたのか

今回の現象が発生したサーバはエックスサーバーだった。比較的よく使用するサーバで、また、同じような構成(自作プログラムとWPの併用)で開発したことも何度かあったが今回の現象は初めてだった。

違う点として今まではWPを手動で設置していた。データベースを作成しWPファイルをFTPでアップロードするという形をとっていた。

しかしながら今回はエックスサーバの契約時点でWPを自動インストールしたものをクライアントからいただいていた為、恐らくは自動インストールした場合.user.iniが入ってくるんじゃないかと思われる。

 

所感

セッションが引き継げない場合に保存先を疑うという考えを持っていなかったので解決するまで非常に時間がかかった。今後は保存先にも注意する。

 - WordPress CMS

  関連記事

WordPressのxmlrpc.phpに対する攻撃の対策方法
WordPressのxmlrpc.phpに対する攻撃の対策方法

サーバーの死活監視をしているシステムから、1つのサイトが落ちているとアラートがき ...

WordPress Popular Postsのサムネイルが表示されない
WordPress Popular Postsのサムネイルが表示されない

WordPressの人気記事を表示させるWordPress Popular Po ...

WordPressにてPHPのAPCuを使用して高速化を図る方法
WordPressにてPHPのAPCuを使用して高速化を図る方法

先日本サイトのサーバにAPCuを導入した。しかしながら所感にも書いたとおりAPC ...

WP Social Bookmarking LightでSNSボタンが表示されない際の対応方法
WP Social Bookmarking LightでSNSボタンが表示されない際の対応方法

WordPressでWordPress WP Social Bookmarkin ...

WordPressダッシュボードに投稿・固定ページ・カテゴリ・タグ一覧ページにIDを表示させてソート可能にする方法
WordPressダッシュボードに投稿・固定ページ・カテゴリ・タグ一覧ページにIDを表示させてソート可能にする方法

WordPressダッシュボードの投稿(記事)・固定ページ・カテゴリー・タグ一覧 ...