web-dev-qa-db-ja.com

phpスクリプトがブラウザからアクセスしたときにcurl_init()が機能しない

Ubuntu 16.04.1、Apache2サーバー...シンプルなphpスクリプト:index.php

<?php
    echo "A";
    $ch = curl_init();
    echo "B";

出力は次のようになります:AB、端末からは正常に動作します

それでも、ブラウザからindex.phpを開くと、出力は次のようになります。

どうやら、エラーが発生します...しかし、curl_init()に達するとスクリプトが停止しました

  1. try-catchブロックはエラーをキャッチしません
  2. curl_error($ ch)は、その行に決して到達しないので助けにはなりません

許可の理由を排除するために、www-dataユーザーを使用して端末からスクリプトを実行しようとしましたが、うまくいきました

私に何ができる?

編集

apache error.logから

PHP Fatal error:  Uncaught Error: Call to undefined function curl_init()
in /var/www/html/index.php:4\nStack trace:\n#0 {main}\n  thrown in
/var/www/html/index.php on line 4
3

PHPバージョンに応じて、php-curlパッケージをインストールする必要があります。これがUbuntu 16.04のデフォルトバージョンである場合-php7.0

Sudo apt update
Sudo apt install php7.0-curl
Sudo phpenmod curl
Sudo systemctl restart Apache2.service
3
pa4080