[AWS EC2]Amazon LinuxでPHP7.3にアップデートしたらcurl.soのWarningが発生とその対処法

[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」して最新にしておくべきですね。

コメント

コメントを残す

お名前(任意)
コメント:新規