PHPをUpgrade
- sudo add-apt-repository ppa:ondrej/php
- sudo apt-get update
- sudo apt-get install libapache2-mod-php8.0
- sudo a2dismod php7.2
- sudo a2enmod php8.0
- sudo apt-get install php8.0-dom php8.0-mbstring php8.0-zip php8.0-mysql php8.0-common
- sudo apt-get install mcrypt (deprecated)
- sudo update-alternatives --config php
参考:
mongodb php driver をupgrade
- sudo pecl install mongodb >>> 失敗
PHPを8.0にアップグレードするとpeclがエラーを吐き、インストールできなくなるのでpearもアップグレードする
ここでmongodb のPHP extension がどのディレクトリにインストールされているか注目する。
PHPを複数のバージョンをインストールしている場合、不適なディレクトリにインストールされ、php.iniにextension=mongodb.so と加筆しても
composer update >>> 失敗
PHP Startup: Unable to load dynamic library 'xxx/mongodb.so'
とエラーが出る。
php -i | grep -i extension_dir で使用中のバージョンのPHPに適用されるextension directory とpecl がextension をインストールするディレクトリが違うことを確認する。
pecl が extension をどこにインストールする設定になっているかを確認。
pecl config-show で確認できるがphp -i | grep -i extension_dir と同一のディレクトリになっているにもかかわらず、実際にsudo pecl install EXTENSION をすると別のディレクトリにインストールされる。これを修正する必要がある。
php-config --extension-dir でPECLが実際にインストールするディレクトリを参照できる。
php-config --version で使用中のPHPと違うバージョンが適用されていると判明。
- sudo apt-get install php8.0-dev
不敵なディレクトリにインストールされたmongodb extensionをアンインストールしてからもう一度インストール
PHPが正しくバージョンアップされ、mongodb driver もアップデートされたので
に 『extension=mongodb.so』を加筆
laravel のプロジェクトディレクトリのcomposer.jsonでlaravel 、その他パッケージをアップデート
composer update >>> successfully updated
参考: