php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #44633 Write/read errors on vhosts
Submitted: 2008-04-03 19:11 UTC Modified: 2008-04-12 01:00 UTC
Votes:1
Avg. Score:5.0 ± 0.0
Reproduced:1 of 1 (100.0%)
Same Version:1 (100.0%)
Same OS:1 (100.0%)
From: prikid at gmail dot com Assigned: fb-req-jani (profile)
Status: No Feedback Package: Apache2 related
PHP Version: 5.2.5 OS: FreeBSD 6.2-RELEASE
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: prikid at gmail dot com
New email:
PHP Version: OS:

 

 [2008-04-03 19:11 UTC] prikid at gmail dot com
Description:
------------
Note: This bug maybe related to bug#42826

I have setup virtual hosts within apache 2.0.62 configuration with identical settings (except for paths to directories) 3 out of 5 users have no problems, but for 2 others, temporary cache files (using smarty templating system) produce errors as well as session files in /var/tmp.
All directories have correct user/group settings for apache and chmodded 775 recursively.

Again, file permissions and user settings are absolutely correct and work for 3 out 2 users.

Suhosin patch and Zend Optimizer are disabled.

Reproduce code:
---------------
Main apache config:

User www
Group www

Vhost config in apache:

<VirtualHost 10.2.8.10:80>
ServerName site.user1.crossbow
DocumentRoot /var/www/branches/site/user1/
<Location />
php_value include_path ".:/var/www/branches/toolbox/user1:/var/www/branches/site/user1"
AllowOverride All
Options All
</Location>
</VirtualHost>

Expected result:
----------------
Able to write/read cached files in "/var/www/branches/toolbox/user1/smarty/cache/" and "/var/www/branches/toolbox/user1/smarty/templates_c" and "/var/tmp/"

Actual result:
--------------
Warning: Smarty error: problem creating directory '/var/www/branches/toolbox/user1/smarty/cache/%%00/00F' in /usr/local/www/branches/toolbox/user1/smarty/Smarty.class.php on line 1101

....

Warning: Unknown: open(/var/tmp//sess_bb88e3d0e6a8358dc818d6fc7a2f8625, O_RDWR) failed: Permission denied (13) in Unknown on line 0

Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct () in Unknown on line 0

# cd /var/tmp
# ls -la
total 10
drwxrwxrwx   3 root  wheel  3072 Apr  3 14:46 .
drwxr-xr-x  24 root  wheel   512 Jan 31 17:12 ..
----------   1 www   wheel     0 Apr  3 14:42 sess_462dae3f012480a23443be1051eb7b4e
sess_bb88e3d0e6a8358dc818d6fc7a2f8625
----------   1 www   wheel     0 Apr  3 14:25 wrt0AId76
----------   1 www   wheel     0 Apr  3 14:25 wrt0ynxfS
----------   1 www   wheel     0 Apr  3 14:44 wrt1N4NTk

...

# cd /var/www/branches/toolbox/user1/smarty/templates_c/
# ls -la
total 32
d--x--x--x   2 www  www  512 Apr  3 14:44 %%47
d--x--x--x   2 www  www  512 Apr  3 14:44 %%5B

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2008-04-03 21:02 UTC] jani@php.net
Please try using this CVS snapshot:

  http://snaps.php.net/php5.2-latest.tar.gz
 
For Windows (zip):
 
  http://snaps.php.net/win32/php5.2-win32-latest.zip

For Windows (installer):

  http://snaps.php.net/win32/php5.2-win32-installer-latest.msi

And DO NOT apply any 3rd party patches to the sources. And make absolutely sure your php.ini is free of any Zend extensions (Zend optimizer, any caches, etc.)
 [2008-04-03 22:19 UTC] prikid at gmail dot com
Upgrading did not help. I run 'make test' and submitted the failed list from the prompt. Also, a copy of phpinfo() from the box is available here: http://www.undeveloped.net/testip.php.htm
 [2008-04-04 00:36 UTC] jani@php.net
Why don't you set the session.save_path in your php.ini?

btw. You have dozens of configure options in your configure line that don't even exist anymore. Pay attention to the list after running configure.. :)
 [2008-04-04 13:38 UTC] prikid at gmail dot com
Default session.save_path() works for 2 developers, but bugs out for other 3 (with identical settings set for everyone, and I'm sure I didn't specify session.save_path() anywhere in the scripts).
With these settings in smarty:
var $_dir_perms = 0771;
if ($_make_new_dir && !file_exists($_new_dir) && !@mkdir($_new_dir, $smarty->_dir_perms) && !is_dir($_new_dir)) {
...

Php bugs out when creating a directory for unlucky developers. It sets only executable bit, but no read/write bits (umask for apache user is set to 022 and I've tried setting umask(0664); in the php as well)

P.S. Yeah, I'll go over the config file and clean it up from obsolete packages ;-)
 [2008-04-04 18:06 UTC] jani@php.net
I'm starting to think this is no bug at all, just a bug in either Smarty or in how you use it. It propably does something stupid like uses umask() function.
 [2008-04-04 18:37 UTC] prikid at gmail dot com
I've checked smarty and our scripts for umask(), checked shell settings and apache settings for umask(), but none of those exist anywhere in scripts/shell profiles.
This is not only Smarty specific, but also sessions are affected (they aren't created through smarty, but instantiated through our scripts). Php creates an empty session file in '/var/tmp' with no permissions.
I've changed '/var/tmp' ownership to apache user, but php still bugs out on it
 [2008-04-04 21:58 UTC] jani@php.net
You have to come up with short (but complete!) reproduce script for this. Good luck.. :)
 [2008-04-04 21:59 UTC] jani@php.net
Note: That script can NOT use Smarty. (IMO, nobody should use Smarty, ever..anywhere..it shouldn't even exist. :)
 [2008-04-12 01:00 UTC] php-bugs at lists dot php dot net
No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
 [2008-05-01 18:35 UTC] mark at klma dot com
This will actually crash the server due to too many temp files in /var/tmp/

I have smarty save cached templates in subdirectories but this staff is all recorded for no reason in one folder. 
Its billions of files that crashes my server even if I run ls.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri May 10 16:01:32 2024 UTC