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
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
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

Pull Requests

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-2025 The PHP Group
All rights reserved.
Last updated: Fri May 09 21:01:27 2025 UTC