Расположение файлов сеанса в Apache / PHP
каково местоположение файлов сеанса по умолчанию при установке Apache / PHP на Ubuntu 10.10?
7 ответов
на по умолчанию session.save_path
установлено значение ""
который будет оцениваться в каталог temp вашей системы. См. этот комментарий вhttps://bugs.php.net/bug.php?id=26757 заявляя:
новое значение по умолчанию для save_path в предстоящем releaess (sic) будет пустой строкой, которая вызывает временный каталог для зондирования.
можно использовать sys_get_temp_dir
возвращает путь к каталогу для временных файлы
найти настоящее сеанс сохранить путь, вы можете использовать
смотрите ответ чтобы узнать, что такое путь temp, когда эта функция возвращает пустую строку.
сначала проверьте значение session.save_path
используя ini_get('session.save_path')
или phpinfo()
. Если это не пусто, то он покажет, где сохраняются файлы сеанса. Во многих сценариях он по умолчанию пуст, и в этом случае читайте дальше:
на машинах Ubuntu или Debian, если session.save_path
не установлен, затем файлы сеанса сохраняются в /var/lib/php5
.
в системах RHEL и CentOS, если session.save_path
не установлен, файлы сеанса будут сохранены в /var/lib/php/session
Я думаю, что если вы скомпилировали PHP с источник, тогда когда session.save_path
не установлен, файлы сеанса будут сохранены в /tmp
(Я не проверял это сам, хотя).
если вы не уверены в скомпилированном по умолчанию, посмотрите на php.ini для Apache:
текущие местоположения Ubuntu/Debian:
Старые версии php5 установить: /etc/php5/apache2/php.ini
Ubuntu 16.XX и / или php5 или php7:/etc/php/*/apache2/php.ini
как правило, это покажет закомментированы по умолчанию.
или:
php -r 'echo session_save_path() . "\n";'
или:
php -i | grep session.save_path
или:
php -r 'echo phpinfo();' | grep session.save_path
из командной строки.
Примечание-
'cli' /версия командной строки РНР.ini-это обычно то же самое, что и версия Apache, насколько настройки по умолчанию пути сохранения. Вы также можете использовать аналогичную команду для Эхо-настройки Apache для команды wget/curl или веб-страницы. Но, гораздо проще просто grep для него в Apache php.ini.
EDIT: Per @ aesede комментарий - > добавлено php -i
. Спасибо
у меня была такая же проблема с поиском правильного пути для сеансов на Mac. В общем, я узнал, что cli PHP имеет другой временный каталог, чем модуль Apache: Apache used /var/tmp
, в то время как CLI использовал что-то вроде /var/folders/kf/hk_dyn7s2z9bh7y_j59cmb3m0000gn/T
. Но в обе стороны,sys_get_temp_dir()
мне правильный путь, когда session.save_path
- это пустое. Использование PHP 5.5.4.
Я считаю его в / tmp/. Проверьте свою функцию phpinfo, хотя, он должен сказать сеанс.save_path где-то там.
в зависимости от типа сервера, он может варьироваться. Чтобы найти каталог, найдите в php следующее.ini-файл.
upload_tmp_dir конфигурационного = "c:/wamp/tmp"
каталог может отличаться для вас.