ההצעה שלי להתקנת Fedora

כל מי שמכיר אותי יודע שאני חובב מושבע של הפצות מבוססות רד-האט (למרות הביקורות שיש לי נגד החברה). אישית אני משתמש בפדורה כאן בבית ברוב המחשבים שיש לי (ה-DNS המורכב שיש שלי אמנם מבוסס דביאן, כי הייתי צריך הפצה להתקנה על מחשבון קטן מאוד), ואחד הבעיות הגדולות שיש לי עם התקנות שמבוססות רד-האט/פדורה/CentOS – זו צורת ההתקנה שלהם.

מבחינה היסטורית, הפצות לינוקס היו הראשונות להשתמש ביכולות הגרפיות של המחשב. למי שזוכר, חברת Caldera האמריקאית היתה הראשונה להציע התקנה גרפית מלאה שכללה … משחק טטריס שתשחק בזמן שההתקנה שופכת את החומר על הדיסק הקשיח. עם השנים גם מיקרוסופט למדה לשפר את ההתקנה בשימוש גרפיקה ואפילו SUN החלו בגירסאות סולאריס 10 ומעלה להשתמש בהתקנה גרפית. 

כיום בפדורה (ובמה שיהיה RHEL-7 בקרוב) יש התקנה גרפית שהיא פשוט זוועתית. כפתורים שנמצאים במיקומים מוזרים, חלקי הגדרות שפשוט לא עובדות (התקנתם לאחרונה CentOS 6 ושמתם לב שלמרות שהגדרתם כרטיס רשת והוא החליט שזה רעיון רע לכתוב את ההגדרות לדיסק?) ובכלל חוויית ההתקנה נותנת הרגשה מוזרה שאותם אנשים שבנו את GNOME-3 הזוועתי ("אסור לשים אייקונים על הדסקטופ") – ידם היתה גם שם. אפשרויות ההתקנה הטקסטואליות נזרקו החוצה והתקנה דרך VNC נעלמה לה אי שם. האפשרויות היחידות להתקנה הן האפשרויות הגרפיות שתיארתי לעיל, או להפעיל את ה-DVD במצב LIVE ומשם להריץ את ההתקנה.

הבוקר הייתי צריך להרים שרת VM נוסף לפרויקט שאני חושב עליו ובזמן ההתקנה חשבתי על הנושא ותהיתי: למה לא להתקדם הלאה?

תחשבו על זה: בין אם אתם מתקינים לינוקס בבית על Virtual Box או על VMWare או אפילו על (יאכס!) Hyper-V או גם אם אתם מקימים שרת פיזי, יש לכם אתכם תמיד מכשיר נוסף: מחשב נייד, או טלפון חכם או טאבלט, וכולם מסוגלים להציג דפי HTML בצורה יפה. מדוע שלא נשתמש בזה?

בכך נקבל בעצם כמה דברים:

  • מבחינת התקנה, ישנם אנשים רבים מוכשרים שישמחו לתרום עיצוב גרפי חדש ומודרני לפדורה שיפעלו על כל דפדפן סטנדרטי.
  • אם אתם נמצאים באיזו חוות שרתים קופאים מהטמפרטורות, תוכלו להמשיך את ההתקנה מבחוץ דרך המחשב נייד או טאבלט או הסמארטפון שלכם
  • סוף סוף תהיה גרפיקה ומראה ויזואלי יותר עשיר ועוזר יותר – להתקנה ולמתקין עצמו.
  • הקץ לזוועה הגרפית של כפתורים שנמצאים ב-תחפש-אותי-במקום-שאני-לא-אמור-להיות…
  • התקנה כזו יכולה להתקבל בברכה אצל הפצות אחרות כמו אובונטו, דביאן ואפילו ב-SuSE, ואולי סוף סוף תהיה חוויית התקנה אחידה להפצות לינוקס שונות..
  • אין צורך עוד להסתבך עם KVM שמציג חצי מסך התקנה ושכל כפתור שנוגעים בו מכפיל את הלחיצה פי 100 (אהלן נטויז'ן!)

הצעתי את הרעיון לרשימת תפוצת Devel ב-Fedora, נראה מה הם יאמרו.

מה דעתכם?

טיפ: שדרוג וורדפרס ל-3.2 עם CentOS 5.5/5.6

מי שמשתמש בוורדפרס 3 ויכנס ללוח בקרה, סביר להניח שיראה הודעה שגירסת וורדפרס 3.2 יצאה. הגירסה העברית עדיין לא יצאה, אבל זה עניין של ימים עד שזה ישוחרר גם.

אם אתה משתמש ב-CentOS 5.5 ללא פאנל כמו cPanel (שזורקת לכל הרוחות את כל ה-RPMS של Apache, PHP, MySQL וכו’) ואתה לא נוהג לקמפל במכונה שלך, תמצא את עצמך בבעיה קטנה: גירסת PHP האחרונה שיש שם היא 5.1.6 ו-וורדפרס החדש דורש מינימום גירסה 5.2.4.

מה האפשרויות שיש?

  • אפשרות הראשונה היא להתקין את PHP 5.3 דרך ה-RPMS שנמצאים ב-RPMFORGE. החבילות נקראות php53 עם המשך שם (כמו php53-common). הבעיה היא שאינך יכול להשאיר גם את ה-PHP הישן וגם את PHP 5.3 למערכת, תצטרך להסיר את הקודם ולהתקין את הישן, שזה, איך לאמר בעדינות, קצת בעייתי. (אפשר לפתור זאת בכמה שורות סקריפט פשוטות אבל יש פתרון יותר אלגנטי בהמשך).
  • אפשרות שניה היא לקמפל PHP 5.3 הגירסה האחרונה או PHP 5.2, אבל אז צריך להכניס את כל סביבת הקומפליציה למכונה שלך בשביל לבצע זאת (אפשר כמובן להעתיק קבצים לקובץ tar.bz2 ולזרוק לשרת, אבל אז תצטרך לשבור את הראש על קישוריות לכל מיני shared libraries וכו’, צעד מעולה לשרוף זמן ולהשבית בינתיים שרת).
  • אפשרות שלישית היא אפשרות שמצאתי אותה הכי נוחה: בחור בשם אנדי בנה מחדש את ה-RPMS של PHP 5.3 תחת השמות הרגילים (לא PHP53). כל מה שצריך לעשות זה להתקין RPM שמוסיף repository, לתת פקודה להתקין PHP (מכיוון שיש לך PHP בשרת, הוא פשוט ישדרג גירסה), להפעיל מחדש את שרת ה-Apache וזהו. 2 דקות עבודה.

השיטות שאני מדבר עליהם הם כמובן לשדרג ל-PHP 5.3 (הגירסה האחרונה). אם יש לכם מספר אתרים על השרת, כדאי לנסות את האתרים שלכם על מכונת טסטים לפני שמשדרגים בשרת פרודקשן. וורדפרס עובד עם PHP 5.3 בצורה מעולה וכך גם רוב האפליקציות, אבל אם יש לכם הרבה אתרים על השרת שלכם, עדיף להיות בטוחים לפני שרצים לשדרג אפליקציה קריטית כזו.

בהצלחה

הגיע הזמן לשדרג

ושוב מגיעים לאותו הזמן …

גירסת CentOS 5.6 שוחררה לפני מס’ ימים. לקח לגירסה זו קצת זמן להגיע החוצה (מאחר ואותם מתנדבים של סנטוס עסוקים גם בלקמפל מחדש את RHEL-6 לגירסת סנטוס 6.0 בניכוי גרפיקה ודברים אחרים ששייכים בלעדית לרד-האט), ומכיוון שהחבר’ה היו עסוקים בכל עניין הקימפול, עדכוני אבטחה לא שוחררו כבר מס’ חודשים.

עכשיו הכל מגיע.

שדרגתי 10 שרתים אישיים שלי ובינתיים נראה שהכל תקין. גירסת הקרנל זינקה ל-2.6.18-238, גם glibc עודכן ושאר ירקות מה שאומר ש… כן, צריך לעשות reboot.

אז קחו לכם את היומן, ותתכננו שדרוג לשרתי פרודקשן, stage וטסטים. יש המון עדכונים (אצלי זה נע בין 200 ל-600 מגה עדכונים פר שרת, תלוי כמובן מה מותקן בשרת), וכדאי לשים לב שעדכונים גם יוצרים קבצי rpmnew שכדאי לשים אותם בצד (אם יש צורך בהם) ולא להשאיר אותם על שרתי פרודקשן.

בהצלחה 🙂

מדריך: אתרים קטנים וחסכון כספי ניכר (חלק שני)

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

נתחיל בהקמת השרת. השרת יכול להיות כמעט כל מחשב ישן, אולם לפני שאתה ניגש לנער את האבק מהמחשב הענתיקה שלך, כדאי שתיקח בחשבון את הפרט החשוב הבא: למחשבים הישנים יש גם ספקי כח שצורכים די הרבה חשמל והם יצרכו אותו באותו “שרת” 24 שעות, 7 ימים בשבוע, מה שאומר שיש סיכוי לא קטן שחשבון החשמל שלך יגדל. מה אפשרי לעשות? כדאי לחשוב אם להשקיע במחשב בתצורת Mini ITX, מחשבים מבוססים לוח ומעבד של VIA לדוגמא, או לוחות עם מעבד אינטל ATOM והכי חשוב: מארז ITX. אלו מארזים שמגיעים עם ספקי כח חיצוניים קטנטנים ושמשתמשים בהרבה פחות חשמל. מעבד ATOM לדוגמא צורך רק 7 וואט שזו צריכה ממש מזערית מול כל פנטיום 4 או כל מעבד שולחני רגיל. כדאי לשים לב גם לדבר הבא: אותו “שרת” לא הולך לקבל כמויות של מיליוני Hits כך שמעבד ATOM מספיק בהחלט לשרת קטנטן.

לאחר שהמחשב מוכן ומחובר לרשת (חיבור חוטי בלבד), נתקין עליו את הפצת הלינוקס שאנו מעוניינים, וכאן ישנה נקודה חשובה: עדיף להתקין הפצה המוגדרת מראש לעדכונים למשך זמן רב מאשר הפצה שמשתנה כל שנה. במילים אחרות: עדיף Ubuntu LTS או CentOS מאשר Ubuntu רגיל או Fedora או Open SuSE. ההתקנה עצמה צריכה לכלול חלקים שאתם צריכים, בין אם זה שרת MySQL או PostgreSQL, שרת Apache, תמיכת PHP וכו’, הכל בהתאם להעדפות ולמה שתריצו על אותו שרת.

ההתקנה עצמה צריכה לכלול חלקים שאתם צריכים, בין אם זה שרת MySQL או PostgreSQL, שרת Apache, תמיכת PHP וכו’, הכל בהתאם להעדפות ולמה שתריצו על אותו שרת. אחד ההגדרות הכי חשובות בשרת היא כתובת IP קבועה ולא כתובת IP מה-DHCP שייספק הנתב הביתי שלכם. דבר זה חשוב מאוד ותיכף נגיע אליו. יש להגדיר משתמש רגיל בו ניכנס למערכת על מנת לעבוד ולתחזק את השרת הקטן.

לאחר שההתקנה הסתיימה, נצטרך לבנות או להעביר את התוכן ואפליקציית ה-WEB שלנו. ישנם כאלו שישימו את האתר עצמו במחיצת ברירת המחדל (ב-Centos זה var/www/html/). מומלץ לשים את הדברים במחיצה נפרדת ושונה מההגדרות ברירת המחדל (היכן שתרצו, יש כאלו שישמו ב-opt/, אחרים ישימו ב-home/user/ שלהם, או כל מקום אחר). חשוב שבזמן העברת האפליקציה לשרת, תהיה מחיצת logs ששרת ה-Apache יכתוב לוגים של שגיאות וכניסות אליה. יש לוודא כי ההרשאות למחיצה אינן כתיבה/קריאה/הרצאה לכל העולם ואחותו (777), אלא משהו באזור ה-755 (כתיבה/קריאה/הרצאה לבעלים, השאר קריאה והרצה).

כעת נגדיר לנו שרת וירטואלי בשרת ה-Apache שהוא יהיה זה שיהיה אחראי על האפליקציית Web שלנו. קובץ הקונפיגורציה (נקרא לו לשם הדוגמא web.conf) ישב במחיצה etc/httpd/conf.d/ ב-Centos או etc/apache2/sites-available/ באובונטו). מה יהיה בתוך אותו קובץ? את הטקסט הבא

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/web/www/myblog
ServerName mydomain.com
ServerAlias www.mydomain.com
ErrorLog /var/web/www/logs/blog-error-log
LogFormat “%h %l %u %t “%r” %>s %b “%{Referer}i” “%{User-Agent}i”” combined
CustomLog /var/web/www/logs/blog-access_log combined
</VirtualHost>

נעבור על השורות:

  • שורה ראשונה אומרת לשרת הוירטואלי של אפאצ’י להאזין לפורט 80
  • בשורה שניה אנו מגדירים בעצם מי מקבל את הדואר על האתר הזה.
  • שורש שלישית אומרת מהו בעצם מחיצת ה”שורש” שבו תשב אפליקציית ווב או הדפים שלנו
  • שורה רביעית אומרת מה שם ה-Domain שקנינו ואיתו אנו משתמשים
  • שורה חמישית נותנת לנו כינוי נוסף לשרת שלנו (אותו שם עם תוספת WWW בהתחלה)
  • שורה שישית אומרת להיכן יכתבו השגיאות, אם יש.
  • שורה שביעית אומרת איך בעצם יורכב הלוג של הגישה ומה בעצם יכתב באותו לוג מהפרטים שהדפדפנים של הגולשים נותנים בתוספת פרטים כמו שעה, כתובת IP וכו’.
  • שורה שמינית אומרת להיכן יכתב לוג הגישה ובאיזו צורה הוא יכתב
  • שורה תשיעית מסיימת את הגדרות השרת וירטואלי

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

משתמשי אובונטו, לאחר שהגדירו את הקובץ, יצטרכו להוסיף לינק לקובץ אל תוך etc/apache2/sites-enables/

לאחר שהגדרנו את הקובץ, נפעיל את שרת ה-Apache מחדש: service httpd restart ב-CentOS או service apache2 restart באובונטו. לאחר ההפעלה אם לא התקבלו שגיאות בטרמינל, נוכל לבדוק אם יש שגיאות בקובץ ה-Log הראשי של השרת שנמצא ב-var/log/httpd/error_log. סביר להניח שיופיעו שם מס’ אזהרות שונות, אולם אם יש שגיאה שהשרת לא יכל לכתוב או ליצור קבצי Log לדוגמא, יש לתקן את הבעיה ולהפעיל את שרות apache מחדש.

אם לא התקבלו כל שגיאות, הגיע הזמן לנסות לראות אם אנו מצליחים לגלוש לאתר החדש. בתחנה עצמה שאנו עובדים בה אנו צריכים “לתחמן” את התחנה כדי לגלוש: יש לשנות קובץ hosts שיכליל את השורה הבאה:

192.168.1.10         mydomain.com

השורה הזו אומרת למחשב שלנו: אל תחפש באינטרנט מהי הכתובת ל-mydomain.com. מבחינתך הכתובת 192.168.1.10 זה mydomain.com (הכתובת הזו אמורה להיות כתובת ה-IP של השרת שלכם ו-mydomain.com אמור להיות שם הדומיין שרכשתם). בלינוקס הקובץ  הוא etc/hosts/ וב-Windows הקובץ הוא: c:windowssystem32driversetchosts. שנו את הקובץ ושמרו (משתמשי Windows: יש להשתמש בעורך טקסטים כמו Notepad ולהקפיד לבחור “שמור” ולא “שמור בשם”, אחרת העורך יוסיף את הסיומת txt. והקובץ יקרא hosts.txt וזה לא יעבוד).

לאחר ששמרנו, נפתח דפדפן ונגלוש לכתובת שרכשנו וכתבנו ב-hosts לפי השם, כלומר צריך להזין את הכתובת: http://mydomain.com (רק שבמקום mydomain.com יש לרשום את שם הדומיין שרכשתם כמובן). אם הכל תקין, אתם תקבלו בדפדפן את האתר שלכם. ברכותיי, עברתם את החלק העיקרי! תנו לעצמכם טפיחה על השכם!

עכשיו הגיע הזמן להגדיר באמת שם המתחם שרכשתם שיגיע אליכם ולשם כך יש לעשות מס’ צעדים.

במאמר הקודם המלצתי לפתוח חשבון ב-zoneedit. אם לא פתחתם שם חשבון, פתחו עכשיו והזינו שם את שם המתחם שרכשתם. לאחר ההזנה תקבלו 2 שמות של ns records וכתובת ה-IP שלהם שאותם תצטרכו להזין באתר רישום שם המתחם שרכשתם: היכנסו לאתר שמשם רכשתם את שם המתחם שלכם, וחפשו הגדרות name servers. שנה את הפרטים שם לפי הפרטים שנתן לכם שרת zoneedit. השינוי אמור לחול תוך 24-48 שעות אבל כיום השינוי בד”כ נעשה תוך שעה שעתיים, אם כי יש תמיד שרתים שלוקח להם זמן להתעדכן (עד 48 שעות).

כעת ניכנס שוב ל-zoneedit ונבקש להוסיף A record. ב-zoneedit בחרו את השם מתחם שלכם ובחרו IP Address (האפשרות הראשונה משמאל. השרת מבקש שם וכתובת IP, אנחנו נוותר על השם ונכניס את כתובת ה-IP שספק האינטרנט שלנו נתן לנו. כיצד נדע מהי הכתובת שלנו? פשוט: היכנסו לאתר whatismyip ושם בגדול תופיע לנו כתובת ה-IP שלנו. העתיקו כתובת זו ל-zoneedit לשדה ה-IP ואשרו. zoneedit יבינו לבד שזו כתובת האתר שלכם ויציעו לכם הוספה של www אופציונאלית, כך שגם גלישה עם www תגיע לאתרכם. אשרו זאת. במזל טוב, מעכשיו מי שיגלוש לכתובת התחום שלכם יגיע אל אתרכם (בכפוף לעדכוני ה-DNS שעשיתם אצל רשם שם המתחם שלכם)…

כמעט..

יש מישהו שחוסם את כל העולם ואחותו להנות מזיו אתרכם המדהים, וזהו הראוטר בביתכם שבברירת המחדל שלו חוסם כניסה פנימה להכל. צריך לשנות אותו. פתחו דפדפן, ו”גלשו” לתוך כתובת הראוטר שלכם (זה יכול להיות http://10.0.0.138 או http://192.168.1.1 או http://192.168.2.1 , עיינו בחוברת הראוטר), וחפשו שם פונקציה של Port Forwarding. הפונקציה הזו אומרת לראוטר שמעתה, כל מי שינסה להגיע אל כתובת ה-IP שלכם בפורט 80, יגיע אל השרת הקטן שלכם שמארח את אתרכם. כל מה שיש לעשות הוא להגדיר שם פורט 80 ב-TCP וכתובת היעד היא כתובת ה-IP של השרת שלכם. ב-Linksys זה נראה כך:

firewall-rule לאחר שתגדירו את הפורט, שמרו את ההגדרות. אצל חלק מהראוטרים הם יבקשו להפעיל את עצמם מחדש (כמו ראוטרים של Edimax). אשרו. (עדכון: ראוטרים מסויימים שבזק מוכרים [במיוחד של סימנס] לא יאפשרו למחשבים בתוך הרשת הפנימית הביתית לגלוש לאתר עצמו ובמקום זאת הם יציגו את דף הכניסה לראוטר. במקרים כאלו יש צורך במחשבים הביתיים להגדיר את כתובת ה-IP הפנימית במחשב הגולש ל-IP הפנימי של השרת)

אם יש לכם חיבור אינטרנט נוסף (כמו חיבור סלולרי דרך הטלפון סלולרי שלכם), התחברו ונסו לגלוש אל אתרכם. אם הכל תקין, תקבלו את האתר שלכם.

עתה נותרה לנו בעיה קטנה ואחרונה: כתובת ה-IP שלכם היא כתובת דינמית, משמע שבכל פעם שהראוטר יופעל מחדש או שהראוטר “יחייג” מחדש אל ספק האינטרנט שלכם, תקבלו כתובת IP שונה, וצריך לעדכן את zoneedit בכתובת החדשה שלכם.

לשם כך נשתמש בתוכנה על השרת לינוקס הנקראת ddclient. התקינו אותה (apt-get install ddclient באובונטו, yum install ddclient ב-CentOS). לאחר ההתקנה, יש צורך כמשתמש root לערוך את הקובץ etc/ddclient/ddclient.conf/ ושם חפשו את החלק שנקרא ZoneEdit. נשנה אותו לפי הצורך. הנה דוגמא:

##
## ZoneEdit (zoneedit.com)
##
server=www.zoneedit.com,               
protocol=zoneedit1,                    
login=MyUser,          
password=Mypassword
www.mydomain.com, domain.com

נשנה את הפרמטרים בהתאם (שם משתמש, סיסמא, שם תחום) ונפעיל את השרות: service ddclient restart ולאחר מס’ שניות הסקריפט של ddclient יעדכן אוטומטית את zoneedit בכתובת החדשה שברשותנו. ddclient ימשיך לרוץ בשרת ברקע ומדי מס’ דקות הוא יבדוק האם כתובת ה-IP שלנו שונתה או לא. אם כן, הוא יעדכן שוב את zoneedit. אם לא, הוא לא יבצע כלום וימשיך לנטר את הכתובת IP שלנו.

סיימנו. מעתה כל מי שיקבל את כתובת התחום שרכשת יוכל לגלוש לאתרך מבלי שתצטרך לשלם לספק אתרים מארח.

עתה מגיע החלק של האזהרות (לא חשבתם שתתחמקו מזה, נכון? 🙂 )

  • לא כולם נחמדים. מהרגע שהאתר שלך פתוח לעולם, יהיו מי שיגלשו וישמחו להפיל לך את האתר, להעתיק את החומר או למחוק את השרת. אינך יודע אף פעם מי הילד המשועמם וחסר חיים שמחפש להפיל את אתרך סתם כך בשביל הכיף. מה שאתה צריך לעשות, הוא לדאוג שרישוי הקבצים הוא מספיק לצרכים של שרת ה-Web שלך ולצרכיך ותו לא. עליך לבדוק מבחינת הקוד שלך שאינך משאיר כל מיני “חורים” שדרכם אפשר להכניס משאית ולהרוס את אתרך.
  • גרפיקה כבדה – לא באתרך. זה מאוד נחמד שאתה רוצה לשתף תמונה של כל ה”משפוחה” בטיול לבניאס עם קבצים בגודל 8 מגהבייט כל תמונה, אבל כך לא רק שהאתר שלך לא יגיב, גם הגלישה שלך תהיה איטית בטירוף. הגלישה באינטרנט בארץ היא אסינכרונית, כלומר כשמישהו גולש לאתר שלך, אתה מפסיד מהירות גלישה. רוצה לשים תמונות גדולות, קבצי פלאש גדולים וכו’? ארח את הקבצים האלו באתר חיצוני (כמו Google Sites) ותן לינק קישור לקובץ שנמצא בחוץ, כך אחרים יוכלו לקבל את הקבצים הגדולים במהירות ואתה לא תסבול מאיטיות.
  • אם רוב הצופים של אתרך הם מחו”ל, הם יקבלו אתר איטי, לפעמים מאוד איטי, כי מה לעשות: שרתים שנמצאים אצל ספק האינטרנט מספקים תעבורה הרבה יותר מהירה מהשרת שלך שנמצא במרתף ושמחובר ל-ADSL. אם רוב הגולשים לאתרך הם מחוץ לישראל, אולי כדאי שתיקח לך חבילת אירוח זולה בחו”ל ותדלג על העניין של שרת בבית.
  • כדאי תמיד להשתמש בדחיסה. אם אתה מפתח את האתר שלך, כדאי לבנות או להשתמש במגנוני Cache או להשתמש בדחיסה (כל הדפדפנים המודרניים תומכים בכך כיום), כך רוחב הפס שיצטרך האתר שלך יופחת משמעותית בהשוואה לגלישה באתר ללא Cache וללא דחיסה.

בהצלחה