Расположение файлов сеанса в 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 (Я не проверял это сам, хотя).


другое общее местоположение по умолчанию, кроме /tmp/ is /var/lib/php5/


если вы не уверены в скомпилированном по умолчанию, посмотрите на 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"

каталог может отличаться для вас.