ID: 38670
Comment by: noc at smartterra dot de
Reported By: serokka at hrn dot ru
Status: Open
Bug Type: Apache2 related
Operating System: FreeBSD 4.10
PHP Version: 4.4.4
New Comment:
Update on my first submission on this bug:
I can reproduce it now on FreeBSD 6.2, Apache 2.0.59 and PHP4.4.7. No
.htaccess oder any other defined .html-Handler. Loading test.HTML
produces this error:
[Sat Jun 16 15:01:17 2007] [error] [client <myclientip>] PHP Warning:
Unknown(): SAFE MODE Restriction in effect. The script whose uid/gid is
1002/1002 is not allowed to access /usr/local/www/test owned by uid/gid
80/80 in Unknown on line 0
Previous Comments:
------------------------------------------------------------------------
[2007-04-24 23:02:50] gbjbaanb at users dot sourceforge dot net
I have Apache 2.0.59 with php 4.4.6 just installed and my sites, that
worked fine with php_admin_value open_basedir /home/xxx/:/tmp/:xxx
inside the vhost configuration now fail.
This is on CentOS 4.4, x86_64.
Quite serious? PHP has a reputation for insecure code, this is not
good.
------------------------------------------------------------------------
[2007-04-03 16:10:16] marcel dot prisi at virtua dot ch
I got the exact same problem on a FreeBSD-5.5 / Apache-2.0.59 /
php-4.4.6 (all from ports)
Adding a trailing slash to session.save_path didn't help, I had to
comment it from the virtualhost config in order to have the error go
away.
Quite serious I think ...
------------------------------------------------------------------------
[2007-03-14 13:02:05] david dot guenault at gmail dot com
update my precedent post :
if you simply add a trailing slash to session.save_path this will
discard the problem.
here is why :
in safe_mode.c in the function php_checkuid_ex
when mode argument is CHECKUID_ALLOW_ONLY_DIR
at line 119
s = strrchr(filename, DEFAULT_SLASH);
returns a pointer to the last occurrence of the character / in the
string filename. if your path is like this /data1sys/phpsession the
pointer is on the second slash not at the end of the path. The uid/gid
check is made on the parent folder (/data1sys) not the real folder
(/data1sys/phpsession). So when /data1sys is owned by a user that is
different from the user running apache, the test fail.
------------------------------------------------------------------------
[2007-03-14 10:14:18] david dot guenault at gmail dot com
first of all this is my environment
>SLES 10
>Apache 2.0.59
>Php 4.4.6
I use virtual host to configure my different web sites like this
<VirtualHost *:80>
DocumentRoot /data1user/apache/domain.tld
ServerName www.domain.tld
ErrorLog /data1sys/journaux/apache/domain/error_log
CustomLog /data1sys/journaux/apache/domain/access_log combined
# specific php configuration for this virtual host
php_admin_value doc_root /data1user/apache/domain.tld
php_admin_value session.save_path /data1sys/phpsession_domain.tld
php_admin_value file_uploads on
php_admin_value upload_tmp_dir /data1sys/phpupload_domain.tld
php_admin_value error_log
/data1sys/journaux/apache/testphp/php_domain.tld.log
</VirtualHost>
I've noticied one interesting thing.
before the error occure i check session.save_path => ok this is the
right directory.
When the error occure session.save_path back to the default value (aka
/tmp).
apache is running as user usrhttpd and group grphttpd. The top level
directory for storing session is /data1sys and is owned by user root and
group root. The directory used to store sessions is
phpsession_domain.tld under /data1sys and is owned by
usrhttpd:grphttpd.
If i change /datasys group to grphttpd the error disapear.
If i remove the directive php_admin_value session.save_path
/data1sys/phpsession_domain.tld. from my vhost then all is going right.
hope this help.
------------------------------------------------------------------------
[2007-03-09 07:18:31] mspado at hotmail dot com
Forgot to say:
A common thread to issues with this bug has been the use of
'php_admin_value upload_tmp_dir /xxx/xxx/xxx/tmp'
M.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/38670
--
Edit this bug report at http://bugs.php.net/?id=38670&edit=1