PIE 1.5: PHP Extension Installs in CI Explained | Mohamed Said       [Skip to content](#main)  [ ![](https://cdn.msaied.com/01KT78WE565VEMM3PSNQAAB0MH.png) Mohamed SaidLaravel Backend Engineer ](https://www.msaied.com) - [Home](https://www.msaied.com)
- [Projects](https://www.msaied.com/projects)
- [Articles](https://www.msaied.com/articles)
- [Certificates](https://www.msaied.com/certificates)
- [About](https://www.msaied.com#about)

           [  Contact](https://www.msaied.com#contact) Menu 

Menu
----

Close 

 - [HomeStart here](https://www.msaied.com)
- [ProjectsCase studies](https://www.msaied.com/projects)
- [ArticlesEngineering notes](https://www.msaied.com/articles)
- [CertificatesCredentials](https://www.msaied.com/certificates)
- [AboutHow I work](https://www.msaied.com#about)
- [ContactGet in touch](https://www.msaied.com#contact)

  [Start a conversation](https://www.msaied.com#contact) [WhatsApp](https://wa.me/201094619204) [Email](mailto:hello@msaied.com) 

 1. [Home](https://www.msaied.com)
2. /
3. [Articles](https://www.msaied.com/articles)
4. /
5. [Laravel](https://www.msaied.com/articles?category=laravel)
6. /
7. PIE 1.5 Changes PHP Extension Installs in CI

   [Laravel](https://www.msaied.com/articles?category=laravel) [PHP](https://www.msaied.com/articles?category=php) 

 PIE 1.5 Changes PHP Extension Installs in CI
=============================================

 PIE 1.5 deprecates the automatic package-selection flag for unattended installs, adds a bulk install command, introduces `pie upgrade`, and ships `pie search` and `pie check-build-tools` to streamline CI pipelines.

 ![](https://cdn.msaied.com/01M22N44A70A5MC2S599JP0MPH.webp) [Mohamed Said](https://www.msaied.com#person) Published 2 Nov 2026 · Updated 3 Nov 2026 · 3 min read

ShareCopy linkCopied

 ![PIE 1.5 Changes PHP Extension Installs in CI](https://cdn.msaied.com/814/db8ca6495138bff986574ce8d55b775e.png) 

  On this page +1. [PIE 1.5 Changes PHP Extension Installs in CI](#pie-15-changes-php-extension-installs-in-ci)
2. [What Changed with Unattended Project Installs](#what-changed-with-unattended-project-installs)
3. [Keeping Dev Extensions Out of Production](#keeping-dev-extensions-out-of-production)
4. [New pie upgrade Command](#new-codepie-upgradecode-command)
5. [Bulk Installs and New Helper Commands](#bulk-installs-and-new-helper-commands)
6. [Key Takeaways](#key-takeaways)

 PIE 1.5 Changes PHP Extension Installs in CI
--------------------------------------------

The [PHP Installer for Extensions (PIE)](https://laravel-news.com/pie) reached version 1.5 with several changes that directly affect CI pipelines. The most important one: the flag that previously let PIE pick packages automatically during unattended project installs is now deprecated and ignored. If your build scripts relied on it, they will fail until you update them.

What Changed with Unattended Project Installs
---------------------------------------------

When you run `pie install` from a project directory without package arguments, PIE reads the `ext-*` entries in `composer.json`. In earlier versions you could pass `--allow-non-interactive-project-install` to let PIE resolve packages on its own. In 1.5 that flag has no effect.

For each extension that requires a package choice, you must now supply a `--select` mapping:

```bash
pie install --no-interaction --no-dev \
    --select=redis=phpredis/phpredis

```

The format is `extension-name=vendor/package` — drop the `ext-` prefix on the left side. PIE checks whether the extension is already present and installs the named package only if needed. Add one `--select` per extension that needs an explicit choice.

This change applies only to project-based installs. A direct command such as `pie install phpredis/phpredis` already names its package and is unaffected.

Keeping Dev Extensions Out of Production
----------------------------------------

PIE respects `require-dev` entries by default. Pass `--no-dev` to skip them during a production build:

```bash
pie install --no-interaction --no-dev \
    --select=redis=phpredis/phpredis

```

For a development environment that needs both PhpRedis and Xdebug:

```bash
pie install --no-interaction \
    --select=redis=phpredis/phpredis \
    --select=xdebug=xdebug/xdebug

```

`--no-dev` skips the check for dev-only extensions. It does not uninstall anything already present in PHP, and it is separate from `composer install --no-dev` for your application packages.

New `pie upgrade` Command
-------------------------

PIE 1.5 adds a dedicated upgrade command for extensions installed through PIE:

```bash
pie upgrade

```

It honours the version constraints recorded at install time. For example, if you installed PhpRedis with a constraint:

```bash
pie install 'phpredis/phpredis:^6.0'

```

Subsequent `pie upgrade` runs can install any matching 6.x release. Moving to 7.x requires updating the constraint explicitly. Configure options are carried across upgrades automatically.

Bulk Installs and New Helper Commands
-------------------------------------

For Dockerfile-style builds that name packages directly, PIE now accepts multiple packages in a single command:

```bash
pie install phpredis/phpredis xdebug/xdebug

```

Two new helper commands round out the release:

- **`pie search`** — find package names before writing install commands.
- **`pie check-build-tools`** — verify that required build dependencies are present before attempting an install in non-interactive mode.

The release also updates PIE's attestation verification library.

Key Takeaways
-------------

- `--allow-non-interactive-project-install` is deprecated and ignored in PIE 1.5; replace it with explicit `--select=ext=vendor/package` flags.
- Use `--no-dev` to exclude `require-dev` extension checks from production builds.
- `pie upgrade` maintains installed extensions within their recorded version constraints.
- Multiple packages can now be installed in one `pie install` command.
- `pie check-build-tools` helps validate CI environments before running installs.

---

*Source: [PIE 1.5 Changes PHP Extension Installs in CI — Laravel News](https://laravel-news.com/pie-1-5)*

- [PHP](https://www.msaied.com/articles?search=PHP)
- [PIE](https://www.msaied.com/articles?search=PIE)
- [CI/CD](https://www.msaied.com/articles?search=CI%2FCD)
- [PHP Extensions](https://www.msaied.com/articles?search=PHP%20Extensions)
- [Laravel](https://www.msaied.com/articles?search=Laravel)
- [DevOps](https://www.msaied.com/articles?search=DevOps)

 Frequently asked questions 
---------------------------

  Why does my CI build fail after upgrading to PIE 1.5?PIE 1.5 deprecates and ignores the `--allow-non-interactive-project-install` flag. Any extension that requires a package choice will now cause an unattended project install to fail unless you supply an explicit `--select=extension=vendor/package` argument for it.

   How do I exclude Xdebug and other dev extensions from a production PIE install?Pass `--no-dev` to `pie install`. This tells PIE to skip the `require-dev` extension entries in `composer.json` during the project check, so only production extensions are evaluated.

   What does `pie upgrade` do and how does it differ from reinstalling an extension?`pie upgrade` updates extensions that were installed through PIE while respecting the version constraints recorded at install time. It carries configure options across upgrades and does not affect your application's Composer packages or the Laravel `vendor` directory.

   ![Mohamed Said](https://cdn.msaied.com/01M22N44A70A5MC2S599JP0MPH.webp)About the author
----------------

[Mohamed Said](https://www.msaied.com#person)Senior Backend Engineer specializing in Laravel, scalable SaaS platforms, APIs, and cloud infrastructure. I build secure, high-performance web applications that help businesses grow.

[About](https://www.msaied.com#about) [GitHub ↗](https://github.com/EG-Mohamed) [LinkedIn ↗](https://www.linkedin.com/in/msaiedm/) [WhatsApp ↗](https://wa.me/201094619204) [Email Address ↗](mailto:hello@msaied.com) [My CV ↗](https://drive.google.com/file/u/0/d/1MF20IPRJyzfy32mhEutjL5EpSls0w2Q8/view)  

   [Previous articlePollora: Run WordPress Inside a Laravel Application](https://www.msaied.com/articles/pollora-run-wordpress-inside-a-laravel-application)  

   On this page
-------------

1. [PIE 1.5 Changes PHP Extension Installs in CI](#pie-15-changes-php-extension-installs-in-ci)
2. [What Changed with Unattended Project Installs](#what-changed-with-unattended-project-installs)
3. [Keeping Dev Extensions Out of Production](#keeping-dev-extensions-out-of-production)
4. [New pie upgrade Command](#new-codepie-upgradecode-command)
5. [Bulk Installs and New Helper Commands](#bulk-installs-and-new-helper-commands)
6. [Key Takeaways](#key-takeaways)

 ###  Have a technical challenge?

 Tell me what you’re building. I reply within two working days.

[Start a conversation](https://www.msaied.com#contact) 

   Related articles
-----------------

 [ ![](https://cdn.msaied.com/812/aa4ad01a8367beed63fe5ee9c09ef940.png) Laravel · 4 min read### Pollora: Run WordPress Inside a Laravel Application

29 Oct 2026 ](https://www.msaied.com/articles/pollora-run-wordpress-inside-a-laravel-application) [ ![](https://cdn.msaied.com/813/d766b04c30625291c7a35c33d3b0285e.png) Laravel · 3 min read### What's New in Laravel 13.39: Scheduled Session GC, Fluent Array Rules, and More

27 Oct 2026 ](https://www.msaied.com/articles/whats-new-in-laravel-1339-scheduled-session-gc-fluent-array-rules-and-more) [ ![](https://cdn.msaied.com/808/d118ca0a73009ac41175d54bc274a4d5.png) Laravel · 4 min read### Filament v5.8: Deferred Schema Loading, Table Grouping Improvements, and More

26 Oct 2026 ](https://www.msaied.com/articles/filament-v58-deferred-schema-loading-table-grouping-improvements-and-more) 

  Have a technical challenge?
----------------------------

Tell me what you’re building. I reply within two working days.

 [Discuss your project ↗](https://www.msaied.com#contact) 

  © 2026 Mohamed Said · Built with Laravel, meant to last.Senior Backend Engineer specializing in Laravel, scalable SaaS platforms, APIs, and cloud infrastructure. I build secure, high-performance web applications that help businesses grow.

 - [Home](https://www.msaied.com)
- [Articles](https://www.msaied.com/articles)
- [Certificates](https://www.msaied.com/certificates)
- [GitHub](https://github.com/EG-Mohamed)
- [LinkedIn](https://www.linkedin.com/in/msaiedm/)
- [WhatsApp](https://wa.me/201094619204)
- [Email Address](mailto:hello@msaied.com)
- [My CV](https://drive.google.com/file/u/0/d/1MF20IPRJyzfy32mhEutjL5EpSls0w2Q8/view)
- [Sitemap](https://www.msaied.com/sitemap.xml)
