web-dev-qa-db-ja.com

18.04アップグレード後にcURLが機能しない

私は最近、システムを18.04に更新しましたが、cURLを使い果たしました。 18.04はPHP 7.2をインストールしましたが、nginxのインストールでは7.1 FPMを使用しています。 Webサーバーからphpinfo()を実行すると、システムがcurl.iniを読み込んでいることが表示されますが、cURLモジュールは以下には表示されず、cURLを必要とするコードは機能しません。

私はこれを読みました **​​ curl **はUbuntu 18.04 LTSで動作していません と答え(libcurl4のアンインストール/再インストール)は役に立ちませんでした。

「phpenmod -v 7.1 curl」を実行しました。モジュールは「enabled_by_admin」ディレクトリに表示されます。 curl.soはありませんでしたが、7.2ディレクトリからコピーしました。再起動、再起動、すべて。まだcURLはありません。

「php -m」を実行するとcurlが表示されますが、これはもちろんv7.2のものであり、Webサーバーが実行している7.1 FPMではありません。私はこれを再び走らせようとして尾を追いかけてきましたが、どんな助けもありがたいです。

1
CLWill

まあ、私はあきらめて、実行中の12個のサイトすべてを7.2に変換しました。 7.1にとどまるよりも簡単だったことがわかりました。

デフォルトの7.2インストールを更新して、必要なすべてのコンポーネント(FPMなど多くのコンポーネントを含む)を追加し、各サイトのnginx.confを編集して7.2を参照すると、すべて機能します。

ありがとう!

1
CLWill
  1. NGINX configを検索します。手順: https://devanswers.co/nginx-config-file-location/
  2. Confファイルで「fastcgi_pass」を検索します。どのphpバージョンがfpmとして使用されます。 UNIXソケット接続の例fastcgi_pass unix:/run/php/php7.2-fpm.sock;この場合、PHP 7.2およびもちろんPHP 7.2にインストールされたモジュールを扱っていることが理解できます。
  3. システムに異なるバージョンのPHPがインストールされているようです。異なるバージョンのphpは、異なる構成(php.ini)と異なるモジュール(curlを含む)を意味します。使用するPHPを選択します。あなたの場合、7.2を使い続ける場合は、znd configure curlモジュールをインストールする必要があります。 php 7.1にcurlが既にあり、wokrにcurlがあり、7.2が必要ない場合、NGINX confで7.1に切り替える必要があります。 http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_pass
  4. Php conf(php.ini)でphp 7.1へのソケットパスを見つけます。例:isten = /run/php/php7.1-fpm.sock存在するかどうかを確認します:ls -lah /run/php/php7.1-fpm.sock
  5. NGINX confのfastcgi_passのソケットパスを置き換えます。たとえばfastcgi_pass unix:/run/php/php7.1-fpm.sock;(Host:IPで設定できる場合があります。Unixソケットまたはホストの選択が必要です。このチュートリアルでは、ソケットについて説明します)
  6. NGINXを再起動します:Sudo service nginx restart
0
mature