admin/environment/php extension/curl
Unix
Moodleでは、少なくともTLS 1.2をサポートするlibcurlの使用を推奨しています。アップグレードは主にセキュリティ上の理由から重要ですが、外部サービス(PayPalなど)が近い将来、古いバージョンのTLSのサポートを終了することも理由の1つです。この作業では、次の3つの用語を理解しておく必要があります:
- libcurl - 実際にリクエストを実行する基盤ライブラリです(https://curl.haxx.se/libcurl/)。
- SSL/TLSライブラリ - libcurlのコンパイル時にリンクされるライブラリです。このライブラリが、libcurlのSSL/TLS機能を提供します。よく使われるものとして、OpenSSL、NSS、GnuTLSなどがあります。
- PHP/cURL - libcurlをラップするPHPモジュールです。このモジュールが、PHPのcurl_*関数を提供します。
Unixにcurlライブラリをインストールするには、次の手順に従います。
- 最新のSSL/TLSライブラリが必要です。
- libcurlをコンパイルする必要があります。
- PHP/cURLをソースから再コンパイルする必要があります。
DebianおよびDebianベースのディストリビューション
これらの手順は、Debian 7.0(sudoのインストールが必要な場合があります)およびUbuntu 12.04 LTSで動作するはずです。これより古いバージョンを使用している場合は、アップグレードする必要があります。また、多くのパッケージマネージャのリポジトリで使用されているため、これらの手順ではphp5-*パッケージを使用している点にも注意してください。理想的には、PHP 7.1、または少なくともPHP 7を使用してください。詳細については、Moodle and PHP7をご覧ください。PHP7または7.1を使用している場合は、PHPのインストール方法に応じて、php5-*パッケージをphp7-*またはphp7.1-*パッケージに置き換えられる場合があります。この例ではOpenSSLも使用していますが、他のライブラリでも手順は同様です。
- パッケージを更新します:
sudo apt-get update - 次のパッケージをインストールします:
apt-get install git build-essential autoconf libtool libtool-bin php5-curl libbison-dev=1:2.5.dfsg-2.1 libxml2-dev libssl-dev openssl - 次のコマンドを実行して、OpenSSLのバージョンが1.0.1以上になったことを確認します:
openssl version - libcurlのソースを取得し、コンパイルしてインストールします:
git clone https://github.com/curl/curl.git cd curl git checkout curl-7_51_0 ./buildconf ./configure --with-ssl make sudo make install
- PHP/cURLモジュールをコンパイルしてインストールします:
git clone https://github.com/php/php-src.git cd php-src git checkout php-5.6.29 cd ext/curl phpize ./configure make sudo make install sudo bash -c "echo \"extension=curl.so\" > /etc/php5/apache2/conf.d/20-curl.ini" sudo bash -c "echo \"extension=curl.so\" > /etc/php5/cli/conf.d/20-curl.ini"
- 注:/etc/php5/[apache2|cli]/conf.d/20-curl.iniファイルは、すでに存在しているか、少し異なる名前になっている場合があります。最初に確認し、必要に応じてコマンドを変更してください。
- Apacheを再起動します:
sudo service apache2 restart - PHP/cURLモジュールが更新されたSSL/TLSライブラリを使用していることを確認します:
php -i | grep SSL - 次のような結果が表示されるはずです:
SSL => Yes SSL Version => OpenSSL/1.0.1t
SSL Versionは1.0.1tと異なる場合がありますが、問題ありません。1.0.1より古くなければ大丈夫です。
Windows
Windowsにcurlライブラリをインストールするには、次の手順に従います。
- php/php.iniフォルダ(古いバージョンのXAMPPではmoodle/apache/binフォルダ)にあるphp.iniファイルを開きます。
- 次の行を探します:
;extension=php_curl.dll - 行頭の
;を削除します。 - Apacheを再起動します。
これらの手順を実行してもエラーメッセージが表示される場合は、次のようにします:
- phpフォルダに移動します。
icudt##.dll、icuin##.dll、icuuc##.dllファイルをコピーします(##は2桁の数字です。例:36または49)。- Apacheのbinディレクトリに移動します。
- 3つのファイルを貼り付けます:
apache/bin/icudt49.dll apache/bin/icuin49.dll apache/bin/icuuc49.dll
- Apacheウェブサーバを再起動し、Moodleのインストール処理をもう一度実行します。
ヒント:WAMPに破損したcurl.dllが付属している、または含まれていると思われる場合は、forum.wampserver.comのスレッドWamp Server 2.2 Windows 7 64-bit and curl not working side-by-side configuration incorrectで、問題の詳細と修正方法をご覧ください。