Php curl tidak berfungsi di server

Saya bukan ahli PHP dengan cara apa pun, yang mengatakan, pesan kesalahan Anda membuatnya tampak seolah-olah karakter tambahan ditambahkan ke periode di URL. Mengapa tepatnya, saya belum yakin

Saya akan merekomendasikan untuk mencoba melihat lebih dekat dokumentasi REST API kami untuk titik akhir di bagian tersebut terdapat contoh penggunaan curl, node. js, java, python, dan php di sana. Dari contoh PHP itu ada

// This code sample uses the 'Unirest' library:
// http://unirest.io/php.html
$headers = array(
  'Accept' => 'application/json',
  'Bearer' => ''
);

$response = Unirest\Request::get(
  'https://your-domain.atlassian.net/rest/api/3/issue/{issueIdOrKey}/worklog',
  $headers
);

var_dump($response)

Dari sini saya menyimpulkan bahwa kode php Anda tidak menggunakan perpustakaan unirest ini yang ada di situs contoh kami. Saya menduga Anda akan memerlukan perpustakaan itu, atau perpustakaan lain yang setara, untuk membantu membuat permintaan http semacam ini menggunakan PHP

Solusi apa pun yang kami gunakan, pertama-tama kami harus mengaktifkan ekstensi cURL di file php.ini. Jika Anda sudah melakukannya dan cURL masih belum tersedia, lewati ke

Catatan. Saat Mengaktifkan cURL di php. ini atau gunakan salah satu dari dua solusi, kita perlu me-restart server web agar perubahan diterapkan. Saat menjalankan Apache sebagai layanan, kita dapat dengan mudah melakukannya dengan menggunakan utilitas.

Daftar isi

Mengaktifkan ekstensi cURL di php. file ini

php.ini_ adalah file konfigurasi PHP dan di antara pengaturan lainnya, ia memiliki daftar ekstensi yang dikomentari dan dinonaktifkan secara default

Pada langkah-langkah di bawah ini, kita akan mengaktifkan ekstensi cURL

  1. Pertama, kita perlu mencari folder PHP. Biasanya di C:\php, tapi itu benar-benar tergantung pada bagaimana itu dipasang di tempat pertama. Anda dapat mencoba menjalankan kode berikut untuk menemukan lokasi direktori PHP.
    <?php
    echo PHP_BINDIR;
    ?>
    
    _
  2. Di dalam direktori PHP, seharusnya ada file php.ini. Buka dengan editor teks dan cari baris berikut.
    ;extension=curl 
    

    Catatan. Pada versi PHP yang lebih lama, Anda mungkin memiliki

    ;extension=curl 
    
    0 alih-alih
    ;extension=curl 
    
    1 di php. file ini.

  3. Batalkan komentar pada baris tersebut dengan menghapus karakter titik koma
    ;extension=curl 
    
    2 dan simpan perubahannya
  4. Mulai ulang server web

Menghapus komentar ekstensi di php.ini, menyimpan perubahan, dan memulai ulang server seharusnya cukup untuk mengaktifkan sebagian besar ekstensi, tetapi dalam kasus saya, dengan cURL, itu masih tidak berfungsi

Mengapa ekstensi cURL masih belum diaktifkan

Ternyata, alasan mengapa cURL tidak dapat ditemukan adalah karena Windows perlu mengetahui lokasi berikut ini. dll

libssh2.dll
_

File pustaka tautan dinamis ini terletak di root folder PHP, tetapi masalahnya adalah Windows tidak mencarinya. dll file di sana

Pada akhirnya, saya dapat membuatnya bekerja menggunakan dua solusi berbeda. Satu solusi cepat, tetapi sedikit "retas", sementara yang lain membutuhkan waktu lebih lama, tetapi merupakan solusi yang lebih lengkap

Catatan. Anda memerlukan akses Administrator ke Windows untuk kedua solusi tersebut.

Solusi 1 - Salin file libssh2. dll ke dalam folder Sistem Windows

Dalam solusi ini, kami cukup menyalin

;extension=curl 
_4 yang diperlukan ke folder Sistem Windows, sehingga Windows menemukan libssh2. dll

  1. Di File Explorer, buka folder tempat PHP berada
  2. Di dalamnya, Anda akan melihat file
    ;extension=curl 
    
    _4. Salin
  3. Buka
    ;extension=curl 
    
    _6 dan Tempel file di sana
  4. Mulai ulang server web

Sekarang ekstensi PHP cURL seharusnya berfungsi

Solusi ini cukup sederhana, tetapi masalahnya adalah jika Anda memperbarui PHP di masa mendatang, Anda mungkin lupa menyalin lagi

;extension=curl 
4 yang lebih baru ke folder Sistem Windows

Solusi yang jauh lebih baik adalah memberi tahu Windows tentang lokasi folder PHP menggunakan variabel lingkungan Path

Solusi 2 - Tambahkan folder PHP ke dalam variabel System Path

Alih-alih menyalin

;extension=curl 
_4 ke dalam folder Sistem Windows, solusi yang jauh lebih bersih adalah dengan menambahkan lokasi folder PHP ke dalam variabel System Environment Path. Dengan cara ini, jika Anda memperbarui PHP di masa mendatang pada folder yang sama, tidak ada lagi yang perlu dilakukan

Langkah-langkahnya adalah sebagai berikut

  1. Di bidang Pencarian Windows, cari "env". Anda akan melihat dua hasil, satu untuk mengedit "variabel lingkungan" dan yang lainnya untuk mengedit "variabel lingkungan sistem"

    Pilih "Edit variabel lingkungan sistem" dari hasil pencarian seperti yang ditunjukkan di bawah ini

    Php curl tidak berfungsi di server

  2. Jendela "System Properties" akan terbuka. Klik pada "Variabel Lingkungan. " di bagian bawah jendela
    Php curl tidak berfungsi di server
  3. Jendela "Variabel Lingkungan" sekarang akan terbuka. Daftar pertama di bagian atas jendela berisi variabel pengguna, sedangkan daftar paling bawah berisi variabel sistem. Kita perlu mengedit Path di variabel sistem

    Di daftar paling bawah untuk "Variabel Sistem", pilih variabel "Path" dan klik tombol "Edit" (terletak di dekat tombol OK)

    Php curl tidak berfungsi di server

  4. Anda sekarang akan melihat daftar lokasi yang ada di variabel Path. Klik tombol Baru untuk menambahkan lokasi baru
    Php curl tidak berfungsi di server
  5. Tempel lokasi folder PHP. Misalnya, C:\php seperti yang ditunjukkan di bawah ini
    Php curl tidak berfungsi di server
  6. Klik OK untuk menutup jendela lokasi Path dan sekali lagi klik OK untuk menutup jendela "Variabel Lingkungan" dan "Properti Sistem"
  7. Mulai ulang server web. Jika me-restart server tidak berhasil, me-restart komputer akan membantu

Ekstensi PHP Curl sekarang harus aktif, jadi mari kita uji apakah memang demikian

Menguji apakah ekstensi PHP cURL benar-benar diaktifkan

Kami dapat mengonfirmasi bahwa cURL berfungsi dengan menggunakan fungsi phpinfo() yang menampilkan semua informasi konfigurasi PHP, tetapi untuk hanya memeriksa ekstensi cURL, kami dapat menggunakan kode berikut

<?php
var_dump(extension_loaded("curl"));
?>

Jika diaktifkan, skrip akan menampilkan bool(true), jika sebaliknya masih belum diaktifkan, maka akan menampilkan bool(false). Jika demikian, periksa kembali apakah Anda tidak menambahkan lokasi PHP di Path untuk variabel pengguna. Memiliki lokasi untuk folder PHP di sana tidak akan berfungsi

Kesimpulan

PHP memiliki banyak ekstensi yang dinonaktifkan secara default di file php.ini. Untuk mengaktifkan ekstensi, kita hanya perlu menghapus tanda komentarnya, tetapi dengan ekstensi cURL, menghapus tanda komentar pada baris

libssh2.dll
1 mungkin tidak cukup

Kami mempelajari dua cara berbeda untuk membuat cURL berfungsi di Windows. Salah satu caranya adalah menyalin file

;extension=curl 
_4 secara manual ke folder sistem Windows, tetapi solusi yang lebih baik adalah memberi tahu Windows di mana. dll adalah dengan menambahkan lokasi folder PHP di variabel lingkungan Path System

Mengapa cURL saya tidak berfungsi di PHP?

Penyebab #1 – cURL tidak diaktifkan . Jika cURL didukung oleh perusahaan hosting Anda tetapi tidak diaktifkan secara default, seringkali Anda hanya perlu masuk ke dasbor hosting Anda, arahkan ke bagian yang relevan dan aktifkan. Selesai.

Bagaimana cara mengaktifkan Curl di PHP?

Perintah ini menginstal PHP CURL. .
Langkah 1. Temukan PHP. ini, sebagian besar ada di folder root server atau public_html lalu buka file PHP. ini di editor teks
Langkah 2. Cari atau temukan ;extension=php_curl. .
Langkah 3. Simpan dan Tutup PHP. ini dengan Ctrl+S dan restart Apache dari terminal/CMD

Mengapa cURL tidak berfungsi?

Kami mungkin menemukan kesalahan seperti “curl. perintah tidak ditemukan” saat bekerja di terminal. Jenis kesalahan ini hanya disebabkan oleh satu alasan. paket yang relevan tidak diinstal . Curl adalah utilitas baris perintah transfer data yang sangat populer yang digunakan untuk mengunduh dan mengunggah data dari atau ke server.

Apakah cURL berfungsi di localhost?

Ini juga berfungsi untuk localhost , karena curl akan memeriksa cache sebelum penyelesaian internal dan --resolve mengisi cache DNS dengan entri yang diberikan. (Disediakan untuk aplikasi melalui opsi CURLOPT_RESOLVE. )