(私はオープンソース phpプロジェクト をnginxにデプロイしようとしています。プロジェクト自体は問題ではありません。)
プロジェクトではグローバル設定を使用しているため、date.timezoneをローカルタイムゾーンに設定する必要があります。
Php.ini(debianの場合は/etc/php/7.0/fpm/php.ini)ファイルに行を見つけましたが、グローバル設定を変更したくなかったため、fpm/confに新しいiniファイルを作成しました次の行を含む.d /ディレクトリ:
date.timezone = ('Europe/Berlin')
これは、サポートされているタイムゾーンの1つです ここに記載 ただし、php情報を見ると、タイムゾーンは「ローカル値」と「マスター値」の両方に反映されています。
グローバルをデフォルトのUTCのままにしながら、この1つのphpプロジェクトだけがタイムゾーンを設定できるようにできますか?
fpm/conf.d/
は追加の.ini
ファイルがないかスキャンされ、構成をモジュールごとなどに簡単に分離できます。これらはFPMプールごとにスキャンされます。つまり、php.ini
と同様にグローバル構成です。
fpm/pool.d/poolname.conf
:の単一のプールの個々の設定を上書きできます
php_admin_value[date.timezone] = Europe/Berlin
まもなくPHP FPM poolsこれにより、個別の設定、リソース、およびユーザー(権限)を使用できます:
デフォルトのプールは、UNIXソケットをリッスンするためにfpm/pool.d/www.conf
で構成されています。
listen = /run/php/php7.2-fpm.sock
また、すべての権限を持つユーザーwww-data
(またはnginx
)として実行されることにも注意してください。
Nginx server{}
ブロックは、PHPスクリプトがこのソケットにPHP FPM pool to handle:
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
# another fastcgi options
}
Mauticプロジェクト用の追加のFPMプール、たとえばfpm/pool.d/mautic.conf
を作成することにより、単一のプロジェクトのPHPを個別のユーザーmautic
として実行できます。
[mautic]
user = mautic
group = mautic
listen = /run/php/mautic.sock
chdir = /var/www/mautic # or /home/mautic etc.
listen.owner = www-data # or nginx(?) to let Nginx use the socket
listen.group = www-data
php_admin_value[date.timezone] = Europe/Berlin
そして当然、関連するNginx構成でこの新しい/run/php/mautic.sock
を使用します。
公式ドキュメント は、基本的なアイデアをすでに知っているはずのところから始まっているため、初心者にとっては少し難しくなります。幸いにも tutorials があります。または video を見て楽しむこともできます。
ここに付記
Laravelを使用して開発している状況では、config/app.php
ファイルには、そのプロジェクトのタイムゾーンのみを指定できます。
正直なところ、私は怠惰で、単に/etc/php.iniに設定します。これはサーバー上のすべてのphpアプリケーションをカバーし、ほとんどの場合、サーバー上のすべてのアプリケーションは同じTZにあります。
/etc/php.iniを開くだけで、date.timezoneの行が見つかり、必要なタイムゾーンを使用します。可能なタイムゾーンのリストについては、公式の PHP doc を参照してください。