גֶ'נְטוּ היא אחת מההפצות המהירות ביותר של Linux בזכות המיוחדות שלה לבניית המקורות והיכולת שלה לספק על ידי תוכנה הניהול – פורטייג' – כלים מסוימים הנחוצים לבניית פלטפורמת מפתח רשת שלמה שעובדת במהירות רבה ומציעה רמה גבוהה של התאמה אישית.

נושא זה ייקח אתכם בתהליך התקנה של של מערכת פלטפורמת סביבת רשת שלמה עם LEMP (Linux Nginx, MySQL/MariaDB, PHP-FPM/PhpMyadmin), ועם העזרה ב- דגלי השימוש המסופקים על ידי ניהול החבילות של Portage, אשר מציעים קבוצת פונקציות חבילה בתהליך הההרכבה – מודולים או הגדרות הנחוצות לפלטפורמת רשת, יעצבו באופן מוחלט את ההגדרות של השרת.
דרישות
- התקנת גנטו עם פרופיל מוגן לשרת המול ברשת – מדריך התקנת גנטו.
- רשת מוגדרת עם כתובת IP סטטית.
שלב 1: התקנת שרת האינטרנט Nginx
1. לפני שתנסו להמשיך עם ההתקנה של Nginx, וודאו שה-NIC שלכם הוגדר עם כתובת IP סטטית וודאו שמקורות Portage והמערכת שלכם עדכניים.
$ sudo su - # emerge --sync # emerge --update --deep --with-bdeps=y @world

2. לאחר שנגמר תהליך העדכון, המשיכו בהתקנת Nginx באמצעות בחירת ההגדרות והמודולים המועדפים על ידי פרסום דגלי השימוש של Nginx לקובץ make.conf של Portage. רשמו ראשית את מודולי ההתקנה המוגדרים כברירת מחדל של Nginx על-ידי הרצת הפקודה הבאה.
# emerge -pv nginx
למידע מפורט על מודולים (דגלי שימוש לחבילות) השתמש בפקודת equery.
# equery uses nginx

לאחר מכן התקן Nginx בעזרת הפקודה הבאה.
# emerge --ask nginx

אם נדרשים מודולים נוספים (WebDAV, fancyindex, GeoIP, וכו') מלבד המודולים הברירת מחדל, שNginx יכין בהם, הוסף את כולם בשורה אחת בקובץ Portage make.conf עם ההוראה NGINX_MODULES_HTTP, ואז כדאי לאתחל את Nginx עם המודולים החדשים.
# echo 'NGINX_MODULES_HTTP="dav auth_pam fancyindex geoip fastcgi uwsgi gzip rewrite"' >> /etc/portage/make.conf # emerge --ask nginx

3. לאחר ש-Portage סיים את תהליך ההתקנה של Nginx, הפעל את שרת ה-HTTP ווודא כי הוא פועל על ידי הפניית הדפדפן שלך לכתובת http://localhost.

שלב 2: התקן את PHP
4. כדי להשתמש בשפת התכנות הדינמית PHP עם שרת ה- Nginx, התקן PHP-FastCGI Process Manager (FPM) על ידי הוספת fpm ותוספות חשובות נוספות של PHP בדגלי השימוש של Portage וודא שאתה מסיר את תוספת Apache.
# emerge -pv php

# equery uses php

# echo " dev-lang/php fpm cgi curl gd imap mysql mysqli pdo zip json xcache apc zlib zip truetype -apache2 " >> /etc/portage/package.use # emerge --ask php
5. לפני הפעלת PHP-FPM יש לבצע שינויים בקובץ התצורה של השרות. פתח קובץ התצורה של php-fpm ובצע את השינויים הבאים.
# nano /etc/php/fpm-php5.5/php-fpm.conf
איתן עליך למצוא ולבטל את ההוראות הבאות כדי שיראה כך.
error_log = /var/log/php-fpm.log listen = 127.0.0.1:9000 ## Here you can use any HTTP socket (IP-PORT combination ) you want ## pm.start_servers = 20
6. לאחר שהושלם עריכת קובץ התצורה של PHP-FPM, שנה את הרשיונות של קובץ היומן של PHP-FPM והפעל את השירות.
# chmod 755 /var/log/php-fpm.log # /etc/init.d/php-fpm start
אפילו כאשר השירות של PHP-FPM מופעל, Nginx לא יכול לתקשר עם שער PHP, לכן, יש צורך לערוך פרטים בקבצי התצורה של Nginx.
שלב 3: ערוך את הגדרות ה-Nginx.
7. הקובץ התבניתי המוגדר בתצורת Nginx מספק רק קצת חיבור HTTP בסוקט ללוקלהוסט בלבד. כדי לשנות את ההתנהגות הזו ולאפשר מארחים וירטואליים, עליך לפתוח את קובץ התצורה nginx.conf הנמצא בנתיב /etc/nginx/ ולערוך את התצורות הבאות.
# nano /etc/nginx/nginx.conf
מצא את הבלוק הראשון של שרת שמתאים ללוקלהוסט ומאזין לכתובת ה־IP 127.0.0.1 ולהשאיר את כל ההצהרות שלו בפקודת ההערה כפי שמוצג בתמונת המסך למטה.

אל תסגור את הקובץ עדיין ונדוד לתחתית הקובץ והוסף את ההצהרה הבאה לפני הקווים הסופיים לסגירה “ } “.
Include /etc/nginx/sites-enabled/*.conf;

8. לאחר מכן צרו ספריות Nginx וקבצי תצורה (sites-enabled ו־sites-available>) עבור מארחים וירטואליים לא בשימוש עבור לוקלהוסט בפרוטוקולי HTTP ו־HTTPS.
# mkdir /etc/nginx/sites-available # mkdir /etc/nginx/sites-enabled
צור את קובץ התצורה הבא ללוקלהוסט.
# nano /etc/nginx/sites-available/localhost.conf
הוסף את התוכן הבא לקובץ.
server { listen 80; server_name localhost; access_log /var/log/nginx/localhost_access_log main; error_log /var/log/nginx/localhost_error_log info; root /var/www/localhost/htdocs; location / { index index.html index.htm index.php; autoindex on; autoindex_exact_size off; autoindex_localtime on; } location ~ \.php$ { # Test for non-existent scripts or throw a 404 error # Without this line, nginx will blindly send any request ending in .php to php-fpm try_files $uri =404; include /etc/nginx/fastcgi.conf; fastcgi_pass 127.0.0.1:9000; ## Make sure the socket corresponds with PHP-FPM conf file } }

ללוקלהוסט עם SSL צור את קובץ התצורה הבא.
# nano /etc/nginx/sites-available/localhost-ssl.conf
הוסף את התוכן הבא לקובץ.
server { listen 443 ssl; server_name localhost; ssl on; ssl_certificate /etc/ssl/nginx/nginx.pem; ssl_certificate_key /etc/ssl/nginx/nginx.key; access_log /var/log/nginx/localhost.ssl_access_log main; error_log /var/log/nginx/localhost.ssl_error_log info; root /var/www/localhost/htdocs; location / { index index.html index.htm index.php; autoindex on; autoindex_exact_size off; autoindex_localtime on; } location ~ \.php$ { # Test for non-existent scripts or throw a 404 error # Without this line, nginx will blindly send any request ending in .php to php-fpm try_files $uri =404; include /etc/nginx/fastcgi.conf; fastcgi_pass 127.0.0.1:9000; } }

9. כעת הגיע הזמן ליצור שני סקריפטים בנתיב הביצוע של המערכת (משתנה השרישה $PATH בשל מעט שאתה), הפועלים כפקודות להפעלה או כיבוי של מארחים וירטואליים של Nginx.
צור את הסקריפט הראשון של Bash בשם n2ensite שיאפשר קבצי תצורת מארחים וירטואליים על‐ידי יצירת קישור סמלי בין המארחים המוגדרים מתוך sites-available לבין sites-enabled.
# nano /usr/local/bin/n2eniste
הוסף את התוכן הבא לקובץ.
#!/bin/bash if test -d /etc/nginx/sites-available && test -d /etc/nginx/sites-enabled ; then echo "-----------------------------------------------" else mkdir /etc/nginx/sites-available mkdir /etc/nginx/sites-enabled fi avail=/etc/nginx/sites-available/$1.conf enabled=/etc/nginx/sites-enabled/ site=`ls /etc/nginx/sites-available/` if [ "$#" != "1" ]; then echo "Use script: n2ensite virtual_site" echo -e "\nAvailable virtual hosts:\n$site" exit 0 else if test -e $avail; then sudo ln -s $avail $enabled else echo -e "$avail virtual host does not exist! Please create one!\n$site" exit 0 fi if test -e $enabled/$1.conf; then echo "Success!! Now restart nginx server: sudo /etc/init.d/ nginx restart" else echo -e "Virtual host $avail does not exist!\nPlease see available virtual hosts:\n$site" exit 0 fi fi

10. לאחר מכן צרו את התסריט השני בשם n2dissite, שימחק Virtual Hosts פעילים מספוציפיים מנתינגקס בנתיב sites-enabled עם התוכן הבא.
# nano /usr/local/bin/n2dissite
הוסיפו את התוכן הבא.
#!/bin/bash avail=/etc/nginx/sites-enabled/$1.conf enabled=/etc/nginx/sites-enabled site=`ls /etc/nginx/sites-available/` if [ "$#" != "1" ]; then echo "Use script: n2dissite virtual_site" echo -e "\nAvailable virtual hosts: \n$site" exit 0 else if test -e $avail; then sudo rm $avail else echo -e "$avail virtual host does not exist! Exiting!" exit 0 fi if test -e $enabled/$1.conf; then echo "Error!! Could not remove $avail virtual host!" else echo -e "Success! $avail has been removed!\nPlease restart Nginx: sudo /etc/init.d/nginx restart" exit 0 fi fi

11. לאחר השלמת עריכת תסריטי ה-Bash, הוסיפו להם הרשאות ביצוע והפעילו Virtual Hosts מקומיים – השתמשו בשם קובץ תצורת Virtual Hosts בלי סיומת .conf, ואז הפעילו מחדש את שירותי Nginx ו-PHP-FPM כדי להחיל את השינויים.
# chmod +x /usr/local/bin/n2dissite # chmod +x /usr/local/bin/n2ensite # n2ensite localhost # n2ensite localhost-ssl # service nginx restart # service php-fpm restart

12. כדי לבדוק את התצורות צרו קובץ מידע PHP בנתיב השורש המוגדר כברירת מחדל לקבצי אינטרנט (/var/www/localhost/htdocs) והפנו את הדפדפן שלכם ל- https://localhost/info.php או http://localhost/info.php.
echo "<?php phpinfo(); ?>" /var/www/localhost/htdocs/info.php

על ידי שימוש בקבצי תצורת Virtual Hosts מקומיים וב- n2enmod של Nginx ו- n2dismod תוכלו כעת להוסיף כמה אתרים שתרצו, אך ורק תוודאו שיש לכם עצמאות DNS תקפים לשרת אינטרנטי לעיל או השתמשו ברשומות בקובץ המארחים של המערכת מקומית.
שלב 4: התקנת MySQL/MariaDB + PhpMyAdmin
כדי להתקין מסד נתונים MySQL וממשק אינטרנטי של PhpMyAdmin עבור MySQL, השתמשו באותה הליכות המצוגות ב- התקנת LAMP על Gentoo.
13. במקרה שברצונכם להשתמש ב-MariaDB, חלופת MySQL, השתמשו בפקודות הבאות כדי לקבל USE flags ולהתקין אותו.
# emerge -pv mariadb # emerge --ask mariadb

במקרה שתקבלו התנגשות חבילות עם MySQL הוסיפו את השורות הבאות לקובץ package.accept.keywords של Portage.
# echo “=dev-db/mariadb-5.5.37-r1 ~amd64” >> /etc/portage/package.accept.keywords # echo “=virtual/mysql-5.5 ~amd64” >> /etc/portage/package.accept.keywords # emerge --ask mariadb
14. לאחר התקנת מסד נתונים של MySQL הפעל את השירות ואבטח אותו באמצעות mysql_secure_installation (שינוי סיסמת root, השבתת כניסת root מחוץ ל-localhost, הסרת משתמש אנונימי/בסיס נתונים שניסיון).
# service mysql start # mysql_secure_installation
15. היכנס למסד נתונים של MySQL באמצעות הפקודה mysql -u root -p כדי לבדוק את פונקציונאליות הוא וצא עם פקודת exit.
# mysql -u root -p MariaDB > show databases; MariaDB > exit;

16. אם אינך מתקן איתה מסד נתונים של MySQL, התקן את פני האינטרנט של PhpMyAdmin על ידי ביצוע הפקודות הבאות.
# emerge -pv dev-db/phpmyadmin # echo “dev-db/phpmyadmin setup vhosts” >> /etc/portage/package.use # emerge --ask dev-db/phpmyadmin

17. לאחר סיום ההתקנה של PhpMyAdmin, צור קובץ תצורה על סמך קובץ תצורה דוגמתי, שנה את ה-blowfish_secret passphrase עם מחרוזת אקראית, ואז צור קישור סמלי מ-/usr/share/webapps/phpmyadmin/phpmyadmin_version_number/htdocs/ לנתיב השורש של המסמך של Virtual Hosts שברצונך לגשת אל פניית האינטרנט של PhpMyAdmin.
# cd /usr/share/webapps/phpmyadmin/4.2.2/htdocs/ # cp config.sample.inc.php config.inc.php # nano config.inc.php

# ln -s /usr/share/webapps/phpmyadmin/4.2.2/htdocs/ /var/www/localhost/htdocs/phpmyadmin

18. כדי לגשת למסד נתונים של MySQL דרך ממשק האינטרנט של PhpMyAdmin, פתח דפדפן והשתמש בכתובת ה-URL הבאה https://localhost/phpmyadmin.

19. השלב הסופי הוא להפעיל שירותים ברחבי המערכת, כדי להפעיל אוטומטית לאחר האתחול.
# rc-update add nginx default # rc-update add php-fpm default # rc-update add mysql default

עכשיו יש לנו סביבת מינימלית למסחר באינטרנט, ואם אתה משתמש רק ב-HTML, JavaScript ובדפים שנוצרים דינמיית PHP ואינך זקוק לאתרי SSL, ההגדרה לעיל צריכה להיות מקיימת לך.
Source:
https://www.tecmint.com/install-lemp-in-gentoo-linux/