אם יש לך מנוהל שרת לינוקס לפני, אתה תהיה מכיר את LAMP נפוץ (לינוקס, Apache, MySQL, PHP) מחסנית. עם זאת, אפאצ 'י, MySQL ו- PHP יכול לפעמים להיות משאב אינטנסיבית לא יכול להיות הטוב ביותר עבור השרת שלך. במדריך זה, אנחנו הולכים להחליף כל חלק של הערימה, למעט לינוקס, עם אלטרנטיבה טובה יותר - Nginx, MariaDB ו HHVM.

הנחה

1. הדרכה זו נעשית על שרת Ubuntu 14.04, אם כי ההוראות יפעלו עבור כל distian מבוססי דביון גם כן.

2. הדרכה זו מתמקדת רק בהתקנה ובהגדרה של מחסנית LEMH. הוא אינו נוגע בצד האבטחה של השרת.

3. יש לך כבר גישה SSH לשרת שלך (או גישה פיזית למכשיר שלך) כדי לבצע את ערכת הלימוד.

התקנת Nginx

Nginx הוא תחליף קל אך רב עוצמה לאפאצ'י. זהו קוד פתוח פרוקסי הפוך שרת כמו גם שרת אינטרנט עם מיקוד חזק על מקביליות גבוהה, ביצועים גבוהים ושימוש בזיכרון נמוך. שים לב ש- Nginx אינה תואמת ל- Apache, לכן כל תצורת Apache, במיוחד קבצי ה- htaccess שיצרת, לא יפעלו ב- Nginx. אפשר גם להפעיל גם Apache וגם Nginx על אותו שרת, אבל זה יהיה כרוך קצת תצורה מסובכת אשר לא נוכל לכסות כאן.

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

 sudo add-apt-ppa: nginx / יציב sudo apt-get עדכון 

הגרסה האחרונה של Nginx כמו פירסום זה הוא 1.6.2. לחלופין, אם ברצונך לנסות את הגרסה ההתפתחותית העדכנית ביותר, תוכל להשתמש ב- PPA במקום זאת:

 sudo add-apt-ppa: nginx / פיתוח sudo apt-get עדכון 

הגרסה ההתפתחותית האחרונה של ההודעה היא 1.7.8.

כדי להתקין את Nginx, הפעל את הפקודה:

 sudo apt-get להתקין nginx 

לאחר ההתקנה, הפעל את הפקודה הבאה כדי לוודא שהיא מופעלת:

 להתחיל שירות nginx sudo - - 

לאחר מכן, בדפדפן האינטרנט שלך, עבור אל כתובת האתר "http://123.4.56.789" (החלף את 123.4.56.789 עם כתובת ה- IP של השרת שלך), ואתה אמור לראות את הדברים הבאים:

התקנת MariaDB

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

עובדה מעניינת : MySQL נוסדה על ידי מייקל וידניוס ונקראת על שם בתו הראשונה, My. מפתח מוביל של MariaDB הוא גם מייקל Widenius והוא נקרא על שם בתו השנייה, מריה.

בשרת שלך, אם התקנת בעבר את MySQL, מומלץ להסיר את MySQL לחלוטין לפני התקנת MariaDB:

 sudo apt-get להסיר - שרת MySql שרת Mysql- לקוח Mysql-Common sudo apt-get autoremove sudo rm -rf / var / lib / mysql sudo apt-get autoclean 

לאחר מכן, להוסיף את PPA עבור MariaDB:

 sudo apt-get להתקין את מאפייני התוכנה-נפוצות sudo apt-key adv --recv-keys - keyserver hkp: //keyserver.ubuntu.com: 80 0xcbcb082a1bb943db sudo add-apt-repository 'deb http: //sfo1.mirrors .digitalocean.com / mariadb / repo / 10.0 / ubuntu trusty main 'sudo apt-get update 

שים לב שאתה יכול גם ליצור שלך PPA כאן למצוא את המיקום הקרוב ביותר לשרת שלך.

התקן את MariaDB באמצעות פקודה זו:

 sudo apt-get להתקין שרת mariadb 

במהלך ההתקנה, היא תנחה אותך להגדיר סיסמה עבור משתמש הבסיס.

לאחר ההתקנה, אתה יכול להתחיל MariaDB עם הפקודה:

 שירות מירוץ sodo להתחיל 

התקנת PHP ו- HHVM

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

לפני התקנת HHVM, חשוב להתקין תחילה את PHP בשרת. במקום להתקין את החבילה המלאה PHP5, הכוללת חבורה של קבצים Apache, אנחנו רק להתקין php5-fpm, אשר לאחר מכן להתקין את תלות PHP הדרושים. כמו כן, נצטרך php5-fpm כמו נסיגה עבור HHVM.

 sudo apt-get התקן php5-fpm php5-mysql php5-curl 

לאחר שתסיים, התקן את HHVM עם הפקודות:

 wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key הוסף למועדפים http://dl.hhvm.com/ubuntu mainy trusty sudo tee /etc/apt/sources.list.d/hhvm.list sudo apt- לקבל עדכון sudo apt-get להתקין hhvm 

לאחר התקנת HHVM, המשך להגדיר אותו עבור Nginx עם הפקודה:

 sudo /usr/share/hhvm/install_fastcgi.sh 

לבסוף, הפעל מחדש את HHVM

 סודו שירות hhvm הפעלה מחדש - - 

כדי לבדוק אם HHVM פועל, צור קובץ "phpinfo.php" בתיקיית השורש Nginx.

 sudo nano /var/www/html/phpinfo.php 

ולהדביק את השורה הבאה:

הקש "Ctrl + o" כדי לשמור "Ctrl + x" כדי לצאת.

בדפדפן שלך, טען את כתובת האתר: http://123.4.56.789/phpinfo.php (החלף את 123.4.56.789 עם כתובת ה- IP של השרת שלך). אתה צריך לראות רק את המילה "HipHop" להראות כי HHVM עובד.

קביעת תצורה של אתרים להפעלת Nginx ו- HHVM (עם php5-fpm fallback)

עכשיו שיש לך הכל להגדיר, הגיע הזמן ליצור מארח וירטואלי כדי להפעיל את אתר האינטרנט שלך.

צור קובץ תצורה חדש שמכיל את פרטי האתר שלך:

 sudo nano / etc / nginx / sites-available / my-site 

ולהדביק בקטע הבא:

 השרת {להאזין 80; האזן [::]: 80; root / var / www / html; # הוסף index.php לרשימה אם אתה משתמש באינדקס PHP index.html index.htm. server_name mywebsite.com; כולל hhvm-with-fallback.conf; מיקום / {# הניסיון הראשון להגיש בקשה כקובץ, ולאחר מכן # ספרייה, ולאחר מכן לחזור להציג 404. $ try_files $ uri $ uri / = 404; } # להעביר את הסקריפטים PHP כדי להאזין שרת FastCGI על 127.0.0.1:9000 # מיקום @fallback {# לכלול קטעי וידאו / fastcgi-php.conf; # # # עם php5-fpm: fastcgi_pass unix: /var/run/php5-fpm.sock; fastcgi_index index.php; כוללים fastcgi_params; } # דחיית גישה לקבצי htaccess, אם השורש של מסמך Apache # תואם עם מיקום # nginx אחד ~ /\.ht {deny all; }} 

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

HHVM יש באג זה מתרסק מדי פעם מבלי להפעיל מחדש את עצמו; זה יגרום לאתר להיכשל עם שגיאה 500. במקרה זה, אנו ניצור מערכת החזרה לפיה PHP5-FPM ישתלט כאשר HHVM נכשל. האם הבחנת location @fallback בקטע ההגדרות לעיל? זה התקשרות כאשר HHVM נכשל. כדי להשלים את המשוואה, אנחנו עדיין צריכים ליצור את "hhvm-with-fallback.conf" קובץ שהוא גרסה שונה של הקובץ "hhvm.conf".

 sudo nano /etc/nginx/hhvm-with-fallback.conf 

הדבק את קטע הטקסט הבא:

 מיקום ~ \. (hh | php) $ {proxy_intercept_errors on; error_page 500 501 502 503 = @fallback; fastcgi_keep_conn on; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name; כוללים fastcgi_params; } 

שמור וצא מהקובץ.

לבסוף, בדוק הגדרות Nginx עם

 sudo nginx -t 

ואם הכל בסדר, הפעל מחדש את Nginx.

 שירות 

זהו זה. השלמת את הגדרת ערימת LEMH בשרת Linux.