In a high-density web hosting environment, the modern developer’s toolkit—Node.js, NPM, Composer, and Redis—is no longer an optional “extra” but a baseline requirement for deploying performant PHP and JavaScript applications. However, on a cPanel infrastructure hardened with CloudLinux and Virtual Environments (LVE), providing these tools globally presents a unique challenge: balancing developer flexibility with the strict isolation of CageFS.

This article outlines the professional approach to orchestrating a global development stack. We will move beyond basic installations to focus on the systematic configuration of symlinks, the mapping of CageFS paths, and the critical security layers required to prevent “noisy neighbor” syndrome in a multi-tenant ecosystem.

Core Components of the Stack

  • Node.js & NPM: Providing both EA-Nodejs (cPanel native) and Alt-Nodejs (CloudLinux Selector) versions to cater to different application requirements.
  • Composer: The industry standard for PHP dependency management, optimized for global execution.
  • Redis: Leveraging a persistent, in-memory data structure store to drastically reduce database load and improve application response times.
  • CageFS Integration: Ensuring that while these tools are “global,” they remain securely encapsulated within each user’s private environment.

Why Global Access Matters

Without global configuration, users are often forced into manual path exports or local installations that consume unnecessary disk space and create support overhead. By centralizing these binaries, you ensure:

  • Standardization: Every user operates on the same vetted versions.
  • Simplicity: Commands like node -v or composer install “just work” out of the box.
  • Performance: Proper CageFS mapping ensures no latency penalty when entering the virtualized environment.
Continue reading

Taking Back Control: Granular Sitejet Management on cPanel Servers

The hosting landscape is constantly evolving. Recently, WebPros has heavily integrated Sitejet into the core cPanel experience. While Sitejet is a powerful builder, it’s not the right fit for every hosting provider. Many companies have already invested in competing site builders, prefer to keep their interface lightweight, or are looking forward to WebPros’ own upcoming “Nova” builder and don’t want to invest in Sitejet in the interim.

The challenge for sysadmins is that simply disabling Sitejet globally via the WHM Feature Manager does not affect already deployed websites, but it does prevent customers who are still developing and continuously editing their published Sitejet sites from using the editor. To avoid back-and-forth support tickets to re-enable the editor for those users, we need a way to opt out new users while keeping active users’ editors functional.

Continue reading

When some users switch to a new email naming policy, they may need to duplicate email content. This process can be very demanding in terms of inodes and memory space.

In my experience, one client had over a hundred addresses. They needed to retain the old email addresses while maintaining a complete history of previous emails and setting up forwarding.

The transitions were as follows:

  • ceo@example.com => firstname1.lastname1@example.com
  • hr@example.com => firstname2.lastname2@example.com
  • it@example.com => firstname3.lastname3@example.com, firstname4.lastname4@example.com

We use Maildir, and to avoid content redundancy. I wrote a basic script with the understanding that mail operations won’t alter the original emails. As the user can only:

  • Remove the email message, which will result in the removal of the symlink.
  • Or move the email message from one directory to another (e.g., Inbox => Archive, or Trash); which will be interpreted as moving the symbolic link to the directories .archives/cur or .trash/. Since we use full paths to describe the links, this won’t cause any issues and won’t alter the original files.

I have also excluded some maildir system files from being linked, starting usually with dovecot* or maildir*.

The script usage is straightforward:

./mailinker.sh mycpuser oldbox@example.com newbox@example.com
Continue reading

Many companies primarily use webmails and adhere to specific standards for email format, footer, and font. And while custom fonts can be utilized in local email clients (such as Outlook or ThunderBird), open webmail services predominantly support web-safe fonts. These are fonts that are available across the different web platforms and remain consistent with the original font. Besides this, there might be some variations in their support for other common fonts, such as Times New Roman.

Continue reading

Centova can be installed with cPanel/WHM. but if you are using CSF, you will have to add the needed ports:

https://centova.com/en/faq/cast3/information/configuring_a_firewall_for_centova_cast

However, This is not enough. Centova error:

 Unable to access account for username: Cluster host connection failure for Local server: Connection refused (111)

because LFD may block Centova daemons. If you are using WHM, check ConfigServer Security & Firewall > Watch system logs of lfd (/var/log/lfd.log).

Continue reading

Amongst the PHP malwares targeting WP plugins’ vulnerabilities I encounter, some generate hundred of thousand of empty files with 0KB size in all folders and sub-folders recursively . which create diversion and affects the inodes capacity of an account. But diversion may not the only goal. as they are generated through an obfuscated code, so I can imagine that these filenames may be part of an obfuscation process. Instead of writing the directives directly in a PHP or text file, the information is gathered through the listing and ordering of the filenames, possible no? Or maybe I’m over-complicating it.
Continue reading

من المشاكل المسببة لتوقف المواقع بشكل متكرر أو بطئها: انحصار الموارد الحية (CPU/RAM) بحيث لا يقدر حسابكم أو خادمكم الخاص على معالجة طلبات أخرى بسبب امتلاء طابور أعماله الحالية وتحميله فوق طاقته مثل:

  • تزامن عدد كبير من الزيارات في آن واحد في حين أن خطة الاستضافة قد تتضمن ذاكرة حية بقدر 1G RAM و ربما نواة معالجة واحدة vCPU. مع موقع معقد برمجيا بحيث يتطلب توليد الصفحة الواحدة، موارد كبيرة قد تصل إلى ربع موارد كامل الحساب ما يحصر عدد الزيارات الممكنة في ذات الوقت.

وهو ما قد يترجم بأخطاء مثل HTTP 503 أو أخطاء الاتصال بقاعدة البيانات، لذلك تحتاجون لفحص على مستويات متعددة.Continue reading