PHPの設定についてのご質問です。


今現在PCとモバイルのサイトを構築しており、認証のため携帯サイトのディレクトリで

session.use_cookies = "Off"
session.use_only_cookies= "Off"
session.use_trans_sid = "1"

と設定を変更したいと考えております。

ところが私が利用している「Xserver」ではホームディレクトリに設置した「php.ini」の内容が全てに反映され、携帯サイトのディレクトリに「php.ini」を設置しても変更内容が反映されません

http://www.xserver.ne.jp/faq_service_php.php

それならばとホームの「php.ini」は削除すると、ホーム以外に設置した「php.ini」は下位ディレクトリには適用されず、サイト内全てに適用するには多くのディレクトリに設置する必要があり、手間もかかり管理上あまり好ましくありません。

またXserverでは.htaccessにPHPの設定は書き込みできず、該当ファイル内に直接「ini_set」で設定変更してもホームの「php.ini」の設定が優先され反映されません。

このような場合になにかいい方法はありませんでしょうか?
ご教授のほど宜しくお願いします。

回答の条件
  • 1人1回まで
  • 13歳以上
  • 登録:2010/09/24 07:43:48
  • 終了:2010/09/27 18:16:16

回答(3件)

id:tezcello No.1

tezcello回答回数457ベストアンサー獲得回数682010/09/24 11:27:33

ポイント40pt

今、手元の環境では確認できませんが、書式が間違っていませんか?

公式サイトによれば、session.use_cookies などは boolean なので、二重引用符で括ってはダメなのでは?

他の値と同じように 0, 1 On, Off のような記述だとか?

http://www.php.net/manual/ja/session.configuration.php#ini.sessi...

http://svn.php.net/viewvc/php/php-src/trunk/php.ini-production?v...

id:gelgelgel

ご回答ありがとうございます。

>公式サイトによれば、session.use_cookies などは boolean なので、二重引用符で括ってはダメなのでは?

2重引用符で括っても適用されます。主にサーバーの仕様により困っています。

質問文が悪かったのかも知れませんが、私が問題にしているのは

・PCと携帯のサイトでPHPの設定を変更したい

・ホームディレクトリに「php.ini」を設置すると全てに反映され切り分けできない(下位にphp.iniを設置してもホームのphp.iniの設定が優先される)

・ホームの「php.ini」を削除すると、下位の「php.ini」の設定は有効になるがホーム以外に設置した「php.ini」は下位フォルダには反映されないため、すべてのフォルダに設置する必要があり、管理が猥雑。

・.htaccessではphpの設定ができない。(サーバー仕様)ini_setで直接ファイルに設定してもホームの「php.ini」が優先される

・どうすればよいのか?

何か良い知恵がありましたら宜しくお願いします。

2010/09/24 17:44:52
id:umI No.2

umI回答回数112ベストアンサー獲得回数02010/09/26 13:59:17

id:gelgelgel

わー

2010/09/27 18:12:15
id:ko8820 No.3

ko8820回答回数1221ベストアンサー獲得回数692010/09/27 00:00:15

ポイント40pt

実際のディレクトリ構成と

URLのディレクトリ構造は別にすることが可能ですから

このあたりでがんばるしかないですよ。

id:gelgelgel

むむっ

それはそれでめんどくさい気がするです・・

2010/09/27 18:13:14
  • id:tasklight
    PHPスクリプトとして用意しておき、require_onceで逐次取り込むようにしてはいかがですか。
  • id:gelgelgel
    コメントありがとうございます。

    少し試してみたのですが、PEARの読み込みがうまくいかないせいかエラーが表示されました。
    この方法でもう少し試してみたいと思います。

    ありがとうございました。
  • id:tezcello
    php.ini の優先順位が、.htaccess とは逆で上位優先であり、ini_set() が無効になっている(=PHPの仕様と異なる)というサーバ仕様なんですね。php.ini の書式不正で無視されているのかと思いました。

    本来の仕様ではない状態でしか動作しない環境で、便利な(あるはずの)機能を利用しようとしても不可能でしょう。自動的に代行してくれる事を自力でやるか、環境を変えるしか無いのでは?

    SESSIONIDを状況に応じてcookieに出したりURLに付加したいのだと思いますが、それらは自力でコントロールできますよね。
    便利なものをどうしても使いたいなら、それを許してくれる(いってみれば普通の)サーバへ移るしか無いでしょう。
  • id:deflation
    PEARは関係ないでしょ。
  • id:gelgelgel
    マルチドメインで運用していて他のところへも影響がありますので、
    別サーバーに移行することにしました。

    多くのご回答&コメントありがとうござました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません