Mac OS X LionのPHP.iniはどこにありますか?/ usr / local / php5 / libにあると思った


268

私のMacでいくつかのPHPを実行したかった、コメントなしのhttpd.conf、アクティブ化されたWeb共有、インストールされたMySQLなど。私のPHPファイル、最も重要なのはPHP.iniが見つからないようです。

私の古いマシンでは/ usr / local / php5 / libにありましたが、php5ディレクトリが/ usr / localにありません。

パッケージを入手する必要がありますか、それとも間違った場所を探していますか?

OS X 10.7.3、PHP 5.3.8、Apache / 2.2.21の実行


9
場所を見つける簡単な方法は、phpinfo()を実行することです。
ラルフ

10
またはlocate php.ini
Pekka

12
@ralfe phpinfo()またはphp --ini(ターミナルウィンドウで実行)から 'Loaded Configuration File'設定を探す必要があることを追加する必要があります。php.iniがない場合、これらの両方が/etc(少なくとも私のOS X 10.8インストールでは)構成ファイルのパスを報告するからです。設定ファイルがロードされていない場合は、Macによる答え
Jason S

/ usr / local / php5は、entropy.chおよびliip.chのphp-installerがphpをインストールする場所です。これは、アップルのphp-installationの場所ではありませんでした。
heiglandreas 14

8
これを行うphp -i | grep php.ini

回答:


396

存在する場合は/ private / etcにあり、それ以外の場合は次のようになります。

sudo cp /private/etc/php.ini.default /private/etc/php.ini

さて、/ private / etcにphp.ini.defaultがあり、チェックアウトしています。しかし、なぜ古いphp5フォルダーがusr / localにないのでしょうか?そこには、推奨されるphp.iniを含む、たくさんのファイルがありました。これは、新しいバージョン、PHP5、Lionなどの変更ですか?
Orun

PHP5は、10.5以降、php.iniファイル用の上記の場所でMacOS Xにデフォルトで含まれています。手動でインストールした場合は、Lionへのアップグレード中に削除されるべきではありません。奇妙な...
Mac

2
私のLionマシンのphp.ini.defaultファイルは、php.iniが存在しない場合、すべてのデフォルト設定と一致しませんでした。特に、short_tagsはOff、error_reporting、log_errorsであり、いくつかのマイナー設定が異なりました。php -iphp.iniを作成する前と後の出力を比較する必要があります。
スポールソン2013年

1
私のMacでは、/ private / etc / php.iniにファイルがありましたが、phpはそこで行った変更を無視しているようで、代わりに/usr/local/php5/lib/php.iniのファイルを使用していることがわかりました
キットラモス

2
この答えは私に正しい方向を示しました。cp php.ini.default> php.iniおよびCLIでロードされた構成は/etc/php.iniになりました。php -iを確認してください。grep php.ini after
bpile

407

マシン上のiniファイルを見つけるにはTerminal.app、次のコマンドを開いて実行します。

php --ini

Lionのテンプレートが必要な場合は、こちらをお試しください。


2
現在、php.iniをロードしていません。基本的に、「推奨」php.iniテンプレートを含むディレクトリを探しています。
Orun

47

端末で行いますphp -i | grep php.ini。あなたにいくつかの手がかりを与える必要があります;)


26

@Cronkと@Justinからの回答により、Mac OS X 10.9 Mavericksに近づきました。実際、私のシステムでは/etc/php.iniファイルが完全に欠落してphpinfo()おり、Webサーバーで実行して初めて、構成ファイルがないことがわかりました。からファイルをコピーし、ライブラリへの完全修飾パスを構成ファイルに/etc/php.ini.default追加すると、問題が解決しました。mcrypt.so

cp /etc/php.ini.default /etc/php.ini

次に/etc/php.ini、次の行を追加します(mcrypt.soファイルへの正しいパスを使用)。

extension="/usr/local/Cellar/php54-mcrypt/5.4.29/mcrypt.so"

次に、Apache2を再起動します。

apachectl restart

omg、あなたは私のヒーローです!! mcryptの完全パスを使用するというアイデアをありがとうございます!
Hese 2014年

25

指摘したように、このphp --iniコマンドは、PHPがphp.iniファイルを見つけることを期待している場所を示します。

標準的なインストールの場合は、 /etc/php.ini

macportsを使用したことがある場合、PHPが探している可能性があります/opt/local/etc/php5/php.ini


7
etcは、private / etcへのリンクです:/
etc-

21

phpinfo()任意のファイルから実行すると、それがどこにあるかがわかります。こちらがスクリーンショットです。

ここに画像の説明を入力してください


3
他の「デフォルト」フォルダにphp.iniのコピーが見つかる可能性があるため、これが最善の方法ですが、この方法は実際に使用しているフォルダを通知するので、変更を加えますが、phpはその変更をまったく認識していません。
キットラモス

シェルでphp REPLを開いて実行することもできphp -aますphpinfo();
metakermit 2018

14

PHPのインスタンスを複数回実行しているため、他の回答ではうまくいきませんでした。これはしました:

PHPファイルを作成し、そのローカルURLをブラウザーで開きます。

<?php phpinfo(); ?>

PHP.INIパスが上部に表示されます。


3

これはかなり古いスレッドですが、さらに説明を加えたいと思います。

複数のPHPがインストールされているシステムを使用している場合(私のように)、コマンドラインツールを使用して得られる結果は、Webサーバーで実際に使用されているものとは異なる場合があります。Webサーバーで使用されているPHPに関心がある場合は、「phpinfo()」関数を使用するWebページから収集した情報のみを使用してください。

たとえば、私のシステムでは、2つの異なる方法で報告されたバージョンは次のとおりです。

コマンドライン:5.3.26

ウェブ:5.3.13

php.iniファイルのパスも、次のように異なります。

コマンドライン:/private/etc/php.ini

ウェブ:/long/path/to/the/file/php.ini

これを使用して、可能なすべてのphp.iniファイルを見つけることができます。

find / -name php.ini 2>&1 | grep -v "denied" | grep -v "ディレクトリ"

( '2>&1'および 'grep'要素は、コマンドの出力を有用な情報に制限するだけです。つまり、エラーメッセージを削除します)

私のシステムでは、3つのINIファイルが見つかりました。Webサーバーが使用しているものに興味があったので、Webページの結果から返されたパスを使用する必要があることを知っていました。そこにリストされているphp.iniファイルに変更を加え、Apacheを再起動して、Webページを再実行しました。新しい編集がそこに表示されました。

Apacheを再起動するには:

sudo apachectl -k restart

-J


1

「Hello World!」から始めます。ブラウザに表示されたらphpinfo();、そこに放り込むと、すべてのものを見ることができます。ロードされている構成、すべてを通知します。

<?php
   echo 'Hello World!';

   phpinfo();

0

php_info()を実行すると、以下の行が表示されます:)

Loaded Configuration File   /Applications/XAMPP/xamppfiles/etc/php.ini
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.