[AWS EC2]Amazon LinuxでPHP7.3にアップデートしたらcurl.soのWarningが発生とその対処法
2021年05月24日2023年10月10日
Amazon LinuxでPHPのバージョンをPHP7.1からPHP.7.3にアップデートしたところPHPのバージョンのアップデートは問題なく完了したが、curl系のライブラリのWarningが発生しました。
エラー内容
Amazon Linuxのバージョン
$sudo cat /etc/issue
Amazon Linux AMI release 2018.03
Kernel \r on an \m
今回エラーが発生したサーバーは開発サーバーだったのであまり気にせず開発を進めていたんですが、PHPからcurlが使用できなくなっていました。
$ php -v
PHP Warning: PHP Startup: Unable to load dynamic library 'curl.so' (tried: /usr/lib64/php/7.3/modules/curl.so (/usr/lib64/php/7.3/modules/curl.so: undefined symbol: curl_mime_type), /usr/lib64/php/7.3/modules/curl.so.so (/usr/lib64/php/7.3/modules/curl.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP 7.3.23 (cli) (built: Oct 21 2020 20:24:49) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.23, Copyright (c) 1998-2018 Zend Technologies
ためしにcurl_init()を実行してもダメっぽい
$ php -r "curl_init();"
PHP Fatal error: Uncaught Error: Call to undefined function curl_init() in Command line code:1
Stack trace:
#0 {main}
thrown in Command line code on line 1
curl.soファイルを確認するとちゃんとある
ls -ltr /usr/lib64/php/7.3/modules/curl.so
-rwxr-xr-x. 1 root root 94168 Nov 24 21:08 curl.so
PHPを入れなおしたり、php.iniのファイルを見直したりしても原因がわからず1時間ほどが経過・・・
解決方法
ネットで色々しらべまくった結果、libcurlパッケージが古いのが原因でした。
libcurlパッケージをアップデートします。
$ sudo yum update libcurl
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main | 2.1 kB 00:00:00
amzn-updates | 3.8 kB 00:00:00
59 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package libcurl.x86_64 0:7.53.1-16.84.amzn1 will be updated
--> Processing Dependency: libcurl(x86-64) = 7.53.1-16.84.amzn1 for package: curl-7.53.1-16.84.amzn1.x86_64
---> Package libcurl.x86_64 0:7.61.1-12.95.amzn1 will be an update
--> Running transaction check
---> Package curl.x86_64 0:7.53.1-16.84.amzn1 will be updated
---> Package curl.x86_64 0:7.61.1-12.95.amzn1 will be an update
--> Finished Dependency Resolution
Dependencies Resolved
===========================================================================================================================================================================================================
Package Arch Version Repository Size
===========================================================================================================================================================================================================
Updating:
libcurl x86_64 7.61.1-12.95.amzn1 amzn-updates 307 k
Updating for dependencies:
curl x86_64 7.61.1-12.95.amzn1 amzn-updates 363 k
Transaction Summary
===========================================================================================================================================================================================================
Upgrade 1 Package (+1 Dependent package)
Total download size: 671 k
Is this ok [y/d/N]: y
Downloading packages:
(1/2): libcurl-7.61.1-12.95.amzn1.x86_64.rpm | 307 kB 00:00:00
(2/2): curl-7.61.1-12.95.amzn1.x86_64.rpm | 363 kB 00:00:00
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 4.1 MB/s | 671 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Updating : libcurl-7.61.1-12.95.amzn1.x86_64 1/4
Updating : curl-7.61.1-12.95.amzn1.x86_64 2/4
Cleanup : curl-7.53.1-16.84.amzn1.x86_64 3/4
Cleanup : libcurl-7.53.1-16.84.amzn1.x86_64 4/4
Verifying : curl-7.61.1-12.95.amzn1.x86_64 1/4
Verifying : libcurl-7.61.1-12.95.amzn1.x86_64 2/4
Verifying : libcurl-7.53.1-16.84.amzn1.x86_64 3/4
Verifying : curl-7.53.1-16.84.amzn1.x86_64 4/4
Updated:
libcurl.x86_64 0:7.61.1-12.95.amzn1
Dependency Updated:
curl.x86_64 0:7.61.1-12.95.amzn1
Complete!
[root@develop-pci modules]# php -v
PHP 7.3.23 (cli) (built: Oct 21 2020 20:24:49) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.23, Copyright (c) 1998-2018 Zend Technologies
無事アップデートが完了、再度PHPのバージョンを確認します。
php -v
PHP 7.3.23 (cli) (built: Oct 21 2020 20:24:49) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.23, Copyright (c) 1998-2018 Zend Technologies
さっきまであった「curl.so」のエラーが表示されなくなりました。
Apacheを使用している場合は、Apacheの再起動も忘れずに!
$sudo systemctl restart httpd
最後に
今回の原因は、libcurlパッケージが古いのが原因でした。定期的に「yum update」して最新にしておくべきですね。
コメント
コメントを残す