Назад | Перейти на главную страницу

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

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

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

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

date.timezone = ('Europe/Berlin') 

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

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

В 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.

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

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

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

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

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