9

StackOverflowの達人へのご挨拶!

これが私が苦労している問題です。

MAMPでphpinfo()を実行すると、結果のテーブルのdate.timezone行の両方の列に「値なし」と表示されます。

さらに、ページには次のように表示されます。

警告: phpinfo()[function.phpinfo]:システムのタイムゾーン設定に依存することは安全ではありません。date.timezone設定またはdate_default_timezone_set()関数を使用する必要があります。これらの方法のいずれかを使用してもこの警告が表示される場合は、タイムゾーン識別子のスペルを間違えている可能性があります。/Applications/MAMP/bin/mamp/phpinfo.phpの代わりに、「EST / -5.0/noDST」に「America/New_York」を選択しました。

ただし、php.iniファイルでは、設定は次のとおりです。

date.timezone = America / New_York

php.iniへのパスが正しいことを確認することをお勧めします-私はすでにそれを行っており、パスは確かに正しいです:/Applications/MAMP/conf/php5.3/php.ini-それは値が設定されています。

どうすれば問題を解決できますか?私は何が欠けていますか?

知識のある人の助けに感謝します。

4

6 に答える 6

10

私はこれに答えるのに少し遅れるかもしれませんが、いくつかのサイトで、MAMPで正しいタイムゾーンを設定することについて質問していることがわかります。

使用しているphpのバージョンのphp.iniファイルには2つの場所があることに注意してください。MAMPは、編集しているパスとは異なるパスからロードしている可能性があります。

たとえば、php5.3を使用しているとします。php.iniファイルの2つの場所があり、どちらを編集するかを混乱させる可能性があります。

/Applications/MAMP/bin/php/php5.3/conf/php.ini

以下のこの場所で編集しているようです。

/Applications/MAMP/conf/php5.3/php.ini

2番目のパスのタイムゾーンの編集は機能しませんでしたが、最初のパスのタイムゾーンの編集は機能しました。同じように見えても、間違ったファイルを編集している可能性があります。私は自分のバージョンでこれをテストしました。phpファイルで実行<?php phpinfo(); ?>し、php.iniファイルのパスを確認すると、常に正しいパスが表示されます。

また、指摘するだけで、date.timezoneの値を二重引用符で囲むと機能します。たとえば、私のphp.iniファイルでは、次のように機能します。

date.timezone = "America/Vancouver"

また、デフォルト値も二重引用符で囲まれています。

これをテストするときも、MAMPバージョン2.1.1を使用していました。

于 2013-08-18T19:26:39.253 に答える
6

関連するphp.iniファイルでタイムゾーンが正しく設定されていてもこのメッセージが表示される場合は、TZ環境変数を設定してみてください。.profileを編集して、次の行を追加します(独自のタイムゾーン文字列のsub ):

export TZ="America/New_York"

(a)MAMPがphp.ini設定をオーバーライドする理由、(b)TZ env変数を使用すると、PHPが通知/警告をスローしない理由はわかりませんが、このソリューションはMAMP2.0.5を使用して機能しました。 PHP5.3.6を使用します。

于 2013-01-31T04:32:12.783 に答える
3

/ Applications / MAMP/confにはさまざまなバージョンのPHPがあることに注意してください。使用しているバージョンをMAMP->設定->タブ「PHP」で確認する必要があります

5.4.4に設定されている場合は、/ Applications / MAMP / conf / php5.4.4 /php.iniにアクセスする必要があります

@編集

ターミナルでこれを実行します:

sed -i '$ a\date.timezone = "America/New_York"' /Application/MAMP/conf/php{5.4.4,5.2.17,5.3.13,5.3.14,5.3.5,5.4.3}/php.ini

また

sed -i 's/date.timezone = "Europe/Berlin"/date.timezone = "America/New_York"/g' /Application/MAMP/conf/php{5.4.4,5.2.17,5.3.13,5.3.14,5.3.5,5.4.3}/php.ini
于 2012-12-10T04:48:12.700 に答える
3

このエラーがPHPのターミナルCLIの使用法に表示される場合は、ネイティブとMAMPのPHPの衝突に問題がある可能性があります。

MacOS Xには独自のPHPバージョンがプリインストールされており、これを入力するとシェルで実行されますphp。MAMPのPHP構成は、プリインストールされているPHP構成とは別のものです。MAMPPHPのタイムゾーン設定を変更しても、CLIに表示される内容には影響しません。したがって、タイムゾーンエラーが発生し続けます。確認する簡単な方法は、実行which phpすることです-で始まるパスが表示されない場合は/Applications/MAMP/...、環境を調整する必要があります。

.profileこれを行うには、 (またはbash RCファイル)テキストファイルを編集して、次の行を追加します。

export PATH="/Applications/MAMP/bin/php5.5.3/bin:$PATH"

上記のパスを調整して、目的のMAMPPHPインストールを指すようにします。次に、以下を実行します。

. ~/.profile
hash -r

これにより、PATHの変更がすぐに適用されます(そうでない場合は、変更を適用するために新しいターミナルウィンドウを開く必要があります)。2番目のコマンドは、bashCLIキャッシュクリアコマンドです。

最後のチェックとして、実行which phpして、使用されているPHPインストールパスを確認します。お役に立てれば!

于 2013-12-04T21:49:40.513 に答える
1

php5.5.3を使用するUbuntu13.10では、ターミナルを開いて実行します

cd /

sudo find -name php.ini

php.iniという2つのファイルが表示されます。

 ./etc/php5/apache2/php.ini
    ./etc/php5/cli/php.ini

sudoを使用して両方のファイルを開き、nanoを使用します

sudo nano /etc/php5/apache2/php.ini

この行を見つけて編集します。

;date.timezone =

次のように変更します。

date.timezone = America/Caracas

このファイルを保存して閉じ、別のファイルを編集します

sudo nano /etc/php5/cli/php.ini

この行を見つけて編集します。

;date.timezone =

次のように変更します。

date.timezone = America/Caracas

apacheを保存して閉じ、再起動します

sudo service apache2 restart

わたしにはできる!!!

于 2015-04-02T08:45:31.093 に答える
0

grep -lr "Berlin" * | xargs sed -i .backup -e 's#Europe/Berlin#America/New_York#g'

私の場合、上記のコマンドには多少の工夫が必要でした。これにより、バックアップファイルも作成されます。

于 2013-08-16T20:33:39.623 に答える