Δεν έχω γράψει τίποτα εδώ και πολύ καιρό. PHP, έτσι αποφάσισα να γράψω μια μικρή σειρά άρθρων για το υπέροχο Μονάδα PHP - cURL. Αλλά πριν το χρησιμοποιήσετε, Το cURL πρέπει να εγκατασταθεί στο Denwer, γιατί στη βασική έκδοση αυτού του πακέτου μπούκλαΕξαιρείται.

Πριν προχωρήσετε σε εγκατάσταση του cURL στο Denwer, ας μιλήσουμε εν συντομία για τις δυνατότητες που παρέχει αυτή η ενότητα. μπούκλαείναι ένας βολικός τρόπος για την προσομοίωση ενεργειών χρήστη στον διακομιστή. Στην πραγματικότητα, μπορείτε να ελέγξετε την απάντηση του διακομιστή σε ένα συγκεκριμένο αίτημα. Για παράδειγμα, μπορείτε να στείλετε αιτήματα POSTκαι δείτε τι δίνει ο διακομιστής. Για παράδειγμα, θέλετε να ελέγξετε τη λειτουργία του συστήματος εξουσιοδότησης. Φυσικά, μπορείτε επίσης να εισάγετε χειροκίνητα το όνομα χρήστη και τον κωδικό πρόσβασής σας μέσω του προγράμματος περιήγησης και να δείτε τι συμβαίνει. Αλλά θα είναι πολύ πιο βολικό να γράψετε μια μικρή σειρά δοκιμών στις οποίες η αποστολή διάφορα παραδείγματασύνδεση και κωδικό πρόσβασης και ταυτόχρονα εμφανίζεται μια απάντηση από τον διακομιστή: επιτυχής εξουσιοδότηση ή όχι. Και εξετάζετε ήδη εάν το σενάριο εξουσιοδότησης λειτουργεί σωστά ή όχι. Χρησιμοποιείται για παρόμοιους σκοπούς Μονάδα cURL.

Τώρα ας ασχοληθούμε εγκατάσταση της μονάδας cURL στο Denwer:

  • Κατεβάστε το πακέτο επέκτασης: PHP5: πρόσθετες ενότητες" σε αυτόν τον σύνδεσμο: http://www.denwer.ru/packages/php5.html .
  • Εγκαταστήστε το πακέτο που κατεβάσατε (προ-διακοπή του διακομιστή εάν εκτελείται).
  • στο αρχείο" usr/local/php5/php.ini"αφαιρέστε το σχόλιο από τη γραμμή: " ;extension=php_curl.dll" αφαιρώντας τα εισαγωγικά στην αρχή της γραμμής.
  • Εκκινήστε τον διακομιστή.
  • Ελέγξτε τα δεδομένα phpinfo(). Αμα δεις" Η υποστήριξη cURL ενεργοποιήθηκε", τότε όλα είναι καλά. Αν όχι, τότε ελέγξτε προσεκτικά αν έχετε ακολουθήσει σωστά όλα τα βήματα.

Νομίζω ότι στο επόμενο άρθρο (και ίσως σε ένα), θα αναλύσουμε αυτήν την ενότητα χρησιμοποιώντας ήδη το παράδειγμα χρήσης της Σενάρια PHPοπότε μην αλλάζετε!

Ένας σύντομος οδηγός για όσους θέλουν να ρυθμίσουν το curl php στα Windows 8.1 x64. Εάν το curl δεν έχει ρυθμιστεί στον διακομιστή ιστού σας, τότε επόμενο λάθος: Μοιραίο σφάλμα: Κλήση σε απροσδιόριστη συνάρτηση curl_init().

Ρύθμιση του cURL

Αυτό που γράφεται παρακάτω είναι σχετικό για μια δέσμη Windows 8.1 x64 , Windows10 x64 + Apache 2.4.12 (win32) + Open SSl 1.0.1m + PHP 5.6.11 (php-5.6.11-Win32-VC11-x86).

  1. Κατεβάστε τη βιβλιοθήκη cURL http://winampplugins.co.uk/curl . Αποσυσκευάστε σε οποιονδήποτε φάκελο. Για παράδειγμα, "W:\WebServers\usr\local\curl".
  2. Η επέκταση=php_curl.dll πρέπει να είναι ενεργοποιημένη στο αρχείο διαμόρφωσης PHP php.ini.
  3. Το στοιχείο δεν είναι υποχρεωτικό, αλλά σε πολλές πηγές συνιστάται η εκτέλεση του. Λειτουργεί για εμάς χωρίς αυτό το στοιχείο. Από το φάκελο όπου είναι εγκατεστημένη η PHP, αντιγράψτε τις ακόλουθες βιβλιοθήκες στο φάκελο "C:\Windows\system32": libssh2.dll, php_curl.dll (βρίσκεται στον φάκελο ext), ssleay32.dll, libeay32.dll. Επιπλέον, το αρχείο ssleay32.dll πρέπει να αντιγραφεί στο "C:\Windows\SysWOW64".
  4. Προσθέστε στις μεταβλητές περιβάλλοντος στη μεταβλητή Path τη διαδρομή προς το φάκελο εγκατάστασης curl.exe και το αρχείο php.ini. Για παράδειγμα, "W:\WebServers\usr\local\curl;W:\WebServers\usr\local\php5". Ήμουν πολύ ευχαριστημένος που μέσα εμφανίστηκαν τα windows10 (1511). νέα διεπαφήεπεξεργασία μεταβλητών περιβάλλοντος. Έγινε πολύ βολικό να επεξεργαστείτε τις παραμέτρους.

Ενεργοποίηση υποστήριξης SSL για cURL

  1. Κάντε λήψη του αρχείου http://curl.haxx.se/ca/cacert.pem στο φάκελο όπου είναι εγκατεστημένη η βιβλιοθήκη curl.exe.
  2. Μετονομάστε το ληφθέν αρχείο σε curl-ca-bundle.crt
  3. Για επανεκκίνηση υπολογιστή.

Όσοι χρησιμοποιούν cURL μετά από ενημερώσεις στις 5.6.1, 5.5.17 αντιμετώπισαν το γεγονός ότι η λειτουργική μονάδα cURL σταμάτησε να λειτουργεί. Το πρόβλημα δεν έχει εξαφανιστεί από τότε. Ακόμη και στην τελευταία έκδοση της PHP 5.6.4, αυτό το πρόβλημα παρέμεινε.

Πώς ξέρετε εάν το cURL λειτουργεί για εσάς;

Δημιουργώ php αρχείοκαι αντιγράψτε εκεί:

Ανοίξτε το από τον διακομιστή. Αν η έξοδος είναι κάτι σαν:

Πίνακας ( => 468736 => 3 => 3997 => 0 => 7.39.0 => x86_64-pc-win32 => OpenSSL/1.0.1j => 1.2.7.3 => Πίνακας ( => dict => αρχείο => ftp => ftps => gopher => http => https => imap => imaps => ldap => pop3 => pop3s => rtsp => scp => sftp => smtp => smtps => telnet => tftp) )

Οπότε το cURL είναι εντάξει, αν είναι σφάλμα PHP, τότε υπάρχει πρόβλημα.

Πρώτα, φυσικά, ελέγξτε το αρχείο php.ini, βρείτε τη γραμμή εκεί

Επέκταση=php_curl.dll

Και βεβαιωθείτε ότι δεν έχει πριν από το ερωτηματικό.

Εάν συμβαίνει αυτό και το cURL δεν λειτουργεί, τότε μπορεί να πραγματοποιηθεί μια άλλη δοκιμή για να επιβεβαιωθεί η ασυνήθιστη κατάσταση. Δημιουργήστε ένα άλλο αρχείο php με περιεχόμενο:

Αναζητήστε το cURL στο πρόγραμμα περιήγησης, εάν υπάρχει μόνο μία αντιστοίχιση, τότε η μονάδα cURL δεν φορτώνεται:

Ταυτόχρονα, τόσο ο Apache όσο και η PHP λειτουργούν ως συνήθως.

Τρεις λύσεις:

  1. Μέθοδος 1 (όχι kosher). Εάν έχετε PHP 5.6.*, τότε πάρτε την έκδοση της PHP 5.6.0, από εκεί πάρτε το παλιό αρχείο php_curl.dll και αντικαταστήστε το με το νέο σας από την έκδοση, για παράδειγμα, PHP 5.6.4. Για όσους έχουν PHP 5.5.17 και άνω, πρέπει να λάβετε το ίδιο αρχείο από την PHP 5.5.16 και να το αντικαταστήσετε επίσης. Το μόνο πρόβλημα εδώ είναι να βρείτε αυτές τις παλιές εκδόσεις. Μπορείτε, φυσικά, να ρίξετε μια ματιά στο http://windows.php.net/downloads/snaps/php-5.6, αλλά προσωπικά δεν βρήκα αυτό που χρειαζόμουν εκεί. Και η ίδια η απόφαση κατά κάποιο τρόπο δεν είναι αρκετά kosher.
  2. Η δεύτερη μέθοδος (πολύ γρήγορη, αλλά και όχι kosher). Αντιγράψτε το αρχείο libssh2.dll από τον κατάλογο PHP στον κατάλογο Apache24bin και επανεκκινήστε τον Apache.
  3. Μέθοδος τρίτη (kosher - άνθρωποι kosher χειροκροτούν όρθιοι). Πρέπει να προσθέσετε το δικό σας Κατάλογος PHPστο PATH. Πώς να το κάνετε αυτό περιγράφεται πολύ καλά στην επίσημη τεκμηρίωση.

Ελέγχουμε:

Voila, η ενότητα cURL είναι στη θέση της.

Γιατί αυτό? Από πού προήλθε αυτό το πρόβλημα; Δεν υπάρχει απάντηση σε αυτό το ερώτημα, αν και ο μηχανισμός εμφάνισής του έχει ήδη περιγραφεί.

Το πρόβλημα φαίνεται να σχετίζεται με το γεγονός ότι η 5.6.1 υποτίθεται ότι θα κυκλοφορούσε με ένα ενημερωμένο libcurl 7.38.0. Αλλά αυτό δεν είναι γνωστό με βεβαιότητα, οι συντάκτες της PHP γνέφουν στον Apache, λέγοντας ότι υπάρχουν κάποια σφάλματα εκεί.

Ο μηχανισμός του προβλήματος: εάν το σύστημα PATH δεν περιλαμβάνεται Κατάλογος PHP, τότε όταν ξεκινά η υπηρεσία Apache, δεν μπορεί να βρει το νέο dll (libssh2.dll) που είναι μια εξάρτηση για το php_curl.

Σχετικές αναφορές σφαλμάτων:

Μοιραίο σφάλμα: Κλήση σε απροσδιόριστη συνάρτηση curl_multi_init() σε ...

Γενικά, υπήρχαν προβλήματα με το cURL στην PHP, φαίνεται, αν όχι πάντα, τότε πολύ συχνά. Κατά τη διαδικασία του γκουγκλάροντας το πρόβλημά μου, συνάντησα νήματα, μερικά από τα οποία ήταν πάνω από δώδεκα ετών.

Επιπλέον, το googling έδωσε μερικά ακόμη συμπεράσματα:

Υπάρχουν αρκετές "οδηγίες για ηλίθιους" στο Διαδίκτυο, στις οποίες λένε λεπτομερώς, με εικόνες, πώς να αποσχολιάσετε τη γραμμή extension=php_curl.dll στο αρχείο php.ini.

Στον επίσημο ιστότοπο της PHP, στην ενότητα για την εγκατάσταση του cURL, υπάρχουν μόνο δύο προτάσεις σχετικά με το σύστημα Windows:

Για να εργαστείτε με αυτήν την ενότητα στο αρχεία WindowsΤο libeay32.dll και το ssleay32.dll πρέπει να υπάρχουν στο σύστημα μεταβλητή περιβάλλοντοςΜΟΝΟΠΑΤΙ. Δεν χρειάζεστε το αρχείο libcurl.dll από τον ιστότοπο cURL.

Τα έχω διαβάσει δέκα φορές. Αλλαγή σε αγγλική γλώσσακαι να το διαβάσετε μερικές φορές στα αγγλικά. Κάθε φορά πείθομαι όλο και περισσότερο ότι αυτές οι δύο προτάσεις γράφτηκαν από ζώα, ή κάποιος απλώς πήδηξε στο πληκτρολόγιο - δεν καταλαβαίνω το νόημά τους.

Υπάρχουν επίσης μερικές τρελές συμβουλές και οδηγίες (κατάφερα να δοκιμάσω κιόλας).

Στον ιστότοπο αναφοράς σφαλμάτων PHP, έχω ήδη φτάσει κοντά στο να ξετυλίξω την ανάγκη να συμπεριλάβω τον κατάλογο με την PHP στη μεταβλητή συστήματος PATH.

Σε γενικές γραμμές, για όσους έχουν πρόβλημα με το cURL και που πρέπει να "συμπεριλάβουν έναν κατάλογο με PHP στη μεταβλητή συστήματος PATH", μεταβείτε στην οδηγία που ήδη αναφέρθηκε παραπάνω http://php.net/manual/ru/faq.installation .php#faq .installation.addtopath . Όλα είναι απλά εκεί και, το πιο σημαντικό, αυτό που πρέπει να γίνει είναι γραμμένο στην ανθρώπινη γλώσσα.

21 απαντήσεις

Μπορεί να έχετε ήδη μπούκλα

Ίσως δεν χρειάζεται να κατεβάσετε τίποτα:

  • Εάν χρησιμοποιείτε Windows 10 έκδοση 1803 ή νεότερη έκδοση, το λειτουργικό σας σύστημα συνοδεύεται από ένα αντίγραφο του curl που έχει ήδη διαμορφωθεί και είναι έτοιμο για χρήση.
  • Εάν έχετε περισσότερες εσωτερικές ανάγκες (π.χ. χρειάζεστε εκδόσεις cygwin, εκδόσεις τρίτων, libcurl, αρχεία κεφαλίδων, πηγαίους κώδικεςκ.λπ.), χρησιμοποιήστε τον οδηγό λήψης curl. Αφού απαντήσετε σε πέντε ερωτήσεις, θα εμφανιστεί μια λίστα με συνδέσμους λήψης.

    Εξαγωγή και προσαρμογή μπούκλας

    Βρείτε το curl.exe στο πακέτο που έχετε λάβει. μάλλον είναι κάτω από τον κάδο\ .

    Επιλέξτε μια θέση στον σκληρό σας δίσκο που θα χρησιμεύσει ως μόνιμο σπίτι για μπούκλες:

    • Αν θέλετε να κάνετε το curl τον δικό σας φάκελο, το C:\Program Files\curl\ ή το C:\curl\ θα κάνει.
    • Εάν έχετε πολλά ελεύθερα εκτελέσιμα και δεν θέλετε να προσθέσετε πολλούς ξεχωριστούς φακέλους στο PATH, χρησιμοποιήστε έναν μόνο φάκελο για αυτό το σκοπό, όπως C:\Program Files\tools\ ή C:\tools\ .

    Τοποθετήστε το curl.exe σε έναν φάκελο. Και μην μετακινείτε ποτέ ένα φάκελο ή τα περιεχόμενά του.

    Στη συνέχεια, θα θέλετε να κάνετε το curl διαθέσιμο οπουδήποτε στη γραμμή εντολών. Για να το κάνετε αυτό, προσθέστε το φάκελο στο PATH, ως εξής:

    1. Κάντε κλικ στο μενού έναρξης των Windows 10. Ξεκινήστε να πληκτρολογείτε "environment".
    2. Θα δείτε το αποτέλεσμα αναζήτησης. Επεξεργασία μεταβλητών περιβάλλοντος συστήματος. Επιλέξτε το.
    3. Ανοίγει το παράθυρο Ιδιότητες συστήματος. Κάντε κλικ στο κουμπί Μεταβλητές Περιβάλλοντοςστον πάτο.
    4. Επιλέξτε τη μεταβλητή "Διαδρομή" στην ενότητα "Μεταβλητές συστήματος" (κάτω πλαίσιο). Κάντε κλικ στο κουμπί Αλλαγή.
    5. Κάντε κλικ " Προσθήκη"και επικολλήστε τη διαδρομή προς το φάκελο όπου βρίσκεται το curl.exe.
    6. Κάντε κλικ ΕΝΤΑΞΕΙ,αν χρειαστεί. Κλείστε τα ανοιχτά παράθυρα της κονσόλας και ανοίξτε τα ξανά για να λάβουν το νέο PATH.

    Τώρα απολαύστε την πληκτρολόγηση curl σε οποιαδήποτε γραμμή εντολών. Ώρα για διασκέδαση!

    Για να εκτελέσετε το curl από τη γραμμή εντολών

    α) Κάντε κλικ κάντε δεξί κλικεικονίδιο ποντικιού "Ο Υπολογιστής μου"

    β) Επιλέξτε "Ιδιότητες"

    δ) Κάντε κλικ στην καρτέλα [Για προχωρημένους] - κουμπί "Μεταβλητές περιβάλλοντος".

    ε) Στην ενότητα "Μεταβλητή συστήματος" επιλέξτε "Διαδρομή" και "Επεξεργασία"

    στ) Προσθέστε ένα ερωτηματικό και στη συνέχεια τη διαδρομή προς το σημείο όπου τοποθετήσατε το curl.exe σας (π.χ. D:\software\curl)

Τώρα μπορείτε να εκτελέσετε από τη γραμμή εντολών πληκτρολογώντας:

Curl www.google.com

Ξεκινώντας με τα Windows 10 έκδοση 1803 (και παλαιότερα με το Insider Build 17063), δεν θα εγκαθιστάτε πλέον το curl . Τα Windows περιέχουν το δικό τους curl.exe (και tar.exe) στο C:\Windows\System32\ , στο οποίο μπορείτε να αποκτήσετε απευθείας πρόσβαση από το κανονικό CMD .

C:\Users\vonc>C:\Windows\System32\curl.exe --έκδοση curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL-Ημερομηνία κυκλοφορίας: Πρωτόκολλα: dict file ftp ftps http https imap imaps pop3 pop3s smt smtps telnet tftp Χαρακτηριστικά: AsynchDNS IPv6 Μεγάλο αρχείο SSPI Kerberos SPNEGO NTLM SSL C:\Users\vonc>C:\Windows\System32\tar.exe --έκδοση bsdtar 3.3.2 - libarchive 3.3.2.2 zlib. ipp

Αξίζει πιθανώς να σημειωθεί ότι το Powershell v3 και πάνω μεταγενέστερες εκδόσειςπεριέχει το cmdlet Invoke-WebRequest, το οποίο έχει κάποιες δυνατότητες κύρτωσης. Πιθανώς αξίζει να αναφερθούν τα cmdlet New-WebServiceProxy και Invoke-RestMethod.

Δεν είμαι σίγουρος αν θα λειτουργήσουν για εσάς ή όχι, αλλά παρόλο που δεν είμαι σε Windows, πρέπει να πω ότι βρίσκω την προσέγγιση αντικειμένων που χρησιμοποιεί το PS, είναι πολύ πιο εύκολο να δουλέψω με βοηθητικά προγράμματα όπως curl, wget κ.λπ. . Ίσως αξίζουν μια ματιά

Μπορείτε να δημιουργήσετε τελευταία έκδοση curl, openssl, libssh2 και zlib σε 3 εύκολα βήματα ακολουθώντας αυτό το σεμινάριο.

Το Curl είναι κατασκευασμένο στατικά, ώστε να μην χρειάζεται να αναδιανέμετε τα απαραίτητα δυναμικός χρόνοςεκτέλεση.

Μπορείτε επίσης να κάνετε λήψη μιας προκατασκευασμένης έκδοσης (x86 και x64) από

Έψαχνα για τη διαδικασία λήψης μπούκλακαι κάθε όπου είπαν αντιγράψτε το αρχείο curl.exe στο System32αλλά δεν παρείχαν άμεσο σύνδεσμο. έτσι εδώ μπορείτε να απολαύσετε curl.exeεύκολο μέσα φάκελος binαπλά

αποσυμπιέστε το και μετά μεταβείτε στο φάκελο bin όπου λαμβάνετε το αρχείο exe

Σκέφτηκα να γράψω ακριβώς αυτό που έκανα (Windows 10, έκδοση 64-bit):

Επιλέξτε το εκτελέσιμο curl.

Επιλέξτε Win64.

Επιλέξτε καθολική.

Επιλέξτε οποιοδήποτε.

έκδοση curl: 7.53.1 - SSL με δυνατότητα SSH Ενεργοποιημένο. Credit: Viktor Shakats. Αυτό το πακέτο είναι ο εκτελέσιμος τύπος curl. Αυτός ο σύνδεσμος θα σας δώσει ένα προ-μεταγλωττισμένο δυαδικό αρχείο curl (ή σε ορισμένες περιπτώσεις, χρησιμοποιώντας τις πληροφορίες που παρέχονται στη σελίδα που σας μεταφέρει αυτός ο σύνδεσμος). Μπορείτε ή όχι να εγκαταστήσετε το libcurl ως κοινόχρηστη βιβλιοθήκη/DLL. Το αρχείο συσκευάζεται χρησιμοποιώντας 7zip. Το 7zip είναι μια μορφή συμπίεσης αρχείων.

Κάντε κλικ στη λήψη.

Θα πρέπει να έχετε το αρχείο curl-7.53.1-win64-mingw.7z στον φάκελο λήψεων.

Εγκαταστήστε το 7-Zip εάν δεν το έχετε.

Κάντε δεξί κλικ, 7-Zip, Εξαγωγή εδώ. Αντιγράψτε και επικολλήστε το εξαγόμενο αρχείο κάπου όπως το Z:\Tools\

Αν κοιτάξετε στον φάκελο bin, θα δείτε το curl.exe. Εάν κάνετε διπλό κλικ σε αυτό, το παράθυρο θα αναβοσβήσει γρήγορα και θα εξαφανιστεί. Για να το εκτελέσετε πρέπει να χρησιμοποιήσετε γραμμή εντολών. Μεταβείτε στο φάκελο bin και πληκτρολογήστε curl ακολουθούμενο από τις επιλογές σας για να υποβάλετε το αίτημα. Πρέπει να χρησιμοποιήσετε διπλά εισαγωγικά . Τα μεμονωμένα εισαγωγικά δεν θα λειτουργούν με το curl στα Windows.

Τώρα πρέπει να προσθέσετε το curl στην προσαρμοσμένη μεταβλητή Path, ώστε να μην χρειάζεται να μεταβείτε επιθυμητός φάκελοςγια να ξεκινήσει το πρόγραμμα. Μεταβείτε σε "Αυτός ο υπολογιστής", "Υπολογιστής", "Ιδιότητες συστήματος", " Επιπλέον επιλογές system", συνδεθείτε ως διαχειριστής (δεν είστε διαχειριστής, σωστά; Σωστά;). Μεταβλητές περιβάλλοντος, μεταβλητές συστήματος, δείτε τη λίστα και επιλέξτε "Διαδρομή", μετά "Επεξεργασία", μετά Νέο και, για παράδειγμα,

z:\tools\curl-7.53.1-win64-mingw\bin

Μπορείτε να προσθέσετε μια ανάστροφη κάθετο αν θέλετε, δεν νομίζω ότι έχει σημασία. Πατήστε το κουμπί μετακίνησης προς τα πάνω μέχρι να βρεθεί στην κορυφή της λίστας και να μπορείτε να το δείτε εύκολα από την προηγούμενη οθόνη. Πατήστε OK, OK, OK και μετά ανοίξτε μια γραμμή εντολών και μπορείτε να εκτελέσετε το curl πληκτρολογώντας curl από οποιονδήποτε φάκελο ως οποιονδήποτε χρήστη. Μην ξεχνάτε τα διπλά εισαγωγικά σας.

Αυτή είναι η απάντηση που θα ήθελα να λάβω.

Αυτό το πρόγραμμα εγκατάστασης με διευκόλυνε http://www.confusedbycode.com/curl/

"Μπορείτε να εγκαταστήσετε το cURL για Windows με λίγα μόνο κλικ. Απλώς κατεβάστε και εκτελέστε το πρόγραμμα εγκατάστασης από τον παρακάτω πίνακα και κάντε κλικ στην επιλογή Εγκατάσταση. Η προεπιλεγμένη εγκατάσταση περιλαμβάνει.