本blogはエックスサーバーで運用しているのですが、WordPressをインストールしないでPHPを動かそうとするとなかなか曲者です。
php.iniを編集しなければ使えない機能がいくつかあります。
とりあえず遭遇したのはメール送信とセッションです。
特にセッションは、かなり悩まされました。
実際に色々と調べてみたものの、どうにもうまくいきません。
今回、無事に解決しましたので、編集するポイントと内容を書いておきます。
解決策はphp.iniをリセットするこれだけです!
念のため、正しいパスについても言及します。
同じ問題に遭遇したかたは参考にしてみてください。
PHPでセッションが使えない原因
使えないと気付いたのは、最初にプログラムを組んで動作確認した時。
セッションにデータを入れたのですが、ページ遷移時にデータが保持できません。
これはおかしいと思い、Chromeでデバッグ。
セッションIDは存在するものの、変数すら作られていませんでした。
これはphp.iniを編集しないと動かないだろうと、解決の糸口にはすぐたどり着きました。
ですが、編集内容がさっぱりです。
編集すべき点としてはセッションを保存するパスですが、色々調べてみても正しいパスがわかりません。
WordPressを運用しているサーバーのphp.iniと比較して、ようやく解決策にたどり着きました。
エックスサーバーでphp.iniをリセットする
さて、どうやらリセットしたらちゃんと動作しそうだという結論は出ました。
しかし、当初設定されていたphp.iniがなぜ変わってしまったのかは不明なままです。
そもそも当初は正しいパスだったのかすらよくわかりません。
恐らくドメイン直下以外にWordPressをインストールしたのが原因だと思いますが…
ともかくリセットの手順です。
サーバーパネルにログインします。
この「php.ini設定」をクリックすると、ドメイン選択画面に移動します。
ドメインを選択すると「php.ini設定初期化」タブが表示されます。
そのままメニュー通りに進めれば、php.iniの初期化が完了します。
エックスサーバーでPHP.iniを直接編集する
前述のメール送信関連以外にも編集済の場合は、リセットしたくない場合もあるかと思います。
そのような場合には直接編集をしたほうが良いでしょう。
編集箇所は以下のとおりです。
特に変更していなければ、160行が該当行です。
session.save_path = ******
この項目に正しいパスが記述されていなければ、セッションデータが保存できないようです。
正しいパスは以下のとおりです。
/home/サーバーID/ドメイン/xserver_php/session
サーバーIDとドメインは、インフォメーションパネルにログインすると確認できます。
どうやら最近はデフォルト設定が上記になっているようですので、同様の不具合に悩まされる人は少ないと思います。
参考になれば幸いです。