作成
PHPが使う curl を NSS から OpenSSLにする
PHPが使うCurl のバージョンを NSS から OpenSSL にします。Ubuntu20~などではもともとOpenSSLのようですが、CentOS7 とかだと 対応が必要です。 ###title まずは環境把握 ### まずは curl -V や phpinfo() などで環境把握です。 ###command curl -V ###command ret (以下は例です) curl 8.5.0 (x86_64-pc-linux-gnu) libcurl/8.5.0 OpenSSL/1.0.2k-fips zlib/1.2.7 ###command php -r 'phpinfo();' | less ###command ret (curl の SSL Version を探すと NSS でした) cURL support => enabled ~~~ SSL Version => NSS/3.90 ###center (phpinfo() でも見れます(下図)。) (img://18/471s) ### NSS となっているのを OpenSSL にします。 yum や apt などで curl を update できればいいですが、CentOS7ではできませんでしたので、curl を手動で コンパイルなどします。 ### ###disable curl -s -v --tlsv1.2 https://mediawing.jp https://qiita.com/r18j21/items/dd37b494ab924c04ed2a https://inaba-serverdesign.jp/blog/20171011/php_curl_http2_centos7.html // https://inaba-serverdesign.jp/blog/20171011/php_curl_http2_centos7.html ###title curlのコンパイル~インストール ### curl の ダウンロードは こちら(https://curl.se/download/) から。 OSのデフォでは curl7系がインストール済みでしたので 7系の最新である 7.88 にしました。 ###source wget https://curl.se/download/curl-7.88.1.tar.bz2 ### こちらの環境では wget で セキュリティエラーがでたので以下にします。 ###source wget https://curl.se/download/curl-7.88.1.tar.bz2 --no-check-certificate ###disable yum --enablerepo=epel install libnghttp2 libnghttp2-devel ./configure --with-ssl --with-nghttp2 --enable-libcurl-option ### DLできたら 一気にインストールしますが configure のときに --with-ssl --enable-libcurl-option をつけました。 --enable-libcurl-option を付けることによって、 libcurl (単体のcurl だけでなく PHPなどで使う curl) もコンパイルされるようです。 ###source sudo tar jxf curl-7.88.1.tar.bz2 cd curl-7.88.1 sudo ./configure --with-ssl --with-nghttp2 --enable-libcurl-option sudo make sudo make install ####disable Libraries have been installed in: /usr/local/lib If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the '-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the 'LD_RUN_PATH' environment variable during linking - use the '-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to '/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[2]: `install-data-am' に対して行うべき事はありません. make[2]: ディレクトリ `/home/mediawing/curl-7.88.1/lib' から出ます make[1]: ディレクトリ `/home/mediawing/curl-7.88.1/lib' から出ます Making install in src make[1]: ディレクトリ `/home/mediawing/curl-7.88.1/src' に入ります Making install in ../docs make[2]: ディレクトリ `/home/mediawing/curl-7.88.1/docs' に入ります Making install in . make[3]: ディレクトリ `/home/mediawing/curl-7.88.1/docs' に入ります make[4]: ディレクトリ `/home/mediawing/curl-7.88.1/docs' に入ります make[4]: `install-exec-am' に対して行うべき事はありません. /usr/bin/mkdir -p '/usr/local/share/man/man1' /usr/bin/install -c -m 644 curl-config.1 /home/mediawing/curl-7.88.1/docs/curl.1 '/usr/local/share/man/man1' make[4]: ディレクトリ `/home/mediawing/curl-7.88.1/docs' から出ます make[3]: ディレクトリ `/home/mediawing/curl-7.88.1/docs' から出ます Making install in cmdline-opts make[3]: ディレクトリ `/home/mediawing/curl-7.88.1/docs/cmdline-opts' に入ります make[4]: ディレクトリ `/home/mediawing/curl-7.88.1/docs/cmdline-opts' に入ります make[4]: `install-exec-am' に対して行うべき事はありません. make[4]: `install-data-am' に対して行うべき事はありません. make[4]: ディレクトリ `/home/mediawing/curl-7.88.1/docs/cmdline-opts' から出ます make[3]: ディレクトリ `/home/mediawing/curl-7.88.1/docs/cmdline-opts' から出ます make[2]: ディレクトリ `/home/mediawing/curl-7.88.1/docs' から出ます make[2]: ディレクトリ `/home/mediawing/curl-7.88.1/src' に入ります make[3]: ディレクトリ `/home/mediawing/curl-7.88.1/src' に入ります /usr/bin/mkdir -p '/usr/local/bin' /bin/sh ../libtool --mode=install /usr/bin/install -c curl '/usr/local/bin' libtool: install: /usr/bin/install -c .libs/curl /usr/local/bin/curl make[3]: `install-data-am' に対して行うべき事はありません. make[3]: ディレクトリ `/home/mediawing/curl-7.88.1/src' から出ます make[2]: ディレクトリ `/home/mediawing/curl-7.88.1/src' から出ます make[1]: ディレクトリ `/home/mediawing/curl-7.88.1/src' から出ます make[1]: ディレクトリ `/home/mediawing/curl-7.88.1' に入ります make[2]: ディレクトリ `/home/mediawing/curl-7.88.1' に入ります /usr/bin/mkdir -p '/usr/local/bin' /usr/bin/install -c curl-config '/usr/local/bin' /usr/bin/mkdir -p '/usr/local/lib/pkgconfig' /usr/bin/install -c -m 644 libcurl.pc '/usr/local/lib/pkgconfig' ###source (ライブラリにリンクする) echo '/usr/local/lib' > /etc/ld.so.conf.d/custom-libs.conf ldconfig ###source which -a curl curl -V php -r 'phpinfo();' | less ### などのコマンドで現状把握してください。 ###title 最後に確認 ### これで phpinfo などで見ると SSLVersion が NSSからOpenSSL になりました。 ###center (img://18/472m) ###disable sudo yum install openssl-devel libmetalink-devel libssh2-devel c-ares-devel lbzip2 ###disable sudo wget https://curl.se/download/curl-8.5.0.tar.gz --no-check-certificate tar xfvz curl-8.5.0.tar.gz ./configure --enable-libcurl-option --with-ssl make test make make install which -a curl /usr/bin/curl sudo cp /usr/bin/curl /usr/bin/curl_org sudo cp /usr/bin/curl /usr/local/bin/curl_org curl -V curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.90 zlib/1.2.7 libidn/1.28 libssh2/1.8.0 rm /usr/bin/curl ln -s /usr/local/bin/curl /usr/bin/curl ln -s /usr/local/bin/curl_org /usr/bin/curl sudo curl -V
wakatta 記法
投稿の仕方
基本的な記法
エンジニア向け記法
記法のサンプル
このコンテンツを見る