11-05-2005, 18:26
|
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
|
|
חבר מתאריך: 25.10.01
הודעות: 42,775
|
|
חתיכת בעייה :)
בתגובה להודעה מספר 1 שנכתבה על ידי דוכובניק שמתחילה ב "בעיה סבוכה ש windows,iis,linux,apach ושפת c++ משמשים בה בערבוביה"
אקדים ואומר: מעטים האנשים על כדוה"א שעדיין משתמשים ב CGI כ CGI "אורגינל" (וואלה זה אתר כזה, לדוגמא) - כלומר במובן של הרצת תוכנה בינארית שנכתבה באופן עצמאי (מה שאתה עושה).
הנוהג המקובל הוא לכתוב בשפת צד שרת, והנוהג הזה הוא גם הגיוני, בייחוד בהתחשב בזה ששפות צד השרת מקבילות ביכולתן (ולפעמים אף עולות על) שפות התכנות הנפוצות. במקרה שלך, שפת PHP יודעת לעשות כל מה ש ++C יודעת לעשות, ואף יותר.
אחרי ההקדמה הזאת, אענה לשאלותיך:
על משתני סביבה של IIS, שאל בפורום Windows ושרתי מיקרוסופט. זה לא לינוקס, וזה ממש לא קוד פתוח
אכן לא תוכל להריץ בלינוקס קובץ שקומפל עבור חלונות (למעט עם טריק מסויים, אבל אתה לא רוצה להריץ אתר Production על זה...)
קימפול קובץ - g++ -Wall filename.cpp -o myprogram.cgi ייצור לך מהקובץ filename.cpp תוכנה שנקראת myprogram.cgi, שאותה תוכל לשים על מחשב מרוחק, בתנאי כמובן שאין הבדל בין ספריות הריצה (runtime libraries). אם אתה מוכן להקריב מקום, אפשר גם לקמפל עם static- ואז ספריות הריצה ישולבו בתוך הבינארי, מה שאמור למנוע בעיות בכל מקרה (אך מומלץ לא להשתמש בזה מסיבות שונות, רק אם לא עובד לך בדרך הרגילה תשתמש בפרמטר הזה. מומלץ להתקין הפצה עדכנית של לינוקס, ואז לא צפויות בעיות...). אחרי שתעלה את הקובץ למחשב מרוחק, צריך לוודא שהוא מסומן כקובץ ריצה. ב FTP עושים זאת על ידי הפקודה SITE CHMOD 755 myprogram.cgi (אני מקווה שאני זוכר נכון. אני תמיד עושה את זה דרך SSH...)
התקנת אפאצ'י כלולה בכל אחת מההפצות הנפוצות, רק תבחר את זה בהתקנה. לגבי מיקום cgi-bin, אחרי שתתקין את ההפצה, תוכל לכתוב את הפקודה find / -name cgi-bin ואז תדע איפה הספריה ממוקמת (אין לזה תשובה חד משמעית, כי זה עניין של הגדרה בהתקנה, וכל הפצה שמה במקום אחר).
ללמוד לינוקס, בייחוד אם אתה מתכנת ומודע לכך שלא הכל צריך לעבור דרך GUI (ואם כתבת אפליקציית CGI, סביר להניח שאתה מודע ;-)), לא לוקח כמה חודשים. אולי כמה ימים. אם אתה משקיע מרצך, אפילו פחות. אני אישית למדתי את לינוקס בתקופה הרבה פחות ידידותית מהיום, ולמדתי ביום אחד לנהל את אפאצ'י, Squid (פרוקסי) ו BIND (שרת DNS), על כל אפשרויותיהם. זה לא ממש מסובך, זה פשוט לשנות הגדרות בקובץ קונפיגורציה, שהוא מתועד לחלוטין... אם קוראים את ההוראות, הכל עובד מצויין...
|