簡體   English   中英

從自定義設置的會話文件夾中刪除舊的會話文件?

[英]Deleting old session files from custom set session folder?

使用 PHP,如果我設置一個自定義會話文件夾來存儲會話文件,我必須做些什么才能確保最終刪除舊的會話文件? 有沒有辦法讓 Apache 或 PHP 為我處理這個問題,還是我需要設置一些東西來自己清理這個文件夾? 非常感謝有關此主題的任何信息。

我目前正在使用 session_save_path() 來更改會話文件夾,如果這有區別的話。

只要你不使用N; php 的 session.save_path 設置選項,PHP 將根據session.gc_probability / session.gc_divisor / session.max_lifetime 設置自動清理陳舊的會話

如果您已經推出了自己的會話處理程序,您將負責清理工作。

是的,您需要手動清理它們,因為您已經設置了自己的會話保存路徑 (今天據說它僅適用於拆分目錄選項,但我有服務器,即使不使用該功能,但使用自定義會話保存路徑,它仍然需要此功能,並且它是一些 PHP 5.2.x,我需要手動清理。)

您可以檢查文件的年齡並刪除它是否超過 x 天/分鍾:

cd /path/to/sessions; find -cmin +24 | xargs rm

摘自php.ini的注釋部分:

; NOTE: If you are using the subdirectory option for storing session files
;       (see session.save_path above), then garbage collection does *not*
;       happen automatically.  You will need to do your own garbage
;       collection through a shell script, cron entry, or some other method.
;       For example, the following script would is the equivalent of
;       setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):
;          cd /path/to/sessions; find -cmin +24 | xargs rm

也請參閱這個相關/重復的問題: cleanup php session files


“單”命令:

find /path/to/session -name sess_* -cmin +24 -exec rm {} \;

您將需要定期清理自定義 PHP 會話目錄。 您可以運行 CRON 作業來處理@hakre 的答案

我們使用 Plesk,它在工具和設置 > 計划任務下有一個方便的 CRON/任務管理器。 您可以創建一個新任務並按設定的時間間隔運行腳本/命令。

另一點是,如果您在共享服務器上或會話目錄與其他站點/資源共享,則運行自定義會話路徑非常好。

我在這里發布這個答案/主題很有用,而且我沒有在網上找到太多關於自定義 PHP session_path 的建議

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM