AWS Cloud9にLaravel8環境の構築

Cloud9 Laravel8

2021/12/25時点でのLaravelの最新バージョンが>=PHP7.3.0ということで、PHP7.2から7.3へのアップデート方法。
わかっていれば簡単なのですが、少し悩んだのでメモとして残します。

まず、Cloud9立ち上げ初期状態から。yumでアップデートを行い、PHPのバージョンをチェック

$ sudo yum -y update
$ php -v

この時点でのPHPのバージョンは以下

PHP 7.2.24 (cli) (built: Oct 31 2019 18:27:08) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Xdebug v3.1.2, Copyright (c) 2002-2021, by Derick Rethans

PHP7.2とMariadbを無効化して、PHP7.3を有効にする。

$ sudo amazon-linux-extras disable php7.2 lamp-mariadb10.2-php7.2
$ sudo amazon-linux-extras enable php7.3

これらが正常に終了すると以下が表示されるので、それに従う

Now you can install:
 # yum clean metadata
 # yum install php-cli php-pdo php-fpm php-json php-mysqlnd

ついでなので、ここでmbstringも入れておく。

$ sudo yum clean metadata
$ sudo yum install php-cli php-pdo php-fpm php-json php-mysqlnd php-mbstring
(中略)
Is this ok [y/d/N]:y
(中略) 
Complete!

php -v でバージョン確認してみると、無事に7.3へアップデートされました。

ec2-user:~/environment $ php -v
Failed loading /usr/lib64/php/modules/xdebug.so:  /usr/lib64/php/modules/xdebug.so: undefined symbol: gc_globals
PHP 7.3.29 (cli) (built: Jul  7 2021 17:34:15) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.29, Copyright (c) 1998-2018 Zend Technologies

あれ?Failed loading /usr/lib64/php/modules/xdebug.so: /usr/lib64/php/modules/xdebug.so: undefined symbol: gc_globals
xdebug.soのロードが失敗しているようなので、これだけ再インストール。

$ sudo pecl uninstall xdebug && sudo pecl install xdebug

You should add “zend_extension=/usr/lib64/php/modules/xdebug.so” to php.ini
と表示されますが、元々「Failed loading …」が出たということは、既にiniには設定されているわけなので、このメッセージは無視。
改めて、php -v で確認すると以下の様にアップデート成功です。

PHP 7.3.29 (cli) (built: Jul  7 2021 17:34:15) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.29, Copyright (c) 1998-2018 Zend Technologies
    with Xdebug v3.1.2, Copyright (c) 2002-2021, by Derick Rethans