<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Rijoanul Hasan</title>
    <description>The latest articles on DEV Community by Rijoanul Hasan (@rijoanul).</description>
    <link>https://dev.to/rijoanul</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F826629%2F2f917e0c-f0da-469a-a99d-22f9a47e13f9.jpeg</url>
      <title>DEV Community: Rijoanul Hasan</title>
      <link>https://dev.to/rijoanul</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rijoanul"/>
    <language>en</language>
    <item>
      <title>Meet phpvm: The PHP Version Manager for Linux (v2.5.1 Released)</title>
      <dc:creator>Rijoanul Hasan</dc:creator>
      <pubDate>Thu, 28 May 2026 18:37:56 +0000</pubDate>
      <link>https://dev.to/rijoanul/meet-phpvm-the-php-version-manager-for-linux-v251-released-1io</link>
      <guid>https://dev.to/rijoanul/meet-phpvm-the-php-version-manager-for-linux-v251-released-1io</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flprzriv4mlcos38zb316.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flprzriv4mlcos38zb316.png" alt=" " width="800" height="420"&gt;&lt;/a&gt;&lt;br&gt;
Every Linux PHP developer knows the dance. You need to switch from PHP 8.1 to 8.3. You run your sudo commands, update your global symlinks, and then realize your local development server in the other window just crashed because it was running on the old version.&lt;/p&gt;

&lt;p&gt;Why should managing PHP versions be a system-wide struggle?&lt;/p&gt;
&lt;h3&gt;
  
  
  The Solution: Per-Shell Version Isolation
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;phpvm&lt;/code&gt; brings the seamless developer experience of tools like &lt;code&gt;pyenv&lt;/code&gt;, &lt;code&gt;rbenv&lt;/code&gt;, or &lt;code&gt;nvm&lt;/code&gt; to the PHP ecosystem on Linux. &lt;/p&gt;

&lt;p&gt;Instead of changing &lt;code&gt;/usr/bin/php&lt;/code&gt; globally, it uses a lightweight shim directory prepended to your &lt;code&gt;PATH&lt;/code&gt;. When you call &lt;code&gt;php&lt;/code&gt;, the shim inspects your environment variables and forwards the execution to the correct binary.&lt;/p&gt;

&lt;p&gt;It supports three layers of resolution, falling back gracefully:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Shell pin&lt;/strong&gt;: Pinned manually via &lt;code&gt;phpvm shell &amp;lt;version&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Project default&lt;/strong&gt;: Resolved from &lt;code&gt;.php-version&lt;/code&gt; or &lt;code&gt;composer.json&lt;/code&gt; requirements when you &lt;code&gt;cd&lt;/code&gt; into a directory&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Global default&lt;/strong&gt;: The system fallback managed by &lt;code&gt;update-alternatives&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
  
  
  Effortless Provisioning
&lt;/h3&gt;

&lt;p&gt;No need to look up repository installation guides. The built-in installer automatically detects your distribution (Ubuntu or Debian) and configures the appropriate upstream repositories (Ond?ej Sur�'s PPA or &lt;code&gt;deb.sury.org&lt;/code&gt;) to fetch the exact CLI and FPM packages you need.&lt;/p&gt;
&lt;h3&gt;
  
  
  Polish in v2.5.1
&lt;/h3&gt;

&lt;p&gt;Our latest release focuses on making the environment rock-solid:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tray App Auto-Start&lt;/strong&gt;: Spawns the GTK desktop tray app immediately after installation by resolving the graphical session environment from active processes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PATH Priority&lt;/strong&gt;: Actively prevents IDEs, login shells, or snap profiles from overriding the shim's position in &lt;code&gt;PATH&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clean Cleanup&lt;/strong&gt;: Ensures all background processes are terminated during uninstallation.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Getting Started
&lt;/h3&gt;

&lt;p&gt;You can install or upgrade using the interactive script:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/rijverse/phpvm/main/install.sh | &lt;span class="nb"&gt;sudo &lt;/span&gt;bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you are already running v2.5.0, simply run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;phpvm &lt;span class="nt"&gt;--self-update&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check out the project website, or find the full documentation, TUI recipes, and GTK setup instructions on GitHub:&lt;/p&gt;

&lt;p&gt;Website: &lt;a href="https://rijverse.github.io/phpvm/" rel="noopener noreferrer"&gt;rijverse.github.io/phpvm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/rijverse/phpvm" rel="noopener noreferrer"&gt;github.com/rijverse/phpvm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fejicr8ygobov88d421r8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fejicr8ygobov88d421r8.png" alt=" " width="799" height="547"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxeq1llhpiopaykixu1si.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxeq1llhpiopaykixu1si.png" alt=" " width="800" height="536"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj1iojyj6htc230q3voj5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj1iojyj6htc230q3voj5.png" alt=" " width="800" height="525"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkwtz0mkl955jhwyynyyz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkwtz0mkl955jhwyynyyz.png" alt=" " width="800" height="468"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>linux</category>
      <category>php</category>
      <category>productivity</category>
      <category>tooling</category>
    </item>
  </channel>
</rss>
