Записи с Меткой ‘ php

zend guard install on vestacp

How to Install Zend and Ioncube Loader on Vestacp (CentOS) — ServerMom

Время жизни сессий +

Очистка файлов сессий PHP в Debian, через какое время это делать?
На долго работающих системах образуются папки /tmp или mod-tmp (либо bin-tmp) в случае использования ISPManager размером в миллионы и десятки миллионов файлов с файлами PHP сессий sess_тут_длинный_код, которые служат для временного хранения сессий от пользователей. То, что это наносит ущерб производительности файловой системы — однозначно (попробуйте пролистать такую папку ls ом или хотя бы удалить), поэтому их надо удалять. Возникает вопрос — как часто их можно удалять, чтобы не повредить работе приложений их использующих?

В комментариях к конфигу в Debian 5 Lenny сказано следующее:

; After this number of seconds, stored data will be seen as ‘garbage’ and
; cleaned up by the garbage collection process.
session.gc_maxlifetime = 1440

; 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

Как можно понять из текста, за время жизни файлов сессий отвечает переменная session.gc_maxlifetime, которая стандартно выставлена в 1440 секунд или 24 минуты. Также для определения этого промежутка на основе значений, заданных в системных php.ini, в Debian есть служебный скрипт:

/usr/lib/php5/maxlifetime
24

Вообщем редактируем /usr/lib/php5/maxlifetime и будет нам счастье.

Спасибо.

php no_exec apache

/etc/php5/apache2/php.ini

disable_functions = dl, shell_exec, posix_mkfifo, exec, system,passthru, symlink, link, set_time_limit, max_execution_time

disable_functions = pcntl_alarm, pcntl_fork, pcntl_waitpid, pcntl_wait, pcntl_wifexited, pcntl_wifstopped, pcntl_wifsignaled, pcntl_wexitstatus, pcntl_wtermsig, pcntl_wstopsig, pcntl_signal, pcntl_signal_dispatch, pcntl_get_last_error, pcntl_strerror, pcntl_sigprocmask, pcntl_sigwaitinfo, pcntl_sigtimedwait, pcntl_exec,pcntl_getpriority, pcntl_setpriority, exec, passthru, shell_exec, system, proc_open, popen

/etc/init.d/apache2 restart

Время жизни сессии php

При использовании сессий в PHP по умолчанию идентификатор сесии сохраняется в «куках» или «кукисах» — небольших блоков информации, которые хранятся на стороне клиента и имеет заданное время жизни. (в PHP куки доступны при помощи глобального массива $_COOKIES). Название идентификатора сессии — «PHPSESSID», но его можно изменить при помощи параметра session.name в файле php.ini.
Время жизни куки, которая хранит идентификатор сесии по умолчанию составляет 0 сек, т.е. кука храниться до того момента, как браузер будет закрыт. Это можно изменить при помощи параметра session.cookie_lifetime в файле php.ini.
PHP, как правило, хранит данные сессии в файлах. Для того, чтобы не засорять файловую систему периодически осуществляется очистка устаревших данных, garbage collection — уборка мусора. В файле php.ini существует параметр session.gc_maxlifetime который указывает время в секундах, по истечению которого все устаревшие данные будут удалены из файловой системы.
Допустим, мы хотим задать время жизни сесии — 3 часа. Для этого в файле php.ini устанавливаем следующие параметры:
session.gc_maxlifetime = 10800
session.cookie_lifetime = 10800
Если у вас нет возможности внести изменения в файл php.ini, то можно сделать установку этих параметров при помощи файла .htaccess. Для этого вносим в него следующие строки:
php_value session.gc_maxlifetime 10800
php_value session.cookie_lifetime 10800
Если ваш хостер запрещает вам использовать директиву php_value в файле .htacces или использовать .htaccess в целом — то пора менять хостера.
Кроме того, вы можете установить время жизни сессионной куки из PHP при помощи функции session_set_cookie_params. К примеру:

При этом нужно учитывать, что функциция set_cookie_params должна быть вызвана до того, как сессия будет открыта при помощи session_start.Функция set_cookie_params также позволяет установить путь, домен, настройки безопасности для сессионной куки.