Contact Zend Technologies at http://www.zend.com/ for a later version of Zend OPcache

Bug Report Template

Description

Please provide a clear and concise description of the bug you encountered.

All cpcmd commands, and some others, return a message about Zend OPcache.

Steps to Reproduce

Please provide detailed steps to reproduce the bug. Include any necessary code snippets, commands, or configuration files.

[root@server1 ~]# cpcmd

Otherwise making changes in the ApisCP administrator panel, editing accounts for example. User activities are functioning as expected.

Expected Behavior

Describe what you expected to happen when the bug occurred.

I expect commands to be successful and not error out.

Actual Behavior

Describe what actually happened when the bug occurred.

[root@server1 ~]# cpcmd
Zend OPcache requires Zend Engine API version 420210902.
The Zend Engine API version 420230831 which is installed, is newer.
Contact Zend Technologies at http://www.zend.com/ for a later version of Zend OPcache.

Usage: cmd -u USER [options ...] -i | cmd [args ...]
  cmd   Command to execute in module_method format, including optional <args>
  --interactive         run interactively
  -m | --multi          separate multiple API commands with a semicolon (;) - cli input only!
  -l | --list-commands  list API commands available to role
----removed rest of output----

Adding cloudflare API key for DNS using the control panel,

    EditDomain command: /usr/local/apnscp/bin/EditDomain  --output=json  -c 'auth,tpasswd'='OY5D1cHOOk2Im0udrlK2DYGZlmUxP0DjhoTPbnktnIbU4sNF6Q0tNkh7N73pUadt' -c 'dns,enabled'='1' -c 'dns,provider'='cloudflare' -c 'dns,key'='OO1mgu5eftkARL0FN_w1tokry6AtD6nVMzg-mMls' 'site7'
    Util_Process::formatDataCallProc(): EditDomain: Zend OPcache requires Zend Engine API version 420210902.
    The Zend Engine API version 420230831 which is installed, is newer.
    Contact Zend Technologies at http://www.zend.com/ for a later version of Zend OPcache.

    ERROR  : Opcenter\Account\Edit::installServices(): failed verification on service `dns': Opcenter\Dns\Providers\Cloudflare\Validator::keyValid(): CF key failed: Invalid API Token
             0. Error_Reporter::append_msg("Opcenter\Dns\Providers\Cloudflare\Validator::keyValid(): CF key failed: Invalid API Token", ["Invalid API Token"], 16, null)
                [/usr/local/apnscp/lib/error_reporter.php:627]
             1. Error_Reporter::add_error("CF key failed: %s", ["Invalid API Token"])
                [/usr/local/apnscp/lib/log_wrapper.php:72]
             2. error("CF key failed: %s", "Invalid API Token")
                [/usr/local/apnscp/lib/Opcenter/Dns/Providers/Cloudflare/Validator.php:128]
             3. Opcenter\Dns\Providers\Cloudflare\Validator::keyValid(null, SensitiveParameterValue)
                [/usr/local/apnscp/lib/Opcenter/Dns/Providers/Cloudflare/Validator.php:39]
             4. Opcenter\Dns\Providers\Cloudflare\Validator->valid(Opcenter\Service\ConfigurationContext, SensitiveParameterValue)
                [/usr/local/apnscp/lib/Opcenter/Service/Validators/Dns/Key.php:63]
             5. Opcenter\Service\Validators\Dns\Key->valid(SensitiveParameterValue)
                [/usr/local/apnscp/lib/Opcenter/Service/ConfigurationContext.php:569]
             6. Opcenter\Service\ConfigurationContext->check("key", "OO1mgu5eftkARL0FN_w1tokry6AtD6nVMzg-mMls")
                [/usr/local/apnscp/lib/Opcenter/Service/ConfigurationContext.php:166]
             7. Opcenter\Service\ConfigurationContext->preflight()
                [/usr/local/apnscp/lib/Opcenter/SiteConfiguration.php:758]
             8. Opcenter\SiteConfiguration->verify("dns", Opcenter\Service\ConfigurationContext)
                [/usr/local/apnscp/lib/Opcenter/SiteConfiguration.php:677]
             9. Opcenter\SiteConfiguration->verifyAll()
                [/usr/local/apnscp/lib/Opcenter/Account/Edit.php:120]
            10. Opcenter\Account\Edit->installServices()
                [/usr/local/apnscp/lib/Opcenter/Account/Edit.php:88]
            11. Opcenter\Account\Edit->exec()
                [/usr/local/apnscp/bin/EditDomain:119]
    1 more message
        Admin_Module::edit_site(): Opcenter\Account\Edit::installServices(): failed verification on service `dns': Opcenter\Dns\Providers\Cloudflare\Validator::keyValid(): CF key failed: Invalid API Token


Environment

ApisCP version: cpcmd misc:cp-version

 cpcmd misc:cp-version
Zend OPcache requires Zend Engine API version 420210902.
The Zend Engine API version 420230831 which is installed, is newer.
Contact Zend Technologies at http://www.zend.com/ for a later version of Zend OPcache.

revision: 4a49072c7df6ea8216258c5f8809f15a4aea4e76
timestamp: 1765698080
ver_maj: 3
ver_min: 2
ver_patch: 48
ver_pre: 35-g4a49072c7
dirty: false
debug: false

Operating System: uname -r

 uname -r
4.18.0-553.5.1.el8.x86_64

Additional relevant information (e.g., PHP version, database, etc.):

Additional Information

Provide any additional information about the bug, such as error messages, logs, screenshots, or any other relevant details.

Second server was working… Attempted to migrate a site from one server to the other, it failed (missed the ignore DNS command option) and now the second server is doing the same.

Might be related but probably not (because second server doesn’t have this issue).

fail2ban is failing to start. Fail2ban being failed doesn’t bother me, but adding it in case it turns out to be related, and it did start around the same time.

[root@server1 ~]# systemctl status fail2ban
● fail2ban.service - Fail2Ban Service
   Loaded: loaded (/usr/lib/systemd/system/fail2ban.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/fail2ban.service.d
           └─override.conf
   Active: failed (Result: exit-code) since Sun 2025-12-28 10:06:54 CST; 11h ago
     Docs: man:fail2ban(1)
 Main PID: 622368 (code=exited, status=255)

Dec 28 10:06:53 server1 systemd[1]: Starting Fail2Ban Service...
Dec 28 10:06:53 server1 systemd[1]: Started Fail2Ban Service.
Dec 28 10:06:54 server1 fail2ban-server[622368]: 2025-12-28 10:06:54,130 fail2ban.configreader   [622368]: WARNING 'allowipv6' not defined in 'Definition'. Using default one: 'auto'
Dec 28 10:06:54 server1 fail2ban-server[622368]: 2025-12-28 10:06:54,190 fail2ban                [622368]: ERROR   Failed during configuration: Have not found any log file for recidive jail
Dec 28 10:06:54 server1 fail2ban-server[622368]: 2025-12-28 10:06:54,191 fail2ban                [622368]: ERROR   Async configuration of server failed
Dec 28 10:06:54 server1 systemd[1]: fail2ban.service: Main process exited, code=exited, status=255/n/a
Dec 28 10:06:54 server1 systemd[1]: fail2ban.service: Failed with result 'exit-code'.
lines 1-15/15 (END)


What does upcp -sbf report?

PLAY [localhost] *********************************************************************************************************************************************************************
included: /usr/local/apnscp/resources/playbooks/roles/filesystem/make-mounts/tasks/enable-quotas.yml for localhost
included: /usr/local/apnscp/resources/playbooks/roles/filesystem/make-mounts/tasks/set-mount-features.yml for localhost
included: /usr/local/apnscp/resources/playbooks/roles/common/tasks/write-config.yml for localhost
included: /usr/local/apnscp/resources/playbooks/roles/packages/install/tasks/configure-default-vars.yml for localhost
included: /usr/local/apnscp/resources/playbooks/roles/packages/install/tasks/centos8-dnf.yml for localhost
included: /usr/local/apnscp/resources/playbooks/roles/packages/install/tasks/disable-appstream.yml for localhost
included: /usr/local/apnscp/resources/playbooks/roles/packages/install/tasks/disable-appstream.yml for localhost
included: /usr/local/apnscp/resources/playbooks/roles/packages/install/tasks/disable-appstream.yml for localhost
included: /usr/local/apnscp/resources/playbooks/roles/packages/install/tasks/disable-appstream.yml for localhost
included: /usr/local/apnscp/resources/playbooks/roles/packages/install/tasks/disable-appstream.yml for localhost
FAILED - RETRYING: Install packages (2 retries left).
FAILED - RETRYING: Install packages (1 retries left).

TASK [packages/install : Install packages] *******************************************************************************************************************************************
fatal: [localhost]: FAILED! => {"attempts": 2, "changed": false, "msg": "Failed to download metadata for repo 'baseos': Cannot prepare internal mirrorlist: No URLs in mirrorlist", "rc": 1, "results": []}

PLAY RECAP ***************************************************************************************************************************************************************************
localhost                  : ok=94   changed=0    unreachable=0    failed=1    skipped=80   rescued=0    ignored=0

grep -rsl /etc/yum.repos.d

Locate the file that has the following empty definition:

[baseos]
; Nothing else...

[some-other-repo]
mirrorlist=http://x.y.z

Then remove that sole line, [baseos]. Run upcp -sbf again, should be good to go.

cat CentOS-Stream-BaseOS.repo
# CentOS-Stream-BaseOS.repo
#
# The mirrorlist system uses the connecting IP address of the client and the
# update status of each mirror to pick current mirrors that are geographically
# close to the client.  You should use this for CentOS updates unless you are
# manually picking other mirrors.
#
# If the mirrorlist does not work for you, you can try the commented out
# baseurl line instead.

[baseos]
name=CentOS Stream $releasever - BaseOS
mirrorlist=http://archive.kernel.org/centos-vault/?release=$stream&arch=$basearch&repo=BaseOS&infra=$infra
#baseurl=http://mirror.centos.org/$contentdir/$stream/BaseOS/$basearch/os/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

Alright… I will admit that I would have never thought to look at repos with enabled=0

Still failed,

upcp -sbf

PLAY [localhost] *********************************************************************************************************************************************************************
included: /usr/local/apnscp/resources/playbooks/roles/filesystem/make-mounts/tasks/enable-quotas.yml for localhost
included: /usr/local/apnscp/resources/playbooks/roles/filesystem/make-mounts/tasks/set-mount-features.yml for localhost
included: /usr/local/apnscp/resources/playbooks/roles/common/tasks/write-config.yml for localhost
included: /usr/local/apnscp/resources/playbooks/roles/packages/install/tasks/configure-default-vars.yml for localhost
included: /usr/local/apnscp/resources/playbooks/roles/packages/install/tasks/centos8-dnf.yml for localhost
included: /usr/local/apnscp/resources/playbooks/roles/packages/install/tasks/disable-appstream.yml for localhost
included: /usr/local/apnscp/resources/playbooks/roles/packages/install/tasks/disable-appstream.yml for localhost
included: /usr/local/apnscp/resources/playbooks/roles/packages/install/tasks/disable-appstream.yml for localhost
included: /usr/local/apnscp/resources/playbooks/roles/packages/install/tasks/disable-appstream.yml for localhost
included: /usr/local/apnscp/resources/playbooks/roles/packages/install/tasks/disable-appstream.yml for localhost
FAILED - RETRYING: Install packages (2 retries left).
FAILED - RETRYING: Install packages (1 retries left).

TASK [packages/install : Install packages] *******************************************************************************************************************************************
fatal: [localhost]: FAILED! => {"attempts": 2, "changed": false, "msg": "Failed to download metadata for repo 'mariadb': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried", "rc": 1, "results": []}

PLAY RECAP ***************************************************************************************************************************************************************************
localhost                  : ok=94   changed=0    unreachable=0    failed=1    skipped=80   rescued=0    ignored=0

Will repeat with mariadb and see what happens…

Seems to actually be running now. :smiley: Thank you!

TASK [apnscp/bootstrap : Setting pagespeed => enabled = True] ************************************************************************************************************************
changed: [localhost]
included: /usr/local/apnscp/resources/playbooks/roles/apnscp/initialize-filesystem-template/tasks/install-package.yml for localhost
included: /usr/local/apnscp/resources/playbooks/roles/apnscp/initialize-filesystem-template/tasks/install-package.yml for localhost
included: /usr/local/apnscp/resources/playbooks/roles/apnscp/initialize-filesystem-template/tasks/install-package.yml for localhost

TASK [apnscp/initialize-filesystem-template : Install acl alsa-lib apr-util apr aspell audit-libs avahi-libs bash bc bind-libs bind-libs-lite bind-utils boost brotli bzip2-libs bzip2 ca-certificates cairo c-ares chkconfig libtidy coreutils courier-unicode cpio cracklib-dicts cracklib crontabs cups-libs curl cyrus-sasl-lib cyrus-sasl dbus-libs diffutils dos2unix e2fsprogs-libs e2fsprogs elfutils-libelf elfutils-libs expat fcgi fetchmail file-libs file findutils fontconfig freetype fribidi ftp gawk gdbm gd gdk-pixbuf2 GeoIP gettext-libs gettext ghostscript giflib git glib2 glibc-common glibc-static glibc gmp gnutls-c++ gnutls-dane gnutls gpgme graphite2 grep groff-base gsl gzip harfbuzz icu ImageMagick-c++ ImageMagick info iputils jasper-libs jbigkit-libs jemalloc keyutils-libs krb5-libs lcms2 less libacl libaio libargon2 libattr libblkid libcap-ng libcap libc-client libcgroup-pam libcgroup-tools libcgroup libcom_err libcurl libdb libevent libffi libgcc libgcrypt libgfortran libgomp libgpg-error libICE libicu libidn libidn2 libjpeg-turbo libmetalink libmount libmpc libnghttp2 libpipeline libpng libpsl libpwquality libquadmath librsvg2 libselinux libsemanage libsepol libsodium libSM libss libstdc++ libtasn1 libthai libtiff libtool-ltdl libunistring libunwind libusb libuser libutempter libuuid libwebp libX11 libXau libxcb libXdmcp libXext libxml2 libXmu libXpm libXrender libxslt libXt libyaml libzip libzstd lmdb-libs lm_sensors-libs logrotate lua lz4 maildrop man-db man-pages MariaDB-client MariaDB-common MariaDB-shared mpfr ncftp ncurses-libs ncurses net-snmp-agent-libs net-snmp-libs net-snmp nettle net-tools nspr nss-softokn-freebl nss-softokn nss-sysinit nss-util nss oniguruma openjpeg2 openldap-devel openldap openssl-libs openssl p11-kit-trust p11-kit pam-devel pam pam-apnscp pango passwd patch pcre2 perl perl-CPAN perl-CGI pixman poppler popt postfix postgresql12-contrib postgresql12-devel postgresql12-libs procps-ng npth python3-pyOpenSSL python3-cryptography python3-pip python3-libs python3-setuptools python36 pyzor qrencode-libs qrencode quota readline rpm-libs sed setup shadow-utils source-highlight sqlite systemd-libs tar tcl tcsh telnet tmpwatch traceroute tree trousers tzdata unixODBC unzip urw-base35-fonts util-linux wget which xz-devel xz-libs xz yaml-cpp zip into FST/siteinfo] ***
changed: [localhost]

TASK [apnscp/initialize-filesystem-template : Install aspell-devel autoconf automake bash-completion binutils bison boost-atomic boost-chrono boost-context boost-date-time boost-devel boost-filesystem boost-graph boost-iostreams boost-locale boost-math boost-program-options boost-python3 boost-random boost-regex boost-serialization boost-system boost-test boost-thread boost-timer boost-wave byacc bzip2-devel c-ares-devel libtidy-devel cpp cronie cyrus-sasl-devel e2fsprogs-devel elinks emacs-common emacs-nox expat-devel expect file-devel freetype-devel gcc-c++ gcc gd-devel gettext-devel libgs-devel giflib-devel git-daemon glibc-devel glibc-headers glibc-utils gmp-devel gnutls-devel gperftools-libs gpm-libs gsl-devel ImageMagick-c++-devel ImageMagick-devel kernel-headers krb5-devel lcms2-devel libargon2-devel libassuan libblkid-devel libcom_err-devel libcurl-devel libdb-devel libdrm libedit libffi-devel libgcrypt-devel libgpg-error-devel libICE-devel libicu-devel libidn-devel libidn2-devel libjpeg-turbo-devel libmemcached-devel libmemcached libnghttp2-devel libpcap libpng-devel libproxy libSM-devel libsodium-devel libstdc++-devel libstemmer libtasn1-devel libtool-ltdl-devel libtool libuuid-devel libwebp-devel libXdamage libXext-devel libXfixes libxml2-devel libXmu-devel libXpm-devel libXrender-devel libxslt-devel libXt-devel libXxf86vm libyaml-devel libzip-devel libzstd-devel lm_sensors-devel lsof m4 make MariaDB-devel memcached mercurial mesa-libEGL mesa-libgbm mesa-libglapi mesa-libGL mutt nano ncurses-base ncurses-devel net-snmp-devel nspr-devel oniguruma-devel openjpeg2-devel openssh-clients openssh openssh-server openssl-devel p11-kit-devel pixman-devel pkgconfig postgresql12 python3-devel python3-virtualenv readline-devel redis rsync screen snappy sqlite-devel strace tcl-devel tmux tokyocabinet unixODBC-devel vim-common vim-minimal Xaw3d xmlto zlib-devel zsh into FST/ssh] ***
fatal: [localhost]: FAILED! => {"changed": false, "cmd": ["/usr/local/apnscp/bin/php-bins/php", "/usr/local/apnscp/bin/scripts/yum-post.php", "install", "--force", "aspell-devel", "autoconf", "automake", "bash-completion", "binutils", "bison", 

The FAILED! message continued for 4 million characters… By far the longest error message I have ever seen…

\Synchronizer\\Install::run(): package `bash-completion' already installed under `siteinfo'"], "stdout": "", "stdout_lines": []}

PLAY RECAP ***************************************************************************************************************************************************************************
localhost                  : ok=695  changed=54   unreachable=0    failed=1    skipped=344  rescued=0    ignored=0

So progress? It did get further…

Stream 8 went EOL May 2024. It’s unsuitable as a long-term OS. I’d recommend using Leapp to convert your distro to Alma or Rocky 8.

This doesn’t mention anything salient. I’d need to see the 4 million character error message for anything actionable.

I did post the beginning and the end,

Here is the full output.
upcp.txt (3.8 MB)

Otherwise, yes… At this point in time, trying to use the site-transfer to migrate the sites to another server and will update the OS to one of the 10.x versions that ApisCP now works with. :slight_smile:

cd /usr/local/apnscp
./bin/scripts/yum-post.php remove bash-completion

Give it a go again. Once you’re in a steadystate, move to Alma or Rocky 8 (or 9).

[root@server1 ~]# cd /usr/local/apnscp
[root@server1 apnscp]# ./bin/scripts/yum-post.php remove bash-completion
Cannot load the ionCube PHP Loader - it was built with configuration API420210902,NTS, whereas running engine is API420230831,NTS
Zend OPcache requires Zend Engine API version 420210902.
The Zend Engine API version 420230831 which is installed, is newer.
Contact Zend Technologies at http://www.zend.com/ for a later version of Zend OPcache.


upcp -sbf is running again now, will update later when it finishes.

Is that “safe” to do on an established, not freshly installed system?

May not have a choice but to try it and hope for the best. That is what full-system restores are for eh? :slight_smile:

Update:

It did finish without errors. :smiley:

PLAY RECAP ***************************************************************************************************************************************************************************
localhost                  : ok=1999 changed=140  unreachable=0    failed=0    skipped=917  rescued=0    ignored=1


Zend message no longer appears… Interesting that the prompt did change to server1 from the domain since the beginning of this thread.

[root@server1 apnscp]# cpcmd
Usage: cmd -u USER [options ...] -i | cmd [args ...]
  cmd   Command to execute in module_method format, including optional <args>
  --interactive         run interactively
  -m | --multi          separate multiple API commands with a semicolon (;) - cli input only!
  -l | --list-commands  list API commands available to role
  UNIVERSAL ARGUMENTS
  -u    Username
  -p    Password to use.  If none is given, then read from tty.

Fail2ban is running again now.

8 is still recommended/preferred then, not 9 (or 10)? Is there a preference for Alma or Rocky?

Thank you again!!