התקנת ספריית SSH2 בשביל חיבורי PHP Shell
במדריך זה נלמד איך לפתוח חיבורי SSH דרך סקריפטים של PHP – כמה מודלים שצריך להתקין בשרת ותוכלו לעשות זאת!
ההתקנה מצריכה את שלושת(3) החבילות הבאות:
דרישות:
- גישת Root בשרת
- PHP מותקן בשרת
OpenSSL מותקנת בהרבה הפצות של לינוקס כברירת מחדל ולכן לא צריכים להתקין אותה, אך בכדי להיות בטוחים, הריצו את הפקודה הבאה:
rpm -qa | grep openssl
במידה והחבילה מותקנת, הפלט אמור להציג משהו בסגנון הזה:
openssl-0.9.8e-7.el5 openssl-devel-0.9.8e-7.el5
הערה: הגרסאות תלויות במערכת ההפעלה המותקנת בשרת שלך, ולכן ייתכן כי בשרת שלך יוצגו גרסאות אחרות.
אם לא מוצג כלום, סימן שהחבילה OpenSSL אינה מותקנת בשרת וצריך להתקין אותה(בקלות, דרך מנהל ההורדות yum) – לכן, הריצו את הפקודה הבאה:
yum install openssl
החבילה השנייה שצריכים להתקין היא libssh2. בד"כ היא אינה מגיעה בהפצות של לינוקס כברירת מחדל וצריך להוריד אותה ממקור כלשהו, כמו זה:
wget http://www.libssh2.org/download/libssh2-Version.tar.gz
tar -zxvf libssh2-Version.tar.gz
cd libssh2-Version
לשם הדגמה, אלו פעולות שצריך לבצע עבור ספריית הlibssh2 החדשה ביותר(לרגע כתיבת שורות אלו):
wget http://www.libssh2.org/download/libssh2-1.2.7.tar.gz
tar -zxvf libssh2-1.2.7.tar.gz
cd libssh2-1.2.7
./configure
make
make install
כשכל הקבצים יקומפלו(compile), ספריית הlibssh2 תותקן בשרת שלכם.
הדבר הבא שצריך להתקין זהו המודל לPHP שהוא ssh2.
ניתן להתקין מודל זה בכמה דרכים, כמו שימוש בPECL, PEAR או בהורדה ישירה וקימפול המודל ידנית.
אני אשתמש באפשרות השלישית מכיוון שבזמן האחרון PECL או PEAR לא עושים בידיוק את העבודה.
wget http://pecl.php.net/get/ssh2-Version.tgz
tar -xzf ssh2-Version.tgz
cd ssh2-Version
לשם הדגמה, אלו פעולות שצריך לבצע עבור ספריית הssh2 החדשה ביותר(לרגע כתיבת שורות אלו):
wget http://pecl.php.net/get/ssh2-0.11.2.tgz
tar -xzf ssh2-0.11.2.tgz
cd ssh2-0.11.2
phpize && ./configure –-with-ssh2 && make
במידה והקימפול הסתיים ללא שגיאות, כמעט סיימת. הדבר היחידי שנשאר לעשות הוא להעתיק את המודל ssh2.so מ:
/ssh2-Version/modules/
לשם הדגמה, המיקום של המודל ssh2.so בגרסה ההחדשה ביותר(לרגע כתיבת שורות אלו) צריך להיראות ככה:
/ssh2-0.11.0/modules/
לתקיית התוספות שלכם בPHP(בד"כ התקייה שבה נמצא קובץ ההגדרות – php.ini), ניתן לבדוק את הנתיב על-ידי בדיקת הקובץ php.ini.
עכשיו בצעו אתחול לApache וסיימנו 🙂
רק נשאר להריץ סקריפט בכדי לבדוק שהכל תקין.
FAQ:
- במידה ולאחר הרצת הפקודה:
phpize && ./configure –with-ssh2 && make
אתם מקבלים שגיאה כמו:
make: *** [ssh2.lo] Error 1
תצטרכו לעשות שינוי קטן.
ערכו את הקובץ ssh2.c(כשאתם עדיין בתקייה של /ssh2-Version/modules/) על-ידי הפקודה:
nano ssh2.c
וחפשו את השורה:
#if LIBSSH2_APINO < 200412301450
ושנו אותה למשהו כמו:
#if LIBSSH2_VERSION_NUM < 0x001000
שמרו את הקובץ והריצו שוב את הפקודה:
phpize && ./configure –with-ssh2 && make
בהצלחה!