Linux הינה מערכת הפעלה המבוססת קוד פתוח, אותה פיתח המתכנת Linus Torvald וכיום אלפי מתכנתים עובדים על המשך הפיתוח, תוך שיתוף פעולה מלא. מערכת ההפעלה נמצאת בשימוש ברוב שרתי האינטרנט בעולם והוכיחה את עצמה כפלטפורמה יציבה ומאובטחת לאפליקציות אינטרנט במיוחד. לאחרונה ממשלות סין, גרמניה ורבות אחרות החליטו להחליף את מערכות ההפעלה של המחשבים במוסדות הממשל שלהן ללינוקס. כולנו תקווה שגם ממשלת ישראל תשתחרר בהקדם מתשלום מיליונים מכספי משלם המיסים עבור מערכות הפעלה סגורות כגון Windows, Oracle, Sun ועוד.
השרתים השיתופיים שלנו עושים שימוש במערכת ההפעלה CloudLinux, אשר הינה נגזרת של מערכת ההפעלה centOS, גרסה חינמית מקבילה ל-RedHat Enterprise.
על שרתי הלינוקס מותקנות תוכנות השרת הבאות: Apache 2, PHP5, MySQL5, GD, mCrypt, Soap, Exim
ממשק הניהול שלנו מאפשר לפתוח בסיסי נתונים ומשתמשים, וכן לנהל את בסיסי הנתונים באמצעות מערכת phpMyAdmin.
כן. על שרתי ה-Linux ניתן להקים חשבונות FTP נוספים. החשבונות מנוהלים ע"י ממשק הניהול שלנו, ועוד.
כן, אך רק בתכניות VPS. הגישה באמצעות SSH לחשבונות אלו הינה ברמת Root או חשבונות אחרים הנוצרים ע"י הלקוח.
כן, אך לא ניתן להפעיל סקריפטים ב PHP ישירות. יש להשתמש בפקודה Lynx או wget לצורך הפעלת סקריפט מתוך cron, לדוגמא: wget -O – http://username:password@www.yoursite.com/cron/cron.php
(לא חייבים להשתמש בשם משתמש וסיסמא, אך ניתן במקרה הצורך).
נא לא להפעיל crons בתדירות של פחות מ 5 דקות !
רק בחשבונות VPS.
אנו שמחים לבשר על תמיכה רחבה באפליקציות Java, JSP, nodeJS ו-mongoDB בכל חבילות ה-VPS שלנו. לצערינו, בגלל מגבלות של אבטחת מידע ומידור שימוש במשאבי מערכת לא ניתן להריץ אפליקציות מבוססות תוכנות אלה על השרתים השיתופיים שלנו. השרתים הוירטואלים מהווים פתרון נח, זול ומאובטח להרצת אתרים מבוססי JSP/Java.
/usr/bin/perl
/usr/sbin/sendmail
GD – imagemagik, gzip, zip, bzip2, convert, iconv, curl, mhash, Zend Optimizer ועוד.
אנו משתמשים בשרתי לינוקס עם ממשק ניהול cPanel לאחסון אתרי PHP/MySQL. מחולל ה-PHP על שרתים אלו מוגדר לעבוד תחת suPHP עם suExec. במבצ זה אין צורך לתת הרשאות 777 לתיקיות על מנת לכתוב לתוכן.
כן, ניתן להשתמש בקבצי htaccess. בכל חשבונות הלינוקס שלנו ולהשתמש בחוקי rewrite של Apache
כן, ניתן להפעיל את ה-Error Log דרך ממשק הניהול, במסך Web-Options.
חלק מההגדרות של PHP ניתנות לשינוי באמצעות קבצי htaccess.
להלן מספר דוגמאות:
php_value error_reporting 7
php_flag display_errors on
php_value session.use_cookies "1"
php_value session.name "PHPSESSID"
php_value session.auto_start "0"
php_value session.cookie_lifetime "0"
php_value session.cookie_path "/"
php_value session.gc_maxlifetime "1440"
יש לוודא שלתיקיה אליה מעלים את הקבצים ניתנה הרשאת כתיבה לכולם (777).
על מנת לשמור על הפרדה בין חשבונות האחסון על השרת אנו משתמשים במודול safe mode של PHP. אחת המגבלות של safe_mode היא שסקריפט לא יכול לכתוב לתיקיה שלא שייכת לאותו משתמש/קבוצה כמו הסקריפט עצמו. כך לדוגמא, אם אתה יוצר תיקיה בעזרת PHP, היא תיווצר בבעלות משתמש/קבוצה httpd בעוד הסקריפט שייך למשתמש/קבוצה של חשבון האחסון (לדוגמא user1/user1). גם אם התיקיה תקבל הרשאה 777 כשתיצור אותה, safe_mode יסרב לאפשר לסקריפט לכתוב לתוכה, בגלל הבדלי הבעלות. פתרון חלקי שלנו לבעיה הינה תוכנית שאנו מריצים ע"ב יומי, המשנה את הבעלות לכל הקבצים בתיקיות המשתמשים למשתמש/קבוצה של הלקוח, לדוגמא user1/group1. זהו לא ממש פתרון טוב אם באותו זמן שהתיקיה נוצרת גם רוצים לכתוב לתוכה, אך זה מאפשר לסקריפטים שפותחים תיקיות לצרוך כתיבה מראש לעבוד, ואחרי זמן קצר (שעה עד 24 שעות) הסקריפטים יוכלו לכתוב לתוכן מכיוון ואנו נשנה את הרשאות. מכיוון והתוכנית לשינוי הרשאות לוקחת לא מעט זמן לרוץ על כל החשבונות, לא ניתן להריץ אותו יותר מפעם ביום. פתרון נוסף לבעיה הוא פתיחת התיקיות על השרת בעזרת php-ftp. ניתן באמצעות PHP לדמות חיבור FTP לשרתים, וכאשר עובדים בשיטה זו, התיקיות והקבצים שיווצרו יקבלו את ההרשאות של הלקוח, כאילו נוצרו באמצעות כל תכנת FTP. החסרון הוא ששם המשתמש והסיסמא ל-FTP צריכים להמצא גלויים בתוך קובץ, כמו פרטי חיבור לבסיס נתונים לדוגמא. אם בוחרים בשיטה זו, מומלץ לפתוח חשבון FTP נוסף באמצעות ממשק הניהול ולהגביל אותו לתיקיה מסוימת בלבד. דוגמא ליצירת תיקיה ומתן הרשאות באמצעות -php-ftp // create directory through FTP connection $path = "/"; $newDir = "test"; $realpath = "/full/physical/path/"; function FtpMkdir($path, $newDir) { $server='SERVERNAME'; // ftp server $connection = ftp_connect($server); // connection // login to ftp server $user = "FTPUSERNAME"; $pass = "FTPPASSWORD"; $result = ftp_login($connection, $user, $pass); // check if connection was made if ((!$connection) || (!$result)) { return false; exit(); } else { ftp_chdir($connection, $path); // go to destination dir ftp_mkdir($connection,$newDir); // create directory ftp_site($connection, "chmod 777 $newDir"); ftp_close($connection); // close connection return $newDir; } } $ret=FtpMkdir($path, $newDir); ?>
הפתרון הינו לוותר על מבנה תיקיות יפה במחיצת images. עליך ליצור את התיקיות temp, archive, thumb בתוך המחיצה images ולתת להם הרשאה 777. לסיום, יש להוסיף את השורה ;wgHashedUploadDirectory = false$ בקובץ LocalSettings.php.