Каково местоположение файлов сеансов по умолчанию при установке Apache / PHP на Ubuntu 10.10?
По умолчанию для 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"
Каталог может отличаться для вас.