Я пытаюсь запустить приложение PHP в образе докера, развернутого в минишифте.У меня нет проблем с развертыванием образа в minishift и созданием маршрута для доступа к нему в моем браузере.
Приложение использует сеансы php, которые отлично работают на «обычной» установке (ВМ с ubuntuи nginx / php-fpm или Apache + PHP).Я попытался скопировать настройки в Dockerfile, используя ubuntu: 16.04 в качестве базы с установленными пакетами для Apache2 и PHP (включая libapache2-mod-php и другие).
Проблема в следующем: в php.ini, я установил session.save_path = /tmp/
, который, согласно phpinfo()
и session_save_path()
, применяется и, кажется, работает.Однако, когда я загружаю новую страницу своего веб-приложения, я всегда получаю пустую $_SESSION
.
Я попытался отладить это, и мне было интересно, что в /tmp/
не было абсолютно никакого файла.Используя inotifywait
, я обнаружил, что файлы сеансов создаются и сохраняются, но также мгновенно удаляются:
$ inotifywait -m /tmp/
Setting up watches.
Watches established.
/tmp/ CREATE sess_h5eteih0jlcmbnavo7fstget21
/tmp/ OPEN sess_h5eteih0jlcmbnavo7fstget21
/tmp/ MODIFY sess_h5eteih0jlcmbnavo7fstget21
/tmp/ CLOSE_WRITE,CLOSE sess_h5eteih0jlcmbnavo7fstget21
/tmp/ OPEN sess_h5eteih0jlcmbnavo7fstget21
/tmp/ ACCESS sess_h5eteih0jlcmbnavo7fstget21
/tmp/ CLOSE_WRITE,CLOSE sess_h5eteih0jlcmbnavo7fstget21
/tmp/ DELETE sess_h5eteih0jlcmbnavo7fstget21
То же самое происходит, когда я не использую /tmp/
, но другой каталог.Мне было интересно, что вызывает удаление файла сеанса.
Это параметры в моем php.ini:
[Session]
session.save_handler = files
session.use_strict_mode = 0
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 0
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.referer_check =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
session.save_path = /tmp/
Кто-нибудь знает, почему файлы сеанса удаляются мгновенно?