From 96aab538aa694cf675eb1823e316ee89fdbb74b7 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Fri, 25 Apr 2025 15:03:53 +0200 Subject: [PATCH 1/2] [post] php unbut --- first-run.sh | 4 +- .../images/blog/2025/rector-support.png | Bin 0 -> 49564 bytes .../images/blog/2025/ubuntu-releases.png | Bin 0 -> 33859 bytes ...nstall-old-or-new-php-on-non-lts-ubuntu.md | 134 ++++++++++++++++++ 4 files changed, 137 insertions(+), 1 deletion(-) create mode 100644 public/assets/images/blog/2025/rector-support.png create mode 100644 public/assets/images/blog/2025/ubuntu-releases.png create mode 100644 resources/blog/posts/2025/2025-04-25-how-to-install-old-or-new-php-on-non-lts-ubuntu.md diff --git a/first-run.sh b/first-run.sh index a459c6709..99e7ba506 100644 --- a/first-run.sh +++ b/first-run.sh @@ -12,7 +12,9 @@ cp .env.dist .env chgrp -R www-data database chmod -R g+rw database -mkdir -p storage/framework/{cache,sessions,views} +mkdir -p storage/framework/cache +mkdir -p storage/framework/sessions +mkdir -p storage/framework/views # create the manifest.json file yarn build diff --git a/public/assets/images/blog/2025/rector-support.png b/public/assets/images/blog/2025/rector-support.png new file mode 100644 index 0000000000000000000000000000000000000000..38cfac7d57e73bdd9ff88d06a42c2cfc2266a59d GIT binary patch literal 49564 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 literal 0 HcmV?d00001 diff --git a/public/assets/images/blog/2025/ubuntu-releases.png b/public/assets/images/blog/2025/ubuntu-releases.png new file mode 100644 index 0000000000000000000000000000000000000000..68d5027325f6cae95c713ab3afa09899b1277c50 GIT binary patch literal 33859 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%0AjohhuI;Pdq(bhn)7Dp?_yeQ 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 P0(?n`$O@MW>iPa3$XMb` literal 0 HcmV?d00001 diff --git a/resources/blog/posts/2025/2025-04-25-how-to-install-old-or-new-php-on-non-lts-ubuntu.md b/resources/blog/posts/2025/2025-04-25-how-to-install-old-or-new-php-on-non-lts-ubuntu.md new file mode 100644 index 000000000..8fb1487c1 --- /dev/null +++ b/resources/blog/posts/2025/2025-04-25-how-to-install-old-or-new-php-on-non-lts-ubuntu.md @@ -0,0 +1,134 @@ +--- +id: 77 +title: "How to install old or new PHP on non-LTS Ubuntu" +perex: | + Legacy projects can be upgraded in 2 directions - PHP-wise and infrastructure-wise. We can get new Ubuntu 25, but still have to run old PHP. + + Same goes with upgrading a legacy project. Locally, we use Ubuntu 25, but we work on a project that uses PHP 7.2. + + By default, Ubuntu release ship only one PHP version. Often we need one of the other ~10 versions. How do we get run old or new PHP on latest Ubuntu? +--- + +*This post extends [reply on Github issue](https://github.com/oerdnj/deb.sury.org/issues/1662#issuecomment-2823699313), to give it more visibility. Based on comments and SO struggles, many developers give up after reading to many miss-leading solutions. There is a way.* + +
+ +*Disclaimer: do this with caution, preferably on a local dev machine rather than production, to keep risk of conflicts low.* + +
+ +Typical solution is to add an external repository with all the old PHP version. +This repository is maintained by [Ondrej Sury](https://github.com/sponsors/oerdnj), who maintains it since the beginning of PHP times. + +```bash +sudo add-apt-repository ppa:ondrej/php +sudo apt install ppa-purge +sudo ppa-purge ppa:ondrej/php +``` + +Then reload dependencies: + +```bash +sudo apt-get update +sudo apt-get upgrade +``` + +And we can install our desired PHP version: + +```bash +sudo apt-get install php7.4 php7.4-curl +``` + +This worked very well for years. Until 2021. + +
+ +## Ubuntu non-LTS no longer supported + +Maintaining these packages comes at great cost. PHP has release once a year. Ubuntu has 2-3 release a year, this adds to maintenance cost and time, adding to server costs. + +We sponsored (PHP 8.1 release)[https://github.com/oerdnj/deb.sury.org/issues/1439#issuecomment-705552989] to help a bit: + + + +But it wasn't enough. There is still [way to sponsor Ondrej](https://github.com/sponsors/oerdnj), if you want to help out regularly. + +This and probably other reason lead to narrowing [support only to Ubuntu LTS releases](https://github.com/oerdnj/deb.sury.org/issues/1662). + +That means only once every 2 years, without the x.10 improved version: + +* 24.04 (released in 2024) +* 26.04 (will be in 2026) + + + +
+ +## Downgrade to LTS or wait 2 years? + +If you're working on an upgrade, downgrading the server would be a bit counter productive. The same way, using old PHP and waiting for 2 year to use another outdated PHP version would not help. + +So how do we get the PHP version we want without being limited by LTS Ubuntu release cycle? + + + +## Fake it till you make it + +If we try to install e.g. PHP 8.2 on Ubuntu 25, we get following error: + +```bash +sudo apt-get install php8.2 +E: Package 'php-82' has no installation candidate +``` + +We already added the repository above, but still get error. + +That's because there is no package list to match our Ubuntu 25 codename - "plucky" (it's the first word of the relaase name, lowercased). + +Yet, there is a package list that matches the LTS Ubuntu 24.04 codename - "noble". + +
+ +Let's pretend we use old Ubuntu 24.04: + +```bash +# edit sources file +nano /etc/apt/sources.list.d/ondrej-ubuntu-php-plucky.sources +``` + +Here we change our codename: + +```diff +-suites: x ++suites: noble +``` + +Save, update packages: + +``` +sudo apt-get update +``` + +Now, let's give it a try: + +```bash +sudo apt-get install php8.2 +``` + +Package installs successfully: + +```bash +... +Get:1 https://ppa.launchpadcontent.net/ondrej/php/ubuntu noble/main amd64 php8.2-amqp amd64 2.1.2-5+ubuntu24.04.1+deb.sury.org+1 [59.1 kB] +Selecting previously unselected package php8.2. +(Reading database ... 276942 files and directories currently installed.) +Preparing to unpack .../php8.2.1.2-5+ubuntu24.04.1+deb.sury.org+1_amd64.deb ... +Unpacking php8.2 (2.1.2-5+ubuntu24.04.1+deb.sury.org+1) ... +Setting up php8.2 (2.1.2-5+ubuntu24.04.1+deb.sury.org+1) ... +``` + +That's it. Now we have PHP 8.2 installed on our local Ubuntu 25. + +
+ +Happy coding! From a77a3d8d68242c86c45af408012ac4f98f7232e5 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 26 Apr 2025 12:49:43 +0200 Subject: [PATCH 2/2] gram --- public/assets/images/blog/2025/give-up.png | Bin 0 -> 20621 bytes ...nstall-old-or-new-php-on-non-lts-ubuntu.md | 65 +++++++++++------- 2 files changed, 40 insertions(+), 25 deletions(-) create mode 100644 public/assets/images/blog/2025/give-up.png diff --git a/public/assets/images/blog/2025/give-up.png b/public/assets/images/blog/2025/give-up.png new file mode 100644 index 0000000000000000000000000000000000000000..59c3ce6e3b00b472d7b1a896b00dc4730018ece8 GIT binary patch literal 20621 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 literal 0 HcmV?d00001 diff --git a/resources/blog/posts/2025/2025-04-25-how-to-install-old-or-new-php-on-non-lts-ubuntu.md b/resources/blog/posts/2025/2025-04-25-how-to-install-old-or-new-php-on-non-lts-ubuntu.md index 8fb1487c1..847073f38 100644 --- a/resources/blog/posts/2025/2025-04-25-how-to-install-old-or-new-php-on-non-lts-ubuntu.md +++ b/resources/blog/posts/2025/2025-04-25-how-to-install-old-or-new-php-on-non-lts-ubuntu.md @@ -2,23 +2,27 @@ id: 77 title: "How to install old or new PHP on non-LTS Ubuntu" perex: | - Legacy projects can be upgraded in 2 directions - PHP-wise and infrastructure-wise. We can get new Ubuntu 25, but still have to run old PHP. + Legacy projects can be upgraded in 2 directions - PHP-wise and infrastructure-wise. We can get a new Ubuntu 25 but still have to run old PHP. - Same goes with upgrading a legacy project. Locally, we use Ubuntu 25, but we work on a project that uses PHP 7.2. + The same goes for upgrading a legacy project. Locally, we use Ubuntu 25, but we work on a project that uses PHP 7.2. - By default, Ubuntu release ship only one PHP version. Often we need one of the other ~10 versions. How do we get run old or new PHP on latest Ubuntu? + By default, Ubuntu releases ship only one PHP version. Often we need one of the other ~10 versions. How do we run old or new PHP on the latest Ubuntu? --- -*This post extends [reply on Github issue](https://github.com/oerdnj/deb.sury.org/issues/1662#issuecomment-2823699313), to give it more visibility. Based on comments and SO struggles, many developers give up after reading to many miss-leading solutions. There is a way.* +*This post extends [reply on Github issue](https://github.com/oerdnj/deb.sury.org/issues/1662#issuecomment-2823699313), to give it more visibility. Based on comments and SO struggles, many developers give up after reading too many misleading solutions:* + + + +*Don't fret. There is a way.*
-*Disclaimer: do this with caution, preferably on a local dev machine rather than production, to keep risk of conflicts low.* +*Disclaimer: do this cautiously, preferably on a local dev machine rather than production, to keep the risk of conflicts low.*
-Typical solution is to add an external repository with all the old PHP version. -This repository is maintained by [Ondrej Sury](https://github.com/sponsors/oerdnj), who maintains it since the beginning of PHP times. +A typical solution is to add an external repository with all the old PHP versions. +This repository is maintained by [Ondrej Sury](https://github.com/sponsors/oerdnj), who has maintained it since the beginning of PHP times. ```bash sudo add-apt-repository ppa:ondrej/php @@ -26,6 +30,8 @@ sudo apt install ppa-purge sudo ppa-purge ppa:ondrej/php ``` +
+ Then reload dependencies: ```bash @@ -33,6 +39,9 @@ sudo apt-get update sudo apt-get upgrade ``` +
+ + And we can install our desired PHP version: ```bash @@ -45,15 +54,17 @@ This worked very well for years. Until 2021. ## Ubuntu non-LTS no longer supported -Maintaining these packages comes at great cost. PHP has release once a year. Ubuntu has 2-3 release a year, this adds to maintenance cost and time, adding to server costs. +Maintaining these packages comes at a great cost. PHP is released once a year. Ubuntu has 2-3 releases a year, this adds to maintenance cost and time, adding to server costs. We sponsored (PHP 8.1 release)[https://github.com/oerdnj/deb.sury.org/issues/1439#issuecomment-705552989] to help a bit: -But it wasn't enough. There is still [way to sponsor Ondrej](https://github.com/sponsors/oerdnj), if you want to help out regularly. +But it wasn't enough. There is still [a way to sponsor Ondrej](https://github.com/sponsors/oerdnj) if you want to help out regularly. + +This and probably other reasons lead to narrowing [support only to Ubuntu LTS releases](https://github.com/oerdnj/deb.sury.org/issues/1662). -This and probably other reason lead to narrowing [support only to Ubuntu LTS releases](https://github.com/oerdnj/deb.sury.org/issues/1662). +
That means only once every 2 years, without the x.10 improved version: @@ -66,59 +77,61 @@ That means only once every 2 years, without the x.10 improved version: ## Downgrade to LTS or wait 2 years? -If you're working on an upgrade, downgrading the server would be a bit counter productive. The same way, using old PHP and waiting for 2 year to use another outdated PHP version would not help. +If you're working on an upgrade, downgrading the server would be a bit counterproductive. In the same way, using old PHP and waiting for 2 years to use another outdated PHP version would not help. -So how do we get the PHP version we want without being limited by LTS Ubuntu release cycle? +So how do we get the PHP version we want without being limited by the LTS Ubuntu release cycle? ## Fake it till you make it -If we try to install e.g. PHP 8.2 on Ubuntu 25, we get following error: +If we try to install e.g. PHP 8.2 on Ubuntu 25, we get the following error: ```bash sudo apt-get install php8.2 E: Package 'php-82' has no installation candidate ``` -We already added the repository above, but still get error. +
-That's because there is no package list to match our Ubuntu 25 codename - "plucky" (it's the first word of the relaase name, lowercased). +We already added the repository above, but still get errors. -Yet, there is a package list that matches the LTS Ubuntu 24.04 codename - "noble". +* That's because there is no package list to **match our Ubuntu 25 codename - "plucky"** (it's the first word of the release name, lowercase). +* Yet, there is a package list that matches the LTS Ubuntu 24.04 codename - "noble".
-Let's pretend we use old Ubuntu 24.04: +Let's pretend we use the LTS Ubuntu 24.04: ```bash # edit sources file nano /etc/apt/sources.list.d/ondrej-ubuntu-php-plucky.sources ``` -Here we change our codename: +
+ +Change our codename: ```diff -suites: x +suites: noble ``` -Save, update packages: +Save, and update packages: -``` +```bash sudo apt-get update ``` +
+ Now, let's give it a try: ```bash sudo apt-get install php8.2 -``` - -Package installs successfully: -```bash ... + Get:1 https://ppa.launchpadcontent.net/ondrej/php/ubuntu noble/main amd64 php8.2-amqp amd64 2.1.2-5+ubuntu24.04.1+deb.sury.org+1 [59.1 kB] Selecting previously unselected package php8.2. (Reading database ... 276942 files and directories currently installed.) @@ -127,7 +140,9 @@ Unpacking php8.2 (2.1.2-5+ubuntu24.04.1+deb.sury.org+1) ... Setting up php8.2 (2.1.2-5+ubuntu24.04.1+deb.sury.org+1) ... ``` -That's it. Now we have PHP 8.2 installed on our local Ubuntu 25. +Package installs successfully, yay! + +That's it. Now we have PHP 8.2 installed on our local Ubuntu 25. Once PHP 8.5 is out, we can it too.