Below is a Complete Guide to fix your PHP 8.2 missing error (Unable to locate package) and properly install PHP 8.2, required extensions, and Composer for your Laravel project on Ubuntu/Linux Server. This will also help you avoid the “mbstring extension is missing” error in Composer.
Error:
root@ip-111-20-60-60:/opt/lampp/htdocs# sudo apt install php8.2-cli php8.2-mbstring php8.2-xml
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package php8.2-cli
E: Couldn't find any package by glob 'php8.2-cli'
E: Unable to locate package php8.2-mbstring
E: Couldn't find any package by glob 'php8.2-mbstring'
E: Unable to locate package php8.2-xml
E: Couldn't find any package by glob 'php8.2-xml'

✅ Step-by-Step Guide to Fix PHP 8.2 & Missing Extensions Error
⚠️ Why This Error Happens
Ubuntu’s default package repositories often do not include PHP 8.2, especially on older versions of Ubuntu (20.04, 22.04). To get PHP 8.2, you need to add a special PHP PPA (Personal Package Archive) maintained by Ondřej Surý, a trusted PHP package maintainer.
📖 Step 1 – Add the PHP PPA (Trusted Source)
Run the following commands to add the PPA that contains PHP 8.2 packages.
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
📖 Step 2 – Install PHP 8.2 and Required Extensions
Once the PPA is added, you can install PHP 8.2 and all the necessary extensions.
sudo apt install php8.2-cli php8.2-mbstring php8.2-xml php8.2-curl php8.2-zip unzip curl
Explanation
- php8.2-cli – Command Line PHP (for running
php
commands) - php8.2-mbstring – Required by Laravel and Composer
- php8.2-xml – Required for parsing XML files
- php8.2-curl – Required for downloading packages
- php8.2-zip – Required for extracting Laravel packages
- unzip – Needed for Composer
- curl – Needed to download Composer
📖 Step 3 – Verify PHP Installation
To confirm PHP 8.2 is installed, run:
php -v
You should see output like:
PHP 8.2.x (cli) (built: ...)
📖 Step 4 – Install Composer (Globally)
Download and install Composer (works with system PHP 8.2).
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer
Verify Composer is working:
composer --version
You should see:
Composer version 2.x.x
📖 Step 5 – Use System PHP for Composer in Your Laravel Project
If your project is inside /opt/lampp/htdocs
(XAMPP directory), you need to tell Composer to use system PHP (not XAMPP’s PHP).
To install Laravel dependencies:
cd /opt/lampp/htdocs/your-laravel-project
/usr/bin/php /usr/local/bin/composer install
This ensures system PHP 8.2 (with all extensions) is used instead of XAMPP’s PHP.
📖 Step 6 (Optional) – Make System PHP Default (If You Want)
If you want to make system PHP 8.2 the default PHP everywhere, you can change the $PATH
in your user profile.
Edit your .bashrc
file:
nano ~/.bashrc
Add this at the end:
export PATH=/usr/bin:$PATH
Save and reload:
source ~/.bashrc
This will ensure running php
always uses system PHP 8.2, not XAMPP PHP.
🔔 Why This is Recommended
- ✅ System PHP is better for CLI work (Composer, Artisan commands).
- ✅ XAMPP PHP is often missing important extensions like
mbstring
,iconv
, etc. - ✅ System PHP gets regular security updates via
apt update
.
✅ Complete Command Summary
# 1. Update system and add PHP PPA
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
# 2. Install PHP 8.2 and required extensions
sudo apt install php8.2-cli php8.2-mbstring php8.2-xml php8.2-curl php8.2-zip unzip curl
# 3. Verify PHP
php -v
# 4. Install Composer globally
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer
# 5. Check Composer
composer --version
# 6. Run Composer in Laravel project using system PHP
cd /opt/lampp/htdocs/your-laravel-project
/usr/bin/php /usr/local/bin/composer install