
Ich suche nach Debug-Vorschlägen und/oder Hilfe. Ich bin nicht sehr vertraut mit der Installation von PHP-Modulen oder -Paketen und kenne mich überhaupt nicht mit Curl/Curl-Erweiterungen aus. Gibt es eine Möglichkeit, herauszufinden, welche Erweiterungen für Curl installiert sind? Dies setzt voraus, dass das das Problem ist und nicht irgendwelche Inkompatibilitäten! Jede Hilfe/jeder Rat ist willkommen.
Ich verwende das Twilio Laravel-Paket twilio/sdk (5.12) und versuche, einen Client zum Abrufen von Anrufdetails zu erstellen (nur Programmable Voice-Dienst). Meine Twilio-Kontoinformationen werden zur Erstellung des Clients übergeben (genau wie in den Dokumenten dargestellt), aber es schlägt mit dieser Meldung fehl:
(1/1) ErrorException
Use of undefined constant CURLOPT_URL - assumed 'CURLOPT_URL'
in CurlClient.php line 111
Ich kann auf meinem Rechner (MacOS) einen Client erstellen, mit nur wenigen Abweichungen bei den entsprechenden System-/Paketversionen.
Ich habe den Twilio-Support kontaktiert und sie haben mir vorgeschlagen,
Die richtige Curl-Erweiterung fehlt für die Curl-Version, die Sie auf Ihrem Computer haben
Sie haben diesen Link bereitgestellt, aber die Anweisungen haben das Problem nicht gelöst:SMS-Twilio-API-Fehler. Ich erhalte genau denselben Fehler, sogar nach einem Neustart von Apache, dem Löschen des Laravel-Konfigurationscache usw.
Wenn ich versuche, curl oder php-curl neu zu installieren oder zu aktualisieren, informiert mich der Server darüber, dass
curl is already the newest version (7.47.0-1ubuntu2.13).
SERVER:
- curl 7.47.0 (x86_64-pc-linux-gnu)
- cURL-Unterstützung => aktiviert
- PHP 7.2.21-1+ubuntu16.04.1+deb.sury.org+1
- Laravel 5.7
LOKAL:
- curl 7.54.0 (x86_64-apple-darwin17.0)
- cURL-Unterstützung => aktiviert
- PHP 7.1.21
- Laravel 5.7
Antwort1
Das Problem besteht darin, dass Sie beim Überprüfen der PHP-Version php-v
davon ausgehen, dass alles aktualisiert ist und die neueste Version angezeigt wird.
Wenn Sie cURL dann installieren apt-get install php-curl
und die neueste Version installiert wird, gehen Sie davon aus, dass Sie dem cURL-Himmel einen Schritt näher sind und alles gut wird.
Was Sie wirklich tun müssen, ist zu überprüfen, ob Ihre Apache-Instanz NUR die neueste Version von PHP aktiviert und geladen hat. In meinem Fall lud Apache trotz aller Aktualisierungen immer noch PHP7.1 statt 7.2. Das kann nicht sein, aber es ist, wie es ist ¯\_(ツ)_/¯
apachectl -M
- Überprüfen Sie, ob
php7_module
aufgeführt ist sudo a2dismod php7.1
apachectl -M
um zu sehen, obphp7_module
es aus der Liste verschwunden istsudo a2enmod php7.2
- Überprüfen Sie, ob geladen mit
apachectl -M
sudo systemctl restart apache2
Probieren Sie in Schritt 3 ruhig ein bisschen mit der PHP-Version aus – probieren Sie PHP 7.0, PHP 7.2 usw. Deaktivieren Sie alles, bevor Sie die neueste Version aktivieren.