php.ini の内容が有効にならない - PHPプロ!Q&A掲示板

249

  • 0P

php.ini の内容が有効にならない

質問日時 / 2006年11月24日 11:48    回答数 / 15件

Questioner:  aerosmith777  このエントリーをはてなブックマークに追加 

キーワード / php.ini   

いつも参考にさせていただいています。

早速質問させていただきますが、PHP 4.3.11、CentOS 4.1、apache 1.3.x の環境でPHP を利用していますが、php.ini に設定した内容がphpinfo() に反映していないようなのです。

具体的には、
1. phpinfo() の出力でphp.ini のパスを確認
2. 上記で確認したphp.ini ファイルの内容のうち「mbstring.encoding_translation = On」の設定をする
3. apache を再起動する
4. phpinfo() の出力で「mbstring.encoding_translation」項目の「Master Value 」の値を確認する

上記4 で「Master Value」が「Off」のままなのです。操作的におかしなところがあれば是非ご指摘ください。
また、理由が分かるのであれば、教えてください。

お願いします。

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┣A01dorae92php.iniファイルの権限はApacheと同じ権限で 読める
┃┗A01-1aerosmith777ご回答ありがとうございます。 はい、php.ini はapac
┣A02galluがると申します。 もしかすると、php.iniの設定をど
┃┗A02-1aerosmith777ご回答ありがとうございます。 お教えいただいたURL
┣A03cocoitiban>1. phpinfo() の出力でphp.ini のパスを確認 ここの
┃┗A03-1aerosmith777ご回答ありがとうございます。 php.ini を設定後、te
┣A04kurofuneうまく行かない時は・・・ 削除して、1からもう
┃┗A04-1aerosmith777ご回答ありがとございます。 一からやってみました
┣A05vittelがるさんと被りますが、設定が上書きされているかもし
┃┗A05-1aerosmith777ご回答ありがとうございます。 逆に質問させていた
┣A06vittel>逆に質問させていただきますが、phpinfo() で出力さ
┃┗A06-1aerosmith777ご回答ありがとうございます。 そうなんですか、逆
┣A07aerosmith777ちなみに、PHP 4 のコンパイルオプションは次の通りで
┣A08aerosmith777ちなみに、PHP 4 のコンパイルオプションは次の通りで
┗A09aerosmith777自己解決しました。念のため、ご報告します。 PHP

回答一覧

並び替え:

A01
answererdorae92 [11月24日 15:29]

php.iniファイルの権限はApacheと同じ権限で
読めるようになっていますか?

この意見に回答する

ツリーへ TOPへ

A01-1
replyeraerosmith777 [11月24日 16:12]

ご回答ありがとうございます。
はい、php.ini はapache 起動ユーザーが読める権限となっています。

あれからいろいろと調査していたのですが、.htaccess において、php_flag による設定は有効になるようです。しかし、php.ini による設定はやはり有効になりません。

お願いします。

この意見に回答する

ツリーへ TOPへ

A02
answerergallu [11月26日 02:39]

がると申します。
もしかすると、php.iniの設定をどこかで上書きしている、のかも、しれません。
ちぃと手前味噌で恐縮ではありますが。
http://d.hatena.ne.jp/gallu/20060207/p1
あたりなどをご覧頂くと、或いは解決の糸口になる………かも、しれません。

何かの参考にでもなれば幸いです。

この意見に回答する

ツリーへ TOPへ

A02-1
replyeraerosmith777 [11月26日 19:19]

ご回答ありがとうございます。
お教えいただいたURL を拝見しました。PHP の設定が複数箇所に記載できること、その優先順位については以前勉強したので実は知っておりました。PHP 設定は test.php などのファイルを用意し、中身を「<?php phpinfo(); ?>」とすることで確認しています。test.php 内部でini_set() は利用していませんし、.htaccess のtest.php ディレクトリ、もしくはその上位ディレクトリには配置しておりません。
お願いします。

この意見に回答する

ツリーへ TOPへ

A03
answerercocoitiban [11月26日 18:57]

>1. phpinfo() の出力でphp.ini のパスを確認
ここのパスですがたとえば
/usr/lib/php.ini
と、設定後にファイル名まで表示されてますか?
ファイル名まで表示されてない場合は、なんの問題か読み込めてません。
とりあえずみてみてください。

この意見に回答する

ツリーへ TOPへ

A03-1
replyeraerosmith777 [11月26日 19:17]

ご回答ありがとうございます。
php.ini を設定後、test.php などのファイルを作成し、内容を「<?php phpinfo(); ?>」とし、ブラウザでtest.php を叩いてPHP の設定内容を確認しています。確認しましたら、パスは「/usr/local/php4/etc/php.ini」となっており、確かにこの場所にphp.ini があり、先ほど修正したファイルなので、間違いないかと思います。

この意見に回答する

ツリーへ TOPへ

A04
answererkurofune [11月26日 20:12]

うまく行かない時は・・・


削除して、1からもういっかい、やってみましょう~!


それでも駄目なら、こんなものがあるようなので、試してみては・・・


http://www.mamp.info/en/index.php

この意見に回答する

ツリーへ TOPへ

A04-1
replyeraerosmith777 [11月28日 10:36]

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

一からやってみましたが、やはり結果は同じでした f^_^A
そして、MAMP をご提案しておりますが、質問内容の根本的な解決にはなっていないのでこちらに関しては試しておりません。せっかくご回答していただいたのに申し訳けありません。

この意見に回答する

ツリーへ TOPへ

A05
answerervittel [11月28日 10:13]

がるさんと被りますが、設定が上書きされているかもしれません。
以前、WINDOWSですが同じ状況になりました。

その時はphp5ts.dllが別々のディレクトリに2つあって片方を削除したら正常になりました。
あとは、php.ini上でmbstring.encoding_translationが2つあるとか・・・

この意見に回答する

ツリーへ TOPへ

A05-1
replyeraerosmith777 [11月28日 10:32]

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

逆に質問させていただきますが、phpinfo() で出力されるphp.ini ファイル以外のphp.ini ファイルを PHP が読み込んでしまうことはあるのでしょうか?

一ついい忘れておりましたが、PHP 5 もサーバーにインストールされています。/usr/local/php4 にPHP4 を、/usr/local/php5 にPHP5 をインストールしていますが、これが影響しているのでしょうか?

また、 php.ini上にはmbstring.encoding_translation は一つしかありません。というのも、ディフォルトのphp.ini-dist をコピーしてmbstring.encoding_translation のみを変更しただけですから。

お願いします。

この意見に回答する

ツリーへ TOPへ

A06
answerervittel [11月28日 10:54]

>逆に質問させていただきますが、phpinfo() で出力されるphp.ini ファイル以外のphp.ini ファイルを >PHP が読み込んでしまうことはあるのでしょうか? 

Linuxのことは良くわからないのですが、WINDOWSの場合ですと例えばwindows/とwindows/system32/にファイルを置くと2つとも読みます。また、httpd.confの中でPHPIniDirを設定していたらそこのphp.iniも読みます。

>一ついい忘れておりましたが、PHP 5 もサーバーにインストールされています。/usr/local/php4 に  >PHP4 を、/usr/local/php5 にPHP5 をインストールしていますが、これが影響しているのでしょうか? 

phpinfo()でのPHPのバージョンはPHP 4.3.11ですよね?

この意見に回答する

ツリーへ TOPへ

A06-1
replyeraerosmith777 [11月28日 11:11]

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

そうなんですか、逆に私はWindows はさっぱりなので、詳しくありませんが、やっかいですね。
phpinfo() でのバージョンはPHP 4.3.11 です。php.ini のファイルパスも、PHP4 とPHP5 でかち合っていることはありません。なお、apache ではPHP4 をロードしているので、PHP5 がインストールされているといっても利用はしていないと思います。

そして、PHP4 のみインストールされている環境で同様にphp.ini のmbstring.encoding_translation をOn としてみましたが、やはりかわりありません。なぜでしょうか??

この意見に回答する

ツリーへ TOPへ

A07
answereraerosmith777 [11月28日 11:15]

ちなみに、PHP 4 のコンパイルオプションは次の通りです。

./configure  --prefix=/usr/local/php4 --with-apxs=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/php4/etc/php.ini --enable-mbstring --enable-mbregex --without-pear --with-pgsql=/usr/local/pgsql --with-mysql=/usr/local/mysql

この意見に回答する

ツリーへ TOPへ

A08
answereraerosmith777 [11月28日 11:15]

ちなみに、PHP 4 のコンパイルオプションは次の通りです。

./configure  --prefix=/usr/local/php4 --with-apxs=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/php4/etc/php.ini --enable-mbstring --enable-mbregex --without-pear --with-pgsql=/usr/local/pgsql --with-mysql=/usr/local/mysql

この意見に回答する

ツリーへ TOPへ

A09
answereraerosmith777 [12月8日 13:38]

自己解決しました。念のため、ご報告します。

PHP をコンパイルする際、 --with-config-file-path=/usr/local/php4/etc/php.ini としていましたが、このオプション、php.ini へのファイルパスを記載するのではなく、php.ini の検索ディレクトリパスを指定するということでした。

--with-config-file-path=/usr/local/php4/etc とすることで、php.ini が有効となりました。

単純なことですが、オプションの名称が file-path であったので、そのまま解釈してしまったことに原因があったということです。マニュアルはちゃんと読まないと行けませんね^^ いい勉強になりました。皆さんありがとうございました。

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
セッションがいいのか、それともデータベースがいいのか教えて下さい。
 このエントリーをはてなブックマークに追加 
A
>ボタンをクリックしたら選んだ商品情報を持っておきたいと思っています。 そのくらいのことならセッションもしくはCookie(期限短め:場合によってはブラウザ閉じるまで)でいいんじゃないですかね。 #わ...

>>続きを読む

一つの目安として、ECサイトの購入情報など絶対に消えてはいけないものはDBに、カートなどの一時的に使用する情報や、ユーザに任意のタイミングで消去されても構わないものはセッションにと使い分けるといいでしょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)