Кажется, я нигде не могу найти эту информацию, поэтому подумал, что спрашиваю здесь.
В настоящее время мой путь сеанса PHP (session.save_path) установлен в папку на жестком диске сервера.
Я создал простую программу PHP, как показано ниже:
<?php echo "TEST"; ?>
затем я выполнил это с помощью strace, и процесс в журналах strace, который занял больше всего времени, shmdt()
, и когда я сопоставил числа, он ссылался на файл sem в session.save_path.
Один из способов решить эту проблему — создать оперативный диск только для файлов сеанса php, но я хочу иметь возможность добавить запись конфигурации в сам файл конфигурации PHP, чтобы PHP понимал, что у него так много места для работы до удаление старых записей.
Какая запись конфигурации мне нужна для этого?
и, если возможно, какие записи конфигурации я могу использовать для устранения shmdt()
вызов?
Я проверил свой скрипт в PHP версии 5.5.29.
Я понимаю, что вы пытаетесь предотвратить избыточное хранение файлов сеанса в папке сеанса (session.save_path).
Если у вас есть доступ к файлу конфигурации PHP (php.ini), вы должны отрегулировать значение «session.gc_maxlifetime» до максимальной продолжительности, которая вам требуется, чтобы файлы были удалены с сервера.
Документация PHP:
http://ar.php.net/manual/en/session.configuration.php#ini.session.gc-maxlifetime
Чтобы назначить место на «RAM диске», требуется root-доступ к серверу. Если это ваш случай, вы должны сделать следующее:
MKDIR / VAR / сессий
vi / etc / fstab
нет / var / session tmpfs по умолчанию, размер = 50M 1 2
Сохраните изменения в «fstab».
Смонтируйте новый RAM-диск:
гора -а
ПРИМЕЧАНИЕ: в точке «4» я назначаю 50 Мб памяти. Вы должны выделить пространство, которое у вас есть для использования пользователем в оперативной памяти сервера.
Надеюсь, это поможет.
Других решений пока нет …