31
CentOS-WebPanel Bugs / Re: CWP Cronjob Killing Server
« Last post by wingusupport on August 18, 2026, 06:43:56 PM »Hello @overseer, @venty, @starburst:
I really appreciate each of you chiming in and though the MariaDB upgrade guidance is prudent, the active issue is still not addressed. Does the PHP version actually affect the cronjob run each night using /etc/cron.daily/cwp specifically "/usr/local/cwpsrv/htdocs/resources/admin/include/cron.php"? Perhaps... I'll do my best to verify that (without acknowledging the protected CWP code contained in the CWP job). Updating MariaDB is certainly accepted guidance which I will affect post solving the immediate issue. I fear introducing too many changes prior to solving the immediate issue may further complicate resolution.
I will go down the PHP version route and see how that responds and will report back!
Thanks everyone!
I really appreciate each of you chiming in and though the MariaDB upgrade guidance is prudent, the active issue is still not addressed. Does the PHP version actually affect the cronjob run each night using /etc/cron.daily/cwp specifically "/usr/local/cwpsrv/htdocs/resources/admin/include/cron.php"? Perhaps... I'll do my best to verify that (without acknowledging the protected CWP code contained in the CWP job). Updating MariaDB is certainly accepted guidance which I will affect post solving the immediate issue. I fear introducing too many changes prior to solving the immediate issue may further complicate resolution.
I will go down the PHP version route and see how that responds and will report back!
Thanks everyone!
32
PHP Selector / Re: PHP-FPM 8.4/8.5 mbstring missing
« Last post by danielalvares on August 18, 2026, 03:43:34 PM »Thanks, Starburst.
I extracted the PHP 8.5.9 mbstring.so from the Remi RPM without installing the RPM itself, copied only the module to the CWP PHP 8.5 extension directory, and created mbstring.ini.
I tested it through PHP-FPM and mbstring is now working correctly with PHP 8.5.9.
So this workaround solved the issue for me.
Hopefully this can be fixed in a future CWP update so PHP 8.4/8.5 can provide mbstring normally through the selector.
I extracted the PHP 8.5.9 mbstring.so from the Remi RPM without installing the RPM itself, copied only the module to the CWP PHP 8.5 extension directory, and created mbstring.ini.
I tested it through PHP-FPM and mbstring is now working correctly with PHP 8.5.9.
So this workaround solved the issue for me.
Hopefully this can be fixed in a future CWP update so PHP 8.4/8.5 can provide mbstring normally through the selector.
33
PHP Selector / Re: PHP-FPM 8.4/8.5 mbstring missing
« Last post by Starburst on August 18, 2026, 02:33:13 PM »I apologize, I thought you needed it for 8.3.
Yea, it wouldn't work for 8.5
Looks like a bug in PHP 8.5.
Found a post from aaPanel with the same error:
https://github.com/aaPanel/aaPanel/issues/287
Is the module installed?
dnf install php-mbstring
And then check/update your php.ini for
Then restart your web server (Apache or Nginx)
--
You also can try installing the PHP mbstring package, which contains mbstring.so, below is the latest stable release.
For AL9
or for AL8:
Yea, it wouldn't work for 8.5
Looks like a bug in PHP 8.5.
Found a post from aaPanel with the same error:
https://github.com/aaPanel/aaPanel/issues/287
Is the module installed?
dnf install php-mbstring
And then check/update your php.ini for
Quote
extension=mbstring.so
Then restart your web server (Apache or Nginx)
--
You also can try installing the PHP mbstring package, which contains mbstring.so, below is the latest stable release.
For AL9
Code: [Select]
dnf install https://dl.starburst.help/PHP/Misc/php-mbstring-8.5.9-1.module_php.8.5.el9.remi.x86_64.rpmor for AL8:
Code: [Select]
dnf install https://dl.starburst.help/PHP/Misc/php-mbstring-8.5.9-1.module_php.8.5.el8.remi.x86_64.rpm34
PHP Selector / Re: PHP-FPM 8.4/8.5 mbstring missing
« Last post by danielalvares on August 18, 2026, 12:12:59 PM »Thanks, Starburst. I tested the PHP 8.3 mbstring.so with PHP 8.5 as you suggested.
PHP 8.5 rejects it with:
So the PHP 8.3 mbstring.so is not compatible with PHP 8.5.
It seems PHP 8.5 needs a mbstring.so compiled specifically for API 20250925, or the PHP 8.5 build should include --enable-mbstring directly.
PHP 8.5 rejects it with:
Code: [Select]
Warning: PHP Startup: mbstring: Unable to initialize module
Module compiled with module API=20230831
PHP compiled with module API=20250925
These options need to match
So the PHP 8.3 mbstring.so is not compatible with PHP 8.5.
It seems PHP 8.5 needs a mbstring.so compiled specifically for API 20250925, or the PHP 8.5 build should include --enable-mbstring directly.
35
PHP Selector / Re: PHP-FPM 8.4/8.5 mbstring missing
« Last post by Starburst on August 18, 2026, 11:38:39 AM »Just looked, https://github.com/mysterydata/md-disk/blob/main/el8-php83/mbstring.so is valid, but your screenshot does show wget.
Goto
and then run:
And it will download the missing .so file for mbstring.so
Goto
Code: [Select]
/opt/alt/php-fpm85/usr/lib/php/extensions/no-debug-non-zts-20250925/and then run:
Code: [Select]
wget https://github.com/mysterydata/md-disk/blob/main/el8-php83/mbstring.soAnd it will download the missing .so file for mbstring.so
36
CentOS-WebPanel Bugs / Re: Root .ssh directory disappeared (including authorized_keys) after CWP update?
« Last post by simonjwoolf on August 18, 2026, 11:33:27 AM »I have had exactly the same issues on three separate instances of CWP Pro, using AlmaLinux 8.10 and AlmaLinux 9.8 in one case.
ie:
- root's .ssh folder was completely deleted by the update to CWP 1.6
As my servers don't permit login via password, this meant I was no longer able to login via SSH. Luckily I was able to start a console session via my hosting company's control panel, and add back the /root/.ssh directory and the authorized_keys file that CWP deleted
- the certificate /etc/pki/tls/certs/hostname.crt is removed or renamed to hostname.cert
Since this file is symlinked from the server's actual hostname, eg: MyServerHostname.crt > hostname.crt it then results in CWPro not loading the control panel and failing after a restart.
The solution was to add an additional symlink hostname.cert > hostname.crt
Both these problems are serious since they result in the potential inability for the sysadmin to access the server
ie:
- root's .ssh folder was completely deleted by the update to CWP 1.6
As my servers don't permit login via password, this meant I was no longer able to login via SSH. Luckily I was able to start a console session via my hosting company's control panel, and add back the /root/.ssh directory and the authorized_keys file that CWP deleted
- the certificate /etc/pki/tls/certs/hostname.crt is removed or renamed to hostname.cert
Since this file is symlinked from the server's actual hostname, eg: MyServerHostname.crt > hostname.crt it then results in CWPro not loading the control panel and failing after a restart.
The solution was to add an additional symlink hostname.cert > hostname.crt
Both these problems are serious since they result in the potential inability for the sysadmin to access the server
37
PHP Selector / Re: PHP-FPM 8.4/8.5 mbstring missing
« Last post by danielalvares on August 18, 2026, 07:18:38 AM »I also found older CWP forum threads showing mbstring build problems with PHP 8.3 on EL8, where disabling mbstring was suggested as a workaround.
The current external mbstring.so mechanism may be related to that older build issue.
The current external mbstring.so mechanism may be related to that older build issue.
38
PHP Selector / PHP-FPM 8.4/8.5 mbstring missing
« Last post by danielalvares on August 18, 2026, 07:12:42 AM »Hello,
I found an issue with PHP-FPM 8.4 and 8.5 on CWP Pro running AlmaLinux 8.
I have the same problem on two different VPS servers.
In PHP-FPM Selector, mbstring is enabled, but after compiling PHP 8.4/8.5 the extension is not available.
The PHP configure command also does not contain:
Looking at the CWP mbstring script:
The build log shows:
PHP-FPM 8.3 on the same servers works correctly.
It looks like PHP 8.4 and 8.5 on EL8 are compiled without mbstring, and CWP then tries to install a precompiled mbstring.so, but the configured download URL no longer exists.
Could you please confirm if this is a known issue and whether the build configuration will be updated to compile mbstring directly with --enable-mbstring instead of relying on the missing external mbstring.so?
Thank you.
I found an issue with PHP-FPM 8.4 and 8.5 on CWP Pro running AlmaLinux 8.
I have the same problem on two different VPS servers.
In PHP-FPM Selector, mbstring is enabled, but after compiling PHP 8.4/8.5 the extension is not available.
The PHP configure command also does not contain:
Code: [Select]
--enable-mbstring
Looking at the CWP mbstring script:
Code: [Select]
/usr/local/cwpsrv/htdocs/resources/conf/el8/php-fpm_selector/external_modules/8.5/mbstring.sh
https://github.com/mysterydata/md-disk/raw/main/el8-php85/mbstring.so
The build log shows:
Code: [Select]
--2026-08-18 03:52:27-- https://github.com/mysterydata/md-disk/raw/main/el8-php85/mbstring.so
HTTP request sent, awaiting response... 404 Not Found
ERROR 404: Not Found.
chmod: cannot access '/opt/alt/php-fpm85/usr/lib/php/extensions/no-debug-non-zts-20250925/mbstring.so': No such file or directory
ERROR: Missing extension file /opt/alt/php-fpm85/usr/lib/php/extensions/no-debug-non-zts-20250925/mbstring.so
PHP-FPM 8.3 on the same servers works correctly.
It looks like PHP 8.4 and 8.5 on EL8 are compiled without mbstring, and CWP then tries to install a precompiled mbstring.so, but the configured download URL no longer exists.
Could you please confirm if this is a known issue and whether the build configuration will be updated to compile mbstring directly with --enable-mbstring instead of relying on the missing external mbstring.so?
Thank you.
39
New Modules / CWP module for WHMCS - rewritten for PHP 8 / WHMCS 9 (drop-in, MIT)
« Last post by Watchdog on August 18, 2026, 06:48:48 AM »The official cwp7 module hasn't changed since 30 March 2020. WHMCS has shipped 15 releases since then and now requires PHP 8.2, so I rewrote it.
It's a drop-in replacement: same module name, same directory, same config option order. Existing server entries, products and services keep working with no reconfiguration.
https://github.com/bradleygb/whmcs-cwp-module
Why you'd switch
Running the 2020 module today, these are live faults, not style complaints:
What's in the rewrite
All of the above fixed. TLS verification on by default with optional certificate pinning. The API key masked in logs and stripped from CWP's own error text - CWP echoes it back inside "Unauthorized action". Autologin sessions minted on click through WHMCS single sign-on. Account creation given its own 180-second budget, and a creation that times out is reconciled rather than left as an orphaned account.
Added: MetaData, TestConnection, ServiceSingleSignOn, ListAccounts for Server Sync, live account detail on the admin service page, and a client area block that makes no API call while rendering - so an unreachable panel can't stall a customer's page.
Optionally, changing a service's Product/Service applies the package to CWP directly, with no second click.
Errors name the exact API Manager function and action when a permission is missing, which matters because CWP's internal permission names don't match its own labels - account/udp is checked as "accout_upd".
Requirements
WHMCS 8.5-9.0, PHP 7.4-8.3, curl and json. Tested on 7.4, 8.0, 8.1, 8.2 and 8.3. MIT licensed. Community module, not affiliated with the CWP project.
Install
Extract into modules/servers/ and press Test Connection. PERMISSIONS.md lists the exact API Manager grants - note the grid is per function and per action, and an action left off produces "Unauthorized action" even when the function looks enabled.
Upgrading: replace the directory contents, nothing else. One thing can stop a previously "working" install - TLS verification is now on. If CWP serves a certificate from a public CA on 2304 you're fine; if it's self-signed, the README covers pinning it.
Issues and pull requests welcome.
It's a drop-in replacement: same module name, same directory, same config option order. Existing server entries, products and services keep working with no reconfiguration.
https://github.com/bradleygb/whmcs-cwp-module
Why you'd switch
Running the 2020 module today, these are live faults, not style complaints:
- Disk and bandwidth reporting has never worked. It matches tblhosting.dedicatedip against CWP's ip_address, but dedicatedip is empty for every shared-IP account, so the query matches no rows. It also writes lastupdate with date('Y-m-d H:i:S') - capital S is PHP's ordinal suffix, producing "14:30:th", which MySQL rejects.
- Package changes don't work against current CWP. CWP has a dedicated /v1/changepack endpoint. The module posts to /v1/account with action=udp and the package suffixed "12@", where that endpoint documents a "@12" prefix. Nothing changes and WHMCS reports success.
- Resource limits aren't applied. CWP's add endpoint wants limit_nofile and limit_nproc; account/udp wants openfiles and processes. The module sends nofile and nproc, which neither accepts, so every account gets its package defaults.
- ChangePassword sends 'acction' instead of 'action'. The field never reaches CWP.
- A fatal TypeError in your daily cron. count() is called on the API payload without checking it's an array - on PHP 8 that aborts the cron run.
- The API key is written to the WHMCS Module Log in plaintext, and sent with CURLOPT_SSL_VERIFYPEER and VERIFYHOST both disabled.
- A live autologin URL is minted on every product-details page load and printed into the page HTML, where it persists in page source, browser history and referrer headers.
What's in the rewrite
All of the above fixed. TLS verification on by default with optional certificate pinning. The API key masked in logs and stripped from CWP's own error text - CWP echoes it back inside "Unauthorized action". Autologin sessions minted on click through WHMCS single sign-on. Account creation given its own 180-second budget, and a creation that times out is reconciled rather than left as an orphaned account.
Added: MetaData, TestConnection, ServiceSingleSignOn, ListAccounts for Server Sync, live account detail on the admin service page, and a client area block that makes no API call while rendering - so an unreachable panel can't stall a customer's page.
Optionally, changing a service's Product/Service applies the package to CWP directly, with no second click.
Errors name the exact API Manager function and action when a permission is missing, which matters because CWP's internal permission names don't match its own labels - account/udp is checked as "accout_upd".
Requirements
WHMCS 8.5-9.0, PHP 7.4-8.3, curl and json. Tested on 7.4, 8.0, 8.1, 8.2 and 8.3. MIT licensed. Community module, not affiliated with the CWP project.
Install
Extract into modules/servers/ and press Test Connection. PERMISSIONS.md lists the exact API Manager grants - note the grid is per function and per action, and an action left off produces "Unauthorized action" even when the function looks enabled.
Upgrading: replace the directory contents, nothing else. One thing can stop a previously "working" install - TLS verification is now on. If CWP serves a certificate from a public CA on 2304 you're fine; if it's self-signed, the README covers pinning it.
Issues and pull requests welcome.
40
PHP / Re: PHP-FPM Won't install zlib says missing dependency zlib-dir
« Last post by Netino on August 18, 2026, 05:19:44 AM »If you are trying to compile php-fpm84/5, simply click "Manage Options" next to php-8.4, then "Advanced Options" (Simple Editor), and change the settings. It appears the zlib compilation option has already been fixed:
What hasn't been fixed is the PHP Switcher, which lacks "Advanced Options/Simple Editor" for compilation settings. Consequently, it still has the issue of requiring compilation with zlib.
Code: [Select]
[zlib]
default=1
option="--with-zlib=/usr"
info-file=zlib.txt
include=zlib-dir
What hasn't been fixed is the PHP Switcher, which lacks "Advanced Options/Simple Editor" for compilation settings. Consequently, it still has the issue of requiring compilation with zlib.
Recent Posts