DEV Community

Cover image for Hack Shared Hosting: Use Composer 2 + PHP 8.3 Without Root Access!
Ketut Dana
Ketut Dana

Posted on

Hack Shared Hosting: Use Composer 2 + PHP 8.3 Without Root Access!

Because sometimes, all you need is a modern dev environment — and your hosting provider says no 😤

The Shared Hosting Problem

If you're on a typical shared hosting (especially with cPanel):

❌ Composer is stuck at version 1.x

❌ CLI PHP version is ancient (sometimes PHP 5.6 🤯)

❌ You can't install tools globally or change system settings

But you need Composer 2 and PHP 8.3+ to run modern frameworks like Laravel, Symfony, or even custom ones.

What You’ll Achieve

Without root, you’ll get:

✅ PHP 8.3 CLI — not just for .htaccess, but for terminal too
✅ Composer 2.8+ installed globally (in your user space)
✅ A persistent setup (survives logout or server reboot)

Step 1: Create a Local ~/bin Folder

 mkdir -p ~/bin 
Enter fullscreen mode Exit fullscreen mode

This is where we'll install your personal Composer binary.

Step 2: Install Composer 2 Locally

 cd ~/bin php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php composer-setup.php --install-dir=~/bin --filename=composer php -r "unlink('composer-setup.php');" 
Enter fullscreen mode Exit fullscreen mode

✅ This will install composer into ~/bin/composer.

Make sure you're using the correct PHP binary (we’ll handle that next).

Step 3: Add ~/bin to Your Shell PATH

Edit ~/.bashrc and add this line:

 export PATH="$HOME/bin:$PATH" 
Enter fullscreen mode Exit fullscreen mode

Or via terminal:

 echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc 
Enter fullscreen mode Exit fullscreen mode

This makes your local composer override any global one.

Step 4: Ensure .bashrc Loads on Login

If you're using ~/.bash_profile, make sure it sources .bashrc:

 echo 'source ~/.bashrc' >> ~/.bash_profile 
Enter fullscreen mode Exit fullscreen mode

Step 5: Use the PHP Version You Want (e.g., PHP 8.3)

Most shared hostings offer multiple PHP versions stored in /opt/alt/, such as:

 /opt/alt/php83/usr/bin/php 
Enter fullscreen mode Exit fullscreen mode

To use PHP 8.3:

 alias php='/opt/alt/php83/usr/bin/php' 
Enter fullscreen mode Exit fullscreen mode

To make this permanent:

 echo "alias php='/opt/alt/php83/usr/bin/php'" >> ~/.bashrc 
Enter fullscreen mode Exit fullscreen mode

Now every php command will use PHP 8.3.

Final Step: Reload Shell

 source ~/.bashrc 
Enter fullscreen mode Exit fullscreen mode

Or logout and SSH back in.

Test Your Setup

 which php php -v which composer composer -V 
Enter fullscreen mode Exit fullscreen mode

Expected output:

 ~/bin/composer Composer version 2.8.x PHP version 8.3.x (/opt/alt/php83/usr/bin/php) 
Enter fullscreen mode Exit fullscreen mode

Why This Works

Shared hosting doesn’t restrict what you do inside your own home directory

  • We installed Composer locally and adjusted your shell environment
  • We aliased php to point to the correct version
  • No root required, nothing breaks the server
  • You just created your own dev environment inside a locked-down system .

Final Words

You just outsmarted your shared hosting provider.
PHP 8.3 and Composer 2 — on your terms, no root, no VPS, no extra cost.

If this helped you, share it with fellow devs.
Because we all deserve a real dev environment, even on the cheapest hosting plans.

Happy Coding!

image credit : Designed by fullvector / Freepik

Top comments (0)