-
שלום למשתמשי הפורום היקרים.
יש לי קוד PHP ששולח בקשת חיפוש ל API של מנוע החיפוש elasticsearch ומחזיר מערך של תשובות.
הקוד עובד מצויין כשאני מריץ אותו על המחשב האישי שלי שמותקן עליו WAMP.
אבל בשרת המרוחק שלי שהתקנתי עליו PHP בנפרד כי הוא עובד עם nginx, אני מקבל שגיאה:Uncaught RuntimeException: Elasticsearch-PHP requires cURL, or a custom HTTP handler.
איך אני יכול ליצור CURL מותאם אישית?
נ.ב. הקובץ php.ini כרגע ריק.
תודה רבה על העזרה...
-
@ass אמר בקובץ cURL מותאם אישית.:
נ.ב. הקובץ php.ini כרגע ריק.
למען השם, אל תשתמש בקובץ ini ריק ב-production!
(אני לא מכיר PHP מספיק כדי להגיד לך מה יפצוץ לך בפנים, אבל ברור לי שזה יהיה משהו)ולעצם השאלה, צריך להפעיל את ה-extension של curl בקובץ ה-ini.
שוב, אני לא בקי ב-PHP אבל אתה אמור להצליח אם תבדוק איך זה נעשה בקובץ ה-ini ב-WAMP שלך. -
@yossiz אמר בקובץ cURL מותאם אישית.:
extension=curl
אכן טעיתי! סידרתי, אבל שורת הפקודה מביאה לי את השגיאה:
Warning: PHP Startup: Can't load module 'curl.exe' as it's linked with 2.35, but the core is linked with 14.29
יתכן שהורדתי קובץ CURL לא מתאים?
אני מבין שזה קשור לחבילות של מיקרוסופט -
@yossiz אמר בקובץ cURL מותאם אישית.:
למען השם, אל תשתמש בקובץ ini ריק ב-production!
(אני לא מכיר PHP מספיק כדי להגיד לך מה יפצוץ לך בפנים, אבל ברור לי שזה יהיה משהו)איפה אני יכול למצוא קובץ INI בסיסי שמכיל את מה שצריך, הוא לא בא ביחד עם ההתקנה.
עכשיו לדוגמא יש לי שגיאה של:Uncaught Error: Call to undefined function openssl_sign() in C:\tools\nginx-1.21.3\html\vendor\firebase\php-jwt\src\JWT.php
זה לדעתי בגלל זה.
-
@ass עבור השגיאה הנ"ל מן הסתם צריך שורה זו בקובץ:
extension=openssl
אם אני זוכר נכון, כל הורדה של PHP מגיעה עם שני קבצי ini לדוגמה, אחד עם סיומת development והשני עם סיומת production.
אתה אמור להעתיק את זה שאתה רוצה בהתאם לסביבת העבודה ולהתאים אותו לצרכים שלך.זה בקווים כלליים, אני לא בקי מספיק להדריך בפרטות
באופן כללי נראה לי שאפשר לומר: אתה לא נוהג ברכב לפני שלמדת נהיגה, כמו"כ אתה לא מריץ מנוע PHP לפני שלמדת לפחות בצורה בסיסית על ההגדרות המתאימות. יש תיעוד, תשתמש בו. אם יש שאלות, יש פה אנשים שמכירים PHP.
-
@ass אמר בקובץ cURL מותאם אישית.:
וגם ליצור הפניה מדוייקת לקבצים, כי אפילו השמות של הקבצים לא נכונים
אני לא חושב שאתה צודק. לפני שאתה מטיח האשמות על PHP תטרח להבין את קובץ ה-INI. לפי מה שאני זוכר בהתקנה רגילה אפשר פשוט להפעיל את התוסף הרצוי על ידי הורדת ה-
;
מהשורה הרלונטית.
לא צריך להצביע על נתיב מדוייק. יש הגדרה שאומרת ל-PHP איפה לחפש תוספים. -
@yossiz אמר בקובץ cURL מותאם אישית.:
@ass אמר בקובץ cURL מותאם אישית.:
לא צריך להצביע על נתיב מדוייק. יש הגדרה שאומרת ל-PHP איפה לחפש תוספים.אין לי עיניין להתעקש ח"ו, אבל אני יסביר למה התכוונתי.
לדוגמא, בקובץ INI שבא עם PHP הנתיב לקובץ נראה כך:extension=openssl
אבל באמת שם הקובץ הוא:
extension= php_openssl.dll
לא הייתי אמור להכניס את השם הנכון?
-