2020年5月へ

XAMPPのSession.auto_startについて

公開日:

最終更新日:

開発

AI要約

MacのXAMPP(VM版)でPHPのセッション管理がデフォルト設定で無効になっている問題について解説しています。特にsession.auto_startがOffのためセッションが引き継がれず、/etc/php.iniで設定変更が必要です。また、session_start()はHTML出力の前に記述しなければ警告が出ることも触れており、ローカル環境でのPHP開発時の注意点をまとめています。

  • XAMPP
  • Mac
  • PHP
  • セッション管理
  • session.auto_start
  • session_start()
  • ローカル開発環境
  • VM版
  • php.ini
  • Web開発

MacでXAMPP(VM版)を用いています。

XAMPPは,
便利だったり,でも,便利じゃないところもあったり,
開発しやすかったり,でも,しにくかったりするところがあるのですが,
ローカル環境で素早く開発するためには,必要だと思っています。
(とくに,PHP関連のWEBプログラム)

Nuxt.jsみたいに,Node.jsを使って開発する場合はXAMPPは必要ないですね。
(ただ,まだNode.jsで,DBを使ったことがないので,DBと連携するときにどうするのかは分かりません。)

MacのXAMPP(VM版) での Sessionについて

さて,ローカル環境でSessionがうまく動いていないことに気付きました。

session.auto_start がデフォルトでOff

どうやら,MacのXAMPP(VM版)は,デフォルトでSessionがOffのようです。sessionの内容が引き継がれていませんでした。

そのため, /etc/php.ini で,

session.auto_start=1

と記す必要があります。

session_start を宣言する場合は,HTMLより先に宣言しなければならない

session.auto_start を設定する前は,
いちいち,session_start() を宣言していたのですが,そこで警告が出ていました。

調べたところ,HTMLを出力している最中に, session_start() を呼び出すと,ダメなようです。

<html>タグより先に <?php session_start(); ?> を書かなければなりません。知りませんでした。

参考:PHPのsession_startでWarningが出てしまう

ゴリゴリ開発する前の設定で,色々と面倒なところがありますね。
忘れて,また同じことを探すのは嫌なので,書き留めておきます。

©Hiroshi Nagayama