מדריך זה מסביר איך לבצע התקנת וורדפרס על שרת לינוקס חדש עם מערכת הפעלה Ubuntu 18.04, כולל התקנת Apache, MySQL, php7, phpmyadmin ו-wp-cli. זהו מדריך למתקדמים אשר שולטים על פקודות דרך ה-Command line של שרת לינוקס.

שלב 1 – התקנת Apache

Apache היא תוכנת שרת HTTP הפופולרית ביותר בעולם, הקוד שלה נגיש מאוד ו-Well documented ונמצא בשימוש רחב ברשת האינטרנט.

אנחנו נבצע התקנה של Apache2 באמצעות מנהל החבילות של לינוקס apt על-ידי שתי הפקודות הבאות:

sudo apt updatesudo apt install apache2

מכיוון שאלו פקודות sudo תתבקש/י להזין את הסיסמה של משתמש הלינוקס שאיתו את/ה משתמש/ת.

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

כשהתקנת החבילה של Apache2 מסתיימת ניתן להיכנס אל כתובת ה-IP דרך הדפדפן:

http://your_ip_address

שם צריך להופיע הפתיח של Apache שנראה כך:

פתיח של שרת אפאצ׳י

שלב 2 – התקנת MySQL

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

אנו נבצע את ההתקנה על-ידי הפקודה:

sudo install mysql-server

גם פקודה זו תציג לך את פרטי החבילה ותבקש ממך לאשר את ההתקנה על-ידי הקשה על Y ואנטר.

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

sudo mysql_secure_installation-server

השלב הראשון עם הרצת הסקריפט הוא הגדרת הסיסמה עבור root, יש ללחוץ על Y ואנטר כדי לאשר הגדרת סיסמה. לאחר מכן תהליך ההתקנה יבקש ממך לבחור את רמת הקשיחות של הסיסמה, יש לבחור לפחות ברמה 1 (מדיום).

כשלב הבא תהליך ההתקנה יבקש להזין סיסמה חדשה למשתמש ה-root אותה יש להגדיר ולאחר מכן ישאל מספר שאלות הנוגעות להסרת ברירות מחדל מסוכנות – על כולן יש לענות ב-Y ואנטר.

הגדרת סיסמה להתחברות ל-MySQL

אני ממליץ מאוד להשתמש בסיסמה כאשר מתחברים לשרת MySQL באמצעות המשתמש root. כדי לעשות זאת יש להחליף את שיטת ההתחברות מ auth_socket ל mysql_native_password. נעשה זאת בכך שתחילה נתחבר אל שרת ה-MySQL עם הפקודה הבאה:

sudo mysql-server

כדי לבדוק מהי שיטת ההתחברות (authentication Method) של כל משתמש נריץ בתוך השרת את הפקודה הבאה:

SELECT user,authentication_string,plugin,host FROM mysql.user;

פקודה זו אמורה להדפיס בטרמינל את התשובה הבאה:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

בתשובה שמודפסת כאן ניתן לראות שהמשתמש root משתמש בשיטה auth_socket. כדי להגדיר למשתמש זה להתחבר עם סיסמה, יש להריץ את פקודת ה-ALTER USER הבאה. שים/י לב שעליך לשנות את הסיסמה לסיסמה חזקה.

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

כשסיימת להריץ את הפקודה עם הסיסמה החדשה יש להריץ את הפקודה הבאה על מנת שהגדרה זו תקבל תוקף:

FLUSH PRIVILEGES;

אם תבצע/י בדיקה עכשיו על שיטת ההתחברות של המשתמש תוכל/י לצפות בעדכון:

SELECT user,authentication_string,plugin,host FROM mysql.user;

התוצאה:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

ניתן לראות בתוצאה שהמשתמש root כעת משתמש בשיטת התחברות באמצעות סיסמה.

כדי לצאת משרת ה-MySQL יש להזין את הפקודה הבאה:

exit

שלב 3 – התקנת PHP

ההתקנה של php שאותה נבצע מכילה גם התקנה של php בגרסה האחרונה, וגם שתי התקנות נוספות שמבצעות תאימות של php ל-MySQL ול-Apache. נעשה זאת באמצעות הפקודה הבאה:

sudo apt install php libapache2-mod-php php-mysql-server

פקודה זו אמורה להתקין את שלושת החבילות ללא בעיה. כדי לבחון זאת תחילה נגדיר לשרת Apache לחפש תחילה קבצי php. נעשה זאת על ידי כך שנערוך את קובץ הנקרא dir.conf באמצעות הפקודה הבאה:

sudo nano /etc/apache2/mods-enabled/dir.conf

פקודה זו תפתח את הקובץ באמצעות העורך nano, תוכן הקובץ אמור להיראות כך:

<IfModule mod_dir.c>
    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

יש להזיז את index.php לתחילת הרשימה, ממש כך:

<IfModule mod_dir.c>
    DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

כשסיימת יש לשמור את הקובץ ולצאת באמצעות CTRL+X. אשר/י את השמירה על ידי הקשה על Y ואנטר.

כעת יש לעשות איפוס לשרת Apache:

sudo systemctl restart apache2

שלב 4 – התקנת phpmyadmin

תוכנת phpmyadmin עוזרת לנו לנהל את מסדי הנתונים מבלי להתחבר אל ה-Command line של שרת ה-MySQL שלנו. נתקין אותה באמצעות הפקודה הבאה:

sudo apt install phpmyadmin php-mbstring php-gettext

פקודה זו תקפיץ לך מספר שאלות כדי להגדיר את התוכנה נכון:

  • לסוג השרת יש לבחור ב- apache.
  • בחר/י ב-Yes בשאלה האם להשתמש ב dbconfig-common כדי להגדיר את הדטאבייס.
  • לאחר מכן תתבקש/י להגדיר סיסמת MySQL למשתמש phpmyadmin שישרת את התוכנה.

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

sudo phpenmod mbstring

בשלב זה עדיין לא ניתן לגשת לתוכנה, כדי לאפשר זאת עלינו להוסיף הגדרה בקובץ ההגדרות של שרת Apache. נפתח את הקובץ לעריכה על ידי הפקודה הבאה:

sudo nano /etc/apache2/apache2.conf

ובתחתית הקובץ נוסיף את השורה הבאה:

Include /etc/phpmyadmin/apache.conf 

לאחר מכן יש לעשות שוב איפוס לשרת:

sudo systemctl restart apache2

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

http://your_ip_address/phpmyadmin

ההתחברות לתוכנה יכולה להתבצע באמצעות המשתמש root, המשתמש phpmyadmin או כל משתמש אחר עם הרשאות מתאימות.

שלב 5 – התקנת wp-cli

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

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

לאחר מכן נשנה לקובץ ההרחבה את ההרשאות ואת המיקום בעזרת שתי הפקודות הבאות:

sudo chmod +x wp-cli.pharsudo mv wp-cli.phar /usr/local/bin/wp

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

wp --info

שצריכה להדפיס את תשובה דומה לזו בהתאם למערכת שלכם:

OS:	Darwin 16.7.0 Darwin Kernel Version 16.7.0: Thu Jan 11 22:59:40 PST 2018; root:xnu-3789.73.8~1/RELEASE_X86_64 x86_64
Shell:	/bin/zsh
PHP binary:    /usr/local/bin/php
PHP version:    7.0.22
php.ini used:   /etc/local/etc/php/7.0/php.ini
WP-CLI root dir:        /home/wp-cli/.wp-cli/vendor/wp-cli/wp-cli
WP-CLI vendor dir:	    /home/wp-cli/.wp-cli/vendor
WP-CLI packages dir:    /home/wp-cli/.wp-cli/packages/
WP-CLI global config:   /home/wp-cli/.wp-cli/config.yml
WP-CLI project config:
WP-CLI version: 2.1.0

כעת כשיש לנו את wp-cli על השרת כל שנשאר זה רק להתקין וורדפרס.

שלב 6 – התקנת וורדפרס באמצעות wp-cli

כפי שציינתי כבר אנו נוריד את הקבצים של מערכת וורדפרס באמצעות wp-cli לשם התקנה, אך לפני כן יש לנווט אל התיקייה הציבורית של שרת ה-apache שם הכל מתרחש … נגיע לשם כך:

cd /var/www/html

בתקיה זו נוכל לראות שישנו קובץ אחד בלבד שנקרא index.html באמצעות הפקודה:

ls

פקודה זו מראה לנו את הקבצים בתיקייה.

כעת יש למחוק את הקובץ הזה ולהוריד את קבצי הגרסה האחרונה של מערכת וורדפרס באמצעות שתי הפקודות הבאות:

rm -f index.htmlwp core download

כעת אם תפתח/י את הדפדפן בכתובת ה-ip שלך (או כתובת הדומיין אם חיברתם דומיין ל-ip ל השרת) תוכל/י לראות את תהליך ההתקנה הסטנדרטי והמוכר של מערכת וורדפרס.

בתהליך זה יש להזין מספר נתונים: שם מסד נתונים (שאותו נייצר דרך phpmyadmin), שם משתמש עבור שרת MySQL וסיסמה למשתמש.