Как установить date.timezone и в каком месте это сделать

(Я пытаюсь развернуть проект php с открытым исходным кодом на nginx. Сам проект не имеет значения.)

Мне нужно установить date.timezone на мой местный часовой пояс, поскольку в проекте используются глобальные настройки.

Я нашел строку в моем php.ini (в /etc/php/7.0/fpm/php. Однако, когда я смотрю на свою информацию о php, часовой пояс отражается как в «Local Value», так и в «Master Value».

Могу ли я сделать так, чтобы часовой пояс был установлен только для этого одного проекта php, а глобальный оставался в формате UTC по умолчанию?

2
задан 10 September 2018 в 15:40
3 ответа

fpm / conf.d / сканируется на наличие дополнительных .ini , что упрощает разделение конфигурации, например, по модулям. Они сканируются для каждого пула FPM, то есть это глобальная конфигурация, такая же, как php.ini .

Вы можете переопределить индивидуальные настройки для одного пула в вашем fpm / pool.d / poolname .conf :

php_admin_value[date.timezone] = Europe/Berlin

Вкратце о пулах PHP FPM , которые позволяют использовать отдельные настройки, ресурсы и пользователя (разрешения):

  1. Пул по умолчанию настроен в fpm / pool.d / www. conf для прослушивания сокета UNIX:

     listen = /run/php/php7.2-fpm.sock
     

    Также обратите внимание, что он запускается как пользователь www-data (или nginx ), имея все свои разрешения.

  2. Nginx server {} block передает скрипт PHP в этот сокет для обработки пула PHP FPM:

     location ~ \ .php $ {
      fastcgi_pass unix: /run/php/php7.2-fpm.sock;
      # еще один вариант fastcgi
     }
     
  3. Вы можете запустить PHP отдельного проекта как отдельный пользователь mautic , создав дополнительный пул FPM, например fpm / pool.d / mautic.conf для вашего проекта Mautic:

      [mautic]
    пользователь = mautic
    группа = mautic
    слушайте = /run/php/mautic.sock
    chdir = / var / www / mautic # или / home / mautic и т. д.
    listen.owner = www-data # или nginx (?), чтобы Nginx мог использовать сокет
    listen.group = www-data
    
    php_admin_value [date.timezone] = Европа / Берлин
     

    И, естественно, используйте этот новый /run/php/mautic.sock в соответствующей конфигурации Nginx.

Официальная документация начинается с того места, где вы уже должны знать основную идею , что усложняет задачу новичкам. К счастью, есть учебников , или вы даже можете насладиться просмотром видео .

3
ответ дан 3 December 2019 в 10:32

Честно говоря, я ленив и просто установил его в /etc/php.ini. Это охватывает все приложения php на сервере, и в большинстве случаев все приложения на сервере будут находиться в одной TZ.

Просто откройте /etc/php.ini, и они найдут строку с date.timezone и используют любой требуемый часовой пояс. Список возможных часовых поясов см. В официальном документе PHP .

0
ответ дан 3 December 2019 в 10:32

Примечание здесь

В ситуации, когда вы разрабатываете с использованием Laravel, в файле config / app.php вы можете указать часовой пояс только для этого проекта.

0
ответ дан 3 December 2019 в 10:32

Теги

Похожие вопросы