Как установить дату и часовой пояс и где это правильно сделать

Как установить дату и часовой пояс и где это правильно сделать

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

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

Я нашел строку в своем файле php.ini (в /etc/php/7.0/fpm/php.ini для Debian), но поскольку я не хотел менять глобальные настройки, я создал новый ini-файл в каталоге fpm/conf.d/ со строкой:

date.timezone = ('Europe/Berlin') 

Это один из поддерживаемых часовых поясов.задокументировано здесь Однако когда я смотрю на свою информацию php, часовой пояс отображается как в «Локальном значении», так и в «Основном значении».

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

решение1

Сканируется 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{}передает PHP-скрипт в этот сокет для обработки пулом PHP FPM:

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

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

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

решение2

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

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

решение3

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

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

Связанный контент