CMSB v3.80 Beta Released (Upload Management Features & More)

6 posts by 3 authors in: Forums > CMS Builder
Last Post: October 1   (RSS)

I ran into some issues with a few installs and used Claude to guide me through a fix. I asked it to report back what was going on and here's the report:

Title: CMS Builder 3.80 Beta - PHP open_basedir missing /dev/null causes proc_open errors

Environment:

  • CMS Builder v3.80 (Build: 2952) Beta
  • Server: AlmaLinux 8.10 with DirectAdmin
  • PHP 8.1.25 with PHP-FPM (proxy_fcgi)
  • Apache/2

Issue: After upgrading from v3.79 to v3.80 beta, the Server Info page (admin.php?menu=admin&action=general) generates hundreds of PHP warnings:

Warning: proc_open(): open_basedir restriction in effect. File(/dev/null) is not within the allowed path(s)
Warning: proc_open(/dev/null): Failed to open stream: Operation not permitted

These errors occur in /cmsb/lib/shell_functions.php at line 101 where proc_open() attempts to redirect stderr to /dev/null.

Root Cause: CMS Builder 3.80 appears to use shell commands more extensively than previous versions, particularly in the Server Info section. The proc_open() function in shell_functions.php uses /dev/null for stderr redirection, but many PHP configurations (especially in shared/managed hosting with DirectAdmin or cPanel) don't include /dev/null in the open_basedir allowed paths by default.

Solution: Added /dev/null to PHP's open_basedir configuration. For DirectAdmin users with PHP-FPM, this requires updating each user's pool configuration in /usr/local/directadmin/data/users/*/php/php-fpm81.conf

Suggestion for CMS Builder Team: Consider modifying _shellCommand_proc_open() in shell_functions.php to handle environments where /dev/null isn't accessible. Perhaps use a pipe for stderr instead:

php

// Instead of:
2 => array("file", "/dev/null", "a")
// Use:
2 => array("pipe", "w")

This would make CMS Builder more compatible with restrictive hosting environments without requiring server configuration changes.

Note: Reverting to v3.79 resolves the issue immediately, confirming this is specific to changes in v3.80.

MySQL Console presets are not using the table prefix

The preset queries are adding

SELECT * FROM star_trek_trivia LIMIT 100

instead of 

SELECT * FROM cms_star_trek_trivia LIMIT 100


I went back and looked at a different 3.79 install and it does the same thing. I really never use the presets, but I was checking them out in 3.80 and saw that they didn't work

Hi All, 

Thanks for everyone who posted in the forum or emailed in direct.  We've got a new BETA 2 build available here that fixes all the reported issues:
https://interactivetools.com/download/

Also, some new features: 

  • WebP Converter: Convert existing uploads to WebP format with progress tracking (Admin > General > Upload Settings).  This replaces an older plugin we had available.
  • Menu View Mode: Upload fields now display upload list with preview thumbnails instead of just a count
  • Translation Support: Added translation support for uploadifive file uploader UI messages
  • Misc bug fixes and improvements

Let me know if you find any issues with this build.  Otherwise we'll plan to release mid-week.

Thanks!

Dave Edis - Senior Developer
interactivetools.com

Hi, Dave.

I’ve been testing Beta 2 and really like the new upload management features and the zipped database backups.

While testing Convert existing images, I hit a PHP memory limit when a batch included one or more large originals. The process returned a 500 error mid-run, the offending original was reduced to 0 bytes, and the rest of the batch didn’t process.

I raised memory_limit in the site's .user.ini from 128MB to 512MB, which let me process larger images, but I haven’t tested batches as large as some of my client sites.

To avoid any risk of losing original images, I’m planning to temporarily increase the memory limit significantly during conversions—unless you have a better approach.

Also, please tell me where I can find Menu view mode so I can review that as well.

Thanks!
Deborah

I've been using it on a website I am developing and haven't run into any issues with it. All the previous problems have been resolved. 

For the next version, can you add a spot where instead of Exporting JSON, it just shows me the JSON I can copy? It's faster to copy and paste into Claude than to download and upload to Claude.

Thanks!

Kenny H