שְׁאֵלָה:
איך לגרום לפייתון לעבוד עם Lighttpd?
Mark Ingram
2012-07-30 16:49:50 UTC
view on stackexchange narkive permalink

יש לי הגדרת Lighttpd ב- Raspberry Pi שלי, אבל הייתי רוצה שהקוד בצד השרת יעבוד עכשיו. אני מכיר את PHP, אבל אני מבין שעלי לנסות את פייתון מכיוון שהוא אמור להיות שפת ה"עבור אל "של ה- Raspberry Pi. כיצד אוכל להשיג Python המטפל בקוד בצד השרת באמצעות Lighttpd?

http://www.penzilla.net/tutorials/python/cgi/ קישור שבור אבל תודה על הכתיבה הנהדרת. פי שלי מגיע מחר!
שתיים תשובות:
Steve Robillard
2012-07-30 19:39:18 UTC
view on stackexchange narkive permalink

מה שאתה צריך זה תמיכה ב- CGI עבור lighttpd.

פתח את קובץ התצורה lighttpd ( /etc/lighttpd/lighttpd.conf ) ובטל את התגובה של השורה "mod_cgi" (הסר את ה- # מתחילת השורה אם קיים) או הוסף שורה זו אם אינה קיימת.

  server.modules = ("mod_access", "mod_alias", "mod_accesslog", "mod_auth", "mod_ssi", "mod_cgi", "mod_compress", "mod_fastcgi", "mod_rewrite" , "mod_magnet",)  

הוסף את הדברים הבאים בתחתית הקובץ:

  $ HTTP ["url"] = ~ "^ / cgi -סל / "{cgi.assign = (" .py "= >" / usr / bin / python ")}  

הפעל מחדש את הדמון lighttpd:

  שירות sudo lighttpd כוח טעינה מחדש  

ואז צור ספריה cgi-bin תחת ספריית הבסיס של שרת האינטרנט שלך. כל קבצים המסתיימים ב- .py בספריה זו יעובדו על ידי Python.

כעת אתה יכול לכתוב סקריפטים של Python לטיפול בבקשות אינטרנט. ייתכן שתרצה לקרוא את המדריך הזה בנושא כתיבת תוכניות CGI עם Python.

אם מצד שני, אתה מעדיף להשתמש במסגרת כדי לטפל בחלק מהפרטים ברמה הנמוכה ולשפר את המפתח. פרודוקטיביות, אני מציע לבדוק את web.py. אתה יכול להתקין אותו באמצעות apt:

  sudo apt-get install python-webpy  

Lucas at the Cloud 101 Blog פרסם מדריך נהדר של על כתיבת דפי אינטרנט באמצעות מסגרת האינטרנט.

האם זה FastCGI או CGI?
שים לב ש- CGI רגיל מחייב הפעלת מתורגמן פיתון לכל בקשה ולכן הוא מתאים רק לבקשה מדי פעם.
למרבה הצער זה עבד רק באופן חלקי. עכשיו אני יכול להריץ פיתון על ידי קריאה "http: // (IP) /cgi-bin/test.py?parameter=xxx" אבל לא "http: // (IP) /cgi-bin/test.cgi?parameter=xxx "- המאוחר יותר נותן שגיאת 404 ...
@576i נסה לשנות את השורה הזו cgi.assign = (".py" => "/ usr / bin / python") ל- cgi.assign = (".cgi" => "/ usr / bin / python")
@Steve. למרבה הצער זה לא עובד. אני עדיין מקבל את השגיאה 404, אך כעת "http: // (IP) /cgi-bin/test.py?parameter=xxx" פשוט יציע לי להוריד את הקובץ.
@576i במקום להמשיך בדיון זה בהערות של שאלה אחרת, אנא פתח שאלה חדשה והוסף מה עובד ומה ניסית. לאחר מכן אמחק את ההערות הללו. BTW כל סיבה מדוע אתה לא יכול פשוט ללכת עם סיומת .py, שלדעתך עובדת?
404 מוחזר כאשר הגדרת הכינוי חסרה. אנא ראה את ההודעה שלי למטה.
NDB
2017-10-26 08:52:27 UTC
view on stackexchange narkive permalink

התשובה המקובלת לא עבדה עבורי והיא גם מתעלמת מהחבילות שהוגדרו מראש שזמינות ל- Lighttpd.

הדרך הנכונה להתקין Python ב- Lighttpd עבור ה- Raspberry היא:

הפעל תחילה את cgi על ידי

sudo lighttpd-enable-mod cgi

זה יוצר קובץ תצורה חדש עבור Lighttpd :

/etc/lighttpd/conf-enabled/10-cgi.conf

ערוך את קובץ התצורה nano / etc / lighttpd / conf מופעל / 10-cgi.conf , כדי להיראות דומה לזה

  server.modules + = ("mod_cgi") $ HTTP ["url"] = ~ "^ / cgi-bin / "{alias.url + = (" / cgi-bin / "= >" / var / www / cgi-bin ") cgi.assign = (" .py "= >" / usr / bin / python ",)}  

וודא כי פייתון 2 מותקן על ידי ביצוע:

/ usr / bin / python --version

עכשיו, הפעל מחדש

sudo /etc/init.d/lighttpd טעינה מחדש של כוח

בהצלחה!



שאלה ותשובה זו תורגמה אוטומטית מהשפה האנגלית.התוכן המקורי זמין ב- stackexchange, ואנו מודים לו על רישיון cc by-sa 3.0 עליו הוא מופץ.
Loading...