{"id":175,"date":"2022-08-12T06:43:05","date_gmt":"2022-08-11T22:43:05","guid":{"rendered":"https:\/\/cliffordjuan.com\/?p=175"},"modified":"2022-08-12T14:44:37","modified_gmt":"2022-08-12T06:44:37","slug":"amazon-linux-2-php-7-4-upgrade-to-php-8-0","status":"publish","type":"post","link":"https:\/\/cliffordjuan.com\/index.php\/2022\/08\/12\/amazon-linux-2-php-7-4-upgrade-to-php-8-0\/","title":{"rendered":"Amazon Linux 2 &#8211; PHP 7.4 upgrade to PHP 8.0"},"content":{"rendered":"\n<p>A client&#8217;s machine installed with PHP 7.4 needs to be upgraded to PHP 8.0 sooner as the former is reaching &#8220;End of Life&#8221; support (until November 28, 2022). Here&#8217;s a link about it: <a href=\"https:\/\/www.php.net\/supported-versions.php\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.php.net\/supported-versions.php<\/a><\/p>\n\n\n\n<p>These are the steps made to complete the upgrade procedure:<\/p>\n\n\n\n<p>#1. On the client&#8217;s Amazon Linux 2 Virtual Machine, list the PHP versions available.<\/p>\n\n\n\n<p class=\"has-cyan-bluish-gray-color has-black-background-color has-text-color has-background\">[root@ip-172-31-84-24 html]#<strong style=\"user-select: auto;\"><mark style=\"background-color: rgba(0, 0, 0, 0); user-select: auto;\" class=\"has-inline-color has-luminous-vivid-amber-color\"> amazon-linux-extras |<\/mark><\/strong><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\"> <\/mark><\/strong><strong style=\"user-select: auto;\"><mark style=\"background-color: rgba(0, 0, 0, 0); user-select: auto;\" class=\"has-inline-color has-luminous-vivid-amber-color\">grep php<\/mark><\/strong><br>42 php7.4=latest enabled [ =stable ]<br>_ php8.0 available [ =stable ]<\/p>\n\n\n\n<p>#2. Disable php 7.4.<\/p>\n\n\n\n<p class=\"has-cyan-bluish-gray-color has-black-background-color has-text-color has-background\">[root@ip-172-31-84-24 html]#<strong> <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\">amazon-linux-extras disable php7.4<\/mark><\/strong><br>Beware that disabling topics is not supported after they are installed.<br>. . . .<br>. . . .<br>42 php7.4 available [ =stable ]<br>. . . .<br>51 php8.0 available [ =stable ]<br>. . . .<\/p>\n\n\n\n<p>#3. Check PHP list again.<\/p>\n\n\n\n<p class=\"has-cyan-bluish-gray-color has-black-background-color has-text-color has-background\"><br>[root@ip-172-31-84-24 html]# <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\">amazon-linux-extras |grep php<\/mark><\/strong><br>42 php7.4 available [ =stable ]<br>51 php8.0 available [ =stable ]<\/p>\n\n\n\n<p>#4. Enable PHP 8.0.<\/p>\n\n\n\n<p class=\"has-cyan-bluish-gray-color has-black-background-color has-text-color has-background\">[root@ip-172-31-84-24 html]# <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\">amazon-linux-extras enable php8.0<\/mark><\/strong><br>. . . .<br>41 postgresql11 available [ =11 =stable ]<br>_ php7.4 available [ =stable ]<br>. . . .<br>51 php8.0=latest enabled [ =stable ]<br>. . . .<br>Now you can install:<br># yum clean metadata<br># yum install php-cli php-pdo php-fpm php-mysqlnd<\/p>\n\n\n\n<p>#5. Clean metadata.<\/p>\n\n\n\n<p class=\"has-cyan-bluish-gray-color has-black-background-color has-text-color has-background\">[root@ip-172-31-84-24 html]# <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\">yum clean metadata<\/mark><\/strong><br>Loaded plugins: extras_suggestions, langpacks, priorities, update-motd<br>Cleaning repos: amzn2-core amzn2extra-docker amzn2extra-epel amzn2extra-kernel-5.10 amzn2extra-php8.0 epel epel-debuginfo epel-source epel-testing epel-testing-debuginfo epel-testing-source<br>52 metadata files removed<br>20 sqlite files removed<br>0 metadata files removed<\/p>\n\n\n\n<p>#6. Now check available php installation.<\/p>\n\n\n\n<p class=\"has-cyan-bluish-gray-color has-black-background-color has-text-color has-background\">[root@ip-172-31-84-24 html]#<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\"> yum info php<\/mark><\/strong><br>. . . .<br>232 packages excluded due to repository priority protections<br>. . . .<br>Available Packages<br>Name : php<br>Arch : x86_64<br>Version : 8.0.20<br>Release : 1.amzn2<br>Size : 3.3 M<br>Repo : amzn2extra-php8.0\/2\/x86_64<\/p>\n\n\n\n<p>#7. Running the command in #4 as suggested gives an error<\/p>\n\n\n\n<p class=\"has-cyan-bluish-gray-color has-black-background-color has-text-color has-background\">[root@ip-172-31-84-24 html]#<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\"> <strong>yum install php-cli php-pdo php-fpm php-mysqlnd<\/strong><\/mark><br>Loaded plugins: extras_suggestions, langpacks, priorities, update-motd<br>232 packages excluded due to repository priority protections<br>Resolving Dependencies<br>&#8211;&gt; Running transaction check<br>. . . .<br>&#8211;&gt; Processing Dependency: php-common(x86-64) = 8.0.20-1.amzn2 for package: php-cli-8.0.20-1.amzn2.x86_64<br>. . . .<br>&#8211;&gt; Finished Dependency Resolution<br><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">Error: Package: php-json-7.4.26-1.amzn2.x86_64 (@amzn2extra-php7.4)<\/mark><br>Requires: php-common(x86-64) = 7.4.26-1.amzn2<br>Removing: php-common-7.4.26-1.amzn2.x86_64 (@amzn2extra-php7.4)<br>. . . .<br>You could try using &#8211;skip-broken to work around the problem<br>You could try running: rpm -Va &#8211;nofiles &#8211;nodigest<\/p>\n\n\n\n<p>#8. Remove the php-json* package<\/p>\n\n\n\n<p class=\"has-cyan-bluish-gray-color has-black-background-color has-text-color has-background\">[root@ip-172-31-84-24 html]#<strong style=\"user-select: auto;\"><mark style=\"background-color: rgba(0, 0, 0, 0); user-select: auto;\" class=\"has-inline-color has-luminous-vivid-amber-color\"> yum remove php-json<\/mark><\/strong><br>Loaded plugins: extras_suggestions, langpacks, priorities, update-motd<br>Resolving Dependencies<br>&#8211;&gt; Running transaction check<br>&#8212;&gt; Package php-json.x86_64 0:7.4.26-1.amzn2 will be erased<br>&#8211;&gt; Processing Dependency: php-json(x86-64) = 7.4.26-1.amzn2 for package: php-common-7.4.26-1.amzn2.x86_64<br>&#8211;&gt; Running transaction check<br>. . . .<br>. . . .<br>&#8211;&gt; Finished Dependency Resolution<br>Removed:<br>php-json.x86_64 0:7.4.26-1.amzn2<br>Dependency Removed:<br>php-cli.x86_64 0:7.4.26-1.amzn2 php-common.x86_64 0:7.4.26-1.amzn2 php-fpm.x86_64 0:7.4.26-1.amzn2 php-mbstring.x86_64 0:7.4.26-1.amzn2 php-mysqlnd.x86_64 0:7.4.26-1.amzn2 php-pdo.x86_64 0:7.4.26-1.amzn2<br>php-xml.x86_64 0:7.4.26-1.amzn2<br>Complete!<\/p>\n\n\n\n<p>#9. Install PHP and other dependencies<\/p>\n\n\n\n<p class=\"has-cyan-bluish-gray-color has-black-background-color has-text-color has-background\">[root@ip-172-31-84-24 html]# <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\">yum install php php-{pear,cgi,common,curl,mbstring,gd,mysqlnd,gettext,bcmath,json,xml,fpm,intl,zip}<\/mark><\/strong><br>Loaded plugins: extras_suggestions, langpacks, priorities, update-motd<br>232 packages excluded due to repository priority protections<br>Resolving Dependencies<br>&#8211;&gt; Running transaction check<br>. . . .<br>Installed:<br>php.x86_64 0:8.0.20-1.amzn2 php-bcmath.x86_64 0:8.0.20-1.amzn2 php-cli.x86_64 0:8.0.20-1.amzn2 php-common.x86_64 0:8.0.20-1.amzn2 php-fpm.x86_64 0:8.0.20-1.amzn2 php-gd.x86_64 0:8.0.20-1.amzn2<br>php-intl.x86_64 0:8.0.20-1.amzn2 php-mbstring.x86_64 0:8.0.20-1.amzn2 php-mysqlnd.x86_64 0:8.0.20-1.amzn2 php-pear.noarch 1:1.10.12-9.amzn2 php-xml.x86_64 0:8.0.20-1.amzn2<br>Dependency Installed:<br>php-pdo.x86_64 0:8.0.20-1.amzn2 php-process.x86_64 0:8.0.20-1.amzn2<br>Complete!<br><\/p>\n\n\n\n<p>#10. A continuation the output in #9 installation message. Just disregard this.<\/p>\n\n\n\n<p class=\"has-cyan-bluish-gray-color has-black-background-color has-text-color has-background\"><br><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">php-json is available in Amazon Linux Extra topic &#8220;php7.4&#8221;<\/mark><br><br><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">To use, run<br># sudo amazon-linux-extras install php7.4<\/mark><\/p>\n\n\n\n<p>#11. Now check PHP version<\/p>\n\n\n\n<p class=\"has-cyan-bluish-gray-color has-black-background-color has-text-color has-background\">[root@ip-172-31-84-24 ~]# <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\">php -v<\/mark><\/strong><br>PHP 8.0.20 (cli) (built: Jun 23 2022 20:34:07) ( NTS )<br>Copyright (c) The PHP Group<br>Zend Engine v4.0.20, Copyright (c) Zend Technologies<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A client&#8217;s machine installed with PHP 7.4 needs to be upgraded to PHP 8.0 sooner as the former is reaching &#8220;End of Life&#8221; support (until November 28, 2022). Here&#8217;s a link about it: https:\/\/www.php.net\/supported-versions.php These are the steps made to complete the upgrade procedure: #1. On the client&#8217;s Amazon Linux 2 Virtual Machine, list the &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/cliffordjuan.com\/index.php\/2022\/08\/12\/amazon-linux-2-php-7-4-upgrade-to-php-8-0\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Amazon Linux 2 &#8211; PHP 7.4 upgrade to PHP 8.0&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[26],"tags":[23,24,25],"_links":{"self":[{"href":"https:\/\/cliffordjuan.com\/index.php\/wp-json\/wp\/v2\/posts\/175"}],"collection":[{"href":"https:\/\/cliffordjuan.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cliffordjuan.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cliffordjuan.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cliffordjuan.com\/index.php\/wp-json\/wp\/v2\/comments?post=175"}],"version-history":[{"count":3,"href":"https:\/\/cliffordjuan.com\/index.php\/wp-json\/wp\/v2\/posts\/175\/revisions"}],"predecessor-version":[{"id":189,"href":"https:\/\/cliffordjuan.com\/index.php\/wp-json\/wp\/v2\/posts\/175\/revisions\/189"}],"wp:attachment":[{"href":"https:\/\/cliffordjuan.com\/index.php\/wp-json\/wp\/v2\/media?parent=175"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cliffordjuan.com\/index.php\/wp-json\/wp\/v2\/categories?post=175"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cliffordjuan.com\/index.php\/wp-json\/wp\/v2\/tags?post=175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}