В каком каталоге живут PHP сессии?

borzih2

Новичок
В каком каталоге живут PHP сессии?

Странно, но не могу найти каталог, где живут файлы c PHP сессиями. В php.ini написано:
session.save_path = /tmp
однако в каталоге /tmp явно нет сессий. ОС - FreeBSD 6.2, PHP - 5.2.3. Что за загадка такая? Где-то же они должны быть? Может, в оперативной памяти?
 

borzih2

Новичок
Вот инфа, которую дает phpinfo():

session
Session Support enabled
Registered save handlers files user sqlite
Registered serializer handlers php php_binary

Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 4 4
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path no value no value
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid 0 0

И где же искать файлы сессий?
 

Фанат

oncle terrible
Команда форума
странно
странно, что в php.ini - /tmp, а в phpinfo() - no value ...
 

borzih2

Новичок
Вот и мне странно... Даже и не знаю, что делать. А проблема еще и в том, что команда session_start() в последнее время стала "притормаживать". Иногда пару секунд выполняется. Вот я и подумал, что может какие-то проблемы с файлами сессий. Например, их оч-оч много накопилось (если сломалось автоудаление старых), и тормозит сама ОС при запросах к диску. Так что еще можно посмотреть-сделать? Где искать?
 

ys

отодвинутый новичок
borzih2

А php.ini где? В /usr/local/lib/ или еще где?
Ну и собственно права на файлик не забываем.
 

Фанат

oncle terrible
Команда форума
borzih2
ммм. а ты уверен, что сессий в тмп нет? может, ты их не видишь?
а обработчика сессий самописного точно не стоит?
 

ys

отодвинутый новичок
borzih2

>Где искать?

$locate sess_

-~{}~ 10.01.08 00:24:

Перед этим:
/etc/periodic/weekly/310.locate
от рута
 

borzih2

Новичок
Автор оригинала: ys
borzih2

А php.ini где? В /usr/local/lib/ или еще где?
Ну и собственно права на файлик не забываем.
Кое-что проясняется... php.ini живет в каталоге /etc. Права на файл rw-r--r--, то есть для чтения доступен всем. phpinfo() в самом начале пишет
Configuration File (php.ini) Path /etc/php.ini
т.е. в первом приближении кажется, что всё нормально... Однако PHP не читает php.ini! Изменения параметров php.ini никак не меняют вывод phpinfo(). Из-за чего это может быть?
 

ys

отодвинутый новичок
borzih2

Сделай симлинк из /usr/local/lib/

А какого черта этот файлик делает в /etc ?
Вроде речь про BSD, а оно такое в /etc не "ложит"
 

borzih2

Новичок
Ссылку сделал, но это не помогло:
ln -s /etc/php.ini /usr/local/lib/php.ini

В /etc я клал сам. И когда устанавливал php писал
./configure --with-config-file-path=/etc/php.ini ....

-~{}~ 10.01.08 00:54:

Автор оригинала: *****
из-за неперезагрузки апача
Апач оставливаю-запускаю после каждых изменений php.ini
 

fixxxer

К.О.
Партнер клуба
>странно, что в php.ini - /tmp, а в phpinfo() - no value ...


ext/session/mod_files.c
PHP:
    if (*save_path == '\0') {
        /* if save path is an empty string, determine the temporary dir */
        save_path = php_get_temporary_directory();

        if (strcmp(save_path, "/tmp")) {
            if (PG(safe_mode) && (!php_checkuid(save_path, NULL, CHECKUID_CHECK_FILE_AND_DIR))) {
                return FAILURE;
            }
            if (php_check_open_basedir(save_path TSRMLS_CC)) {
                return FAILURE;
            }
        }
    }
-~{}~ 10.01.08 03:38:

ваще логика автороа этого куска кода просто поразительная :)

-~{}~ 10.01.08 03:40:

так, подождите. strcmp возвращает 0 как раз при совпадении, так что именно "/tmp" должно канать... фак.

-~{}~ 10.01.08 03:43:

ну и помойка этот ext/session, чесслово
 

kode

never knows best
Горе-линуксойды, читайте хендбук по FreeBSD.

Ты как апач и PHP ставил? из портов?

php.ini должен лежать в /usr/local/etc/
После изменения php.ini если PHP подключён через модуль нада перезагружать апач - apachectl restart или kill -HUP `cat /var/run/httpd.pid`. Если собирал руками всё - сам виноват, польуй порты - очень удобная весч, удобнее даже чем apt :))

Во FreeBSD, да как и вдругих системах (кроме тех где нет системы пакетов или портов ничего руками собирать ненадо, зря чтоли порты или менеджеры пакетов придумали?). А сконфигурировать всё просто: PHP5 лежит в /usr/ports/lang/php5. Редактируешь там Makefile - правишь CONFIGURE_ARGS, вот и всё :) Экстеншены там тоже из портов поставить можно, но тут уже не так важно. Апач тоже просто собирается.
 

michelle

Новичок
Re: В каком каталоге живут PHP сессии?

Автор оригинала: borzih2
Странно, но не могу найти каталог, где живут файлы c PHP сессиями. В php.ini написано:
session.save_path = /tmp
однако в каталоге /tmp явно нет сессий. ОС - FreeBSD 6.2, PHP - 5.2.3. Что за загадка такая? Где-то же они должны быть? Может, в оперативной памяти?
Поищи еще в /vat/tmp !!
 

borzih2

Новичок
Автор оригинала: kode
Горе-линуксойды, читайте хендбук по FreeBSD.
Ты как апач и PHP ставил? из портов?
Apache и PHP ставил так:

cd /....../soft
tar -xzf httpd-2.2.4.tar.gz
cd httpd-2.2.4
./configure
make
make install
pw useradd web -d /usr/local/www

cd /......./soft
tar -xzf php-5.2.3.tar.gz
cd php-5.2.3
./configure --with-config-file-path=/etc/php.ini --with-apxs2=/usr/local/apache2/bin/apxs --with-mod_charset --enable-magic-quotes --with-zlib --enable-bcmath --enable-exif --enable-ftp --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --with-ttf --with-freetype-dir --enable-gd-native-ttf --with-mysql --enable-sockets --with-iconv
make
make install

php.ini должен лежать в /usr/local/etc/
Сделал еще одну символическую ссылку, но это тоже не помогло:
ln -s /etc/php.ini /usr/local/etc/php.ini

После изменения php.ini если PHP подключён через модуль нада перезагружать апач - apachectl restart или kill -HUP `cat /var/run/httpd.pid`.
Так и делаю:
/usr/local/apache2/bin/apachectl restart

Но вывод phpinfo() никак не зависит от php.ini. А именно он всегда такой: http://gorodsnov.ru/tmp/phpinfo.php
 

Фанат

oncle terrible
Команда форума
может, не делать символических ссылок, а тупо положить в
/etc?
 

borzih2

Новичок
Re: Re: В каком каталоге живут PHP сессии?

Автор оригинала: michelle
Поищи еще в /var/tmp !!
Ура, ура! Сессии нашлись! Они в /var/tmp !!
Хотя проблема с "нечитаемостью" php.ini остаталась..

-~{}~ 10.01.08 12:17:

Автор оригинала: *****
может, не делать символических ссылок, а тупо положить в
/etc?
Он там и лежит. Владелец root, группа wheel, права на файл -rw-r--r--
 

michelle

Новичок
Re: Re: Re: В каком каталоге живут PHP сессии?

Автор оригинала: borzih2

Он там и лежит. Владелец root, группа wheel, права на файл -rw-r--r--
Скопируй php.ini и в /etc и в /usr/local/etc, phpinfo если найдет покажет тебе путь до тоего ini!
Да и перезапусти apache из /usr/local/etc/rc.d apache??.sh
 
Сверху