Расположение файлов сеанса в Apache/PHP


Каково расположение файлов сеанса по умолчанию при установке Apache/PHP в Ubuntu 10.10?

Author: cambraca, 2011-02-08

7 answers

Значение по умолчанию session.save_path имеет значение "", которое будет отображаться во временном каталоге вашей системы. Смотрите этот комментарий по адресу https://bugs.php.net/bug.php?id=26757 заявляя:

Новым значением по умолчанию для save_path в предстоящем выпуске (sic) будет пустая строка, которая вызывает проверку временного каталога.

Вы можете использовать sys_get_temp_dir чтобы вернуть путь к каталогу, используемому для временных файлов

Чтобы найти текущий путь сохранения сеанса, вы можете использовать

Обратитесь к этому ответу , чтобы узнать, каков временный путь, когда эта функция возвращает пустую строку.

 58
Author: Gordon, 2017-05-23 12:02:16

Сначала проверьте значение 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 (хотя я сам этого не проверял).

 54
Author: Rich, 2017-04-11 08:54:06

Другим распространенным местоположением по умолчанию, помимо /tmp/, является /var/lib/php5/

 15
Author: Kevin Borders, 2012-11-30 19:52:16

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

Из командной строки.

Примечание -

Версия php.ini 'cli'/командной строки обычно такая же, как версия Apache, как до параметров пути сохранения по умолчанию. Вы также можете использовать аналогичную команду, чтобы повторить настройку Apache для команды wget/curl или веб-страницы. Но гораздо проще просто использовать grep для этого в Apache php.ini.

РЕДАКТИРОВАТЬ: Согласно комментарию @aesede ->Добавлено php -i. Спасибо

 9
Author: bshea, 2017-04-10 16:49:01

У меня была такая же проблема с поиском правильного пути для сеансов на Mac. В общем, я обнаружил, что PHP CLI имеет другой временный каталог, чем модуль Apache: Apache использовал /var/tmp, в то время как CLI использовал что-то вроде /var/folders/kf/hk_dyn7s2z9bh7y_j59cmb3m0000gn/T. Но в обоих случаях sys_get_temp_dir() указал мне правильный путь, когда session.save_path пуст. Использование PHP 5.5.4.

 3
Author: themarketka, 2013-10-01 13:14:35

Я верю, что это в /tmp/. Проверьте свою функцию phpinfo, хотя она должна указывать session.save_path где-то там.

 1
Author: profitphp, 2011-02-07 23:23:08

В зависимости от типа сервера, на котором вы работаете, он может отличаться. Чтобы найти каталог, выполните следующий поиск в файле php.ini.

Upload_tmp_dir="c:/wamp/tmp "

Каталог может быть другим для вас.

 -7
Author: blanknamefornow, 2011-02-07 23:32:54