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

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

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

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

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

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

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

  • session_save_path() – Получить и / или установить текущий путь сохранения сеанса

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

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

EDIT: Per @aesede comment -> Добавлен php -i . благодаря

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

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

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

upload_tmp_dir = "c: / wamp / tmp"

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