[PHP] include_pathが効かない時にチェックするポイント


どうも、fujinyoです。

include_pathを設定しても効かなくてちょっと焦ったのでブログに残します。
まず、include_pathの設定方法は3つあります。

php.iniで指定する場合


include_path = "インクルードしたいディレクトリパス"

.htaccessで指定する場合


php_value include_path "インクルードしたいディレクトリパス"

phpのコードの中で指定する場合


ini_set('include_path', "インクルードしたいディレクトリパス");

php.iniは = があったりと3つとも少しずつ違います。
ここまではいいのですが、”インクルードしたいディレクトリパス” の所の書き方が
サーバーがWindowsかUNIX系かで少し変わります。僕はここでハマっていました。

.htaccessの場合で見てみましょう。

Windowsの場合


php_value include_path ".;/public_html/sample;/public_html/sample2"

UNIX系の場合


php_value include_path ".:/public_html/sample:/public_html/sample2"

・・・違いがわかりますでしょうか?
上記の例では、”.” と “/hoge/xxxxx/public_html/sample” と “/hoge/xxxxx/public_html/sample2” の3つを指定したことになります。

この複数指定をする場合の区切り文字がWindowsは “;”(セミコロン)、UNIX系の場合は “:”(コロン)の違いがあります。

ローカル環境(Windows)でテストをしたものを、レンタルサーバー(UNIX系)等で動かす際にハマるポイントかもしれません。
僕はハマりました。。。

[PR] 「結さん」があなたに代わって開発案件の依頼主を探します

  • 「既存のクライアントにギャラアップは言いにくい」
  • 「営業活動する時間がないし、苦手」
  • 「仕事が途切れたらどうしよう」

ITエンジニアのこんな悩みを「結さん」が解決してくれます
結さんへの無料会員登録後は提案メールを待つだけです!

関連記事