Войти

Показать полную графическую версию : [решено] Не работают session при включенном suexec


WhitePangolin
12-12-2011, 13:49
День добрый.
Столкнулся со странной проблемой. CentOS 6.1 x86_64

$ httpd -V

Server version: Apache/2.2.15 (Unix)
Server built: Jul 7 2011 11:30:37
Server's Module Magic Number: 20051115:24
Server loaded: APR 1.3.9, APR-Util 1.3.9
Compiled using: APR 1.3.9, APR-Util 1.3.9
Architecture: 64-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT="/etc/httpd"
-D SUEXEC_BIN="/usr/sbin/suexec"
-D DEFAULT_PIDLOG="run/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="logs/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"


$ suexec -V

-D AP_DOC_ROOT="/home"
-D AP_GID_MIN=500
-D AP_HTTPD_USER="apache"
-D AP_LOG_EXEC="/var/log/httpd/suexec.log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=500
-D AP_USERDIR_SUFFIX="public_html"


$ ls -la /home/beta/

total 32
dr-xr-x--- 2 beta beta 4096 Dec 5 11:51 cgi-bin
drwxr-x--- 2 beta beta 4096 Dec 5 11:51 public_html
drwxrwxrwx 2 beta beta 4096 Dec 12 10:16 session


$ cat /home/beta/cgi-bin/php-fcgi

#!/bin/sh
export PHPRC=/home/beta
export PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_CHILDREN=1
exec /usr/bin/php-cgi -c /home/beta/cgi-bin/php.ini


$ cat /home/beta/cgi-bin/php.ini | grep "session"

session.save_path = "/home/beta/session"
session.use_cookies = 0


$ cat /home/beta/public_html/index.php

<?php
session_start();
$i=1;
if (!isset($_SESSION["num"])){$_SESSION["num"]=1;}
$_SESSION["num"]=$_SESSION["num"]+$i;
echo $_SESSION["num"];
?>


В настойках хоста:

DocumentRoot /home/beta/public_html
DirectoryIndex index.php
SuexecUserGroup beta beta
<Directory /home/beta/public_html>
AddHandler fcgid-script .php
FCGIWrapper /home/beta/cgi-bin/php-fcgi .php
Options +ExecCGI
Order allow,deny
Allow from all
</Directory>


При нажатии F5 всегда получаю цифру 2, при этом в /home/beta/session при каждом нажатии плодятся сессии.
php_info при этом возвращает все что должен:

...
Server API CGI/FastCGI
...
Session Support enabled
...
session.save_path /home/beta/session /home/beta/session
...
session.use_cookies Off Off
...


т.е. сессии создаются, но "теряются".
Есть идеи в связи с чем может возникнуть такая шляпа?

WhitePangolin
12-12-2011, 14:20
Отбой воздушной тревоги, suexec тут не при делах. Отрубил и его и fcgi и сессии все равно не заработали.




© OSzone.net 2001-2012