sudo mkdir /var/www/your_domain
כעת נגדיר הרשאות על הספרייה עם משתנה הסביבה $USER, שאמור להתייחס למשתמש המערכת הנוכחי שלך:sudo chown -R $ USER: $ USER / var/www/your_domain
נפתח קובץ הגדרות חדש תחת ספריית sites-available של Apache באמצעות עורך שורת הפקודה. בדוגמא שלנו אנחנו משתמשים ב-nano:sudo nano /etc/apache2/sites-available/your_domain.conf
הדביקו את ההגדרות הבאות:<VirtualHost *:80> ServerName your_domain ServerAlias www.your_domain ServerAdmin webmaster@localhost DocumentRoot /var/www/your_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
עם הגדרות VirtualHost אלו, אנחנו בעצם אומרים לאפאצ'י להגיש התוכן של הדומיין שלכם בספרייה הבאה:/var/www/your_domain
ניתן לבדוק את Apache ללא שם דומיין, על ידי הסרת האפשרויות ServerName ו-ServerAlias או על ידי הוספת תו # בתחילת השורות של כל אפשרות. כעת ניתן להשתמש ב-a2ensite כדי להפעיל את המארח הווירטואלי הזה:sudo a2ensite your_domain
מטעמי נוחות ואבטחה כדאי להשבית את אתר ברירת המחדל שמגיע עם אפאצ'י. בכדי להשבית את אתר ברירת המחדל של אפאצ'י, הקלידו:sudo a2dissite 000-default
כדי לוודא שקובץ התצורה שלכם לא מכיל שגיאות תחביר, ניתן להריץ:sudo apache2ctl configtest
לבסוף, יש לטעון מחדש את אפאצ'י כדי שהשינויים ייכנסו לתוקף:sudo systemctl טען מחדש את apache2
האתר החדש שלכם פעיל, אבל ספריית השורש שלו - /var/www/your_domain - ריקה.תרחיש 1: מארח וירטואלי לפי שם דומיין (Name-based)
זה התרחיש הנפוץ ביותר. שרת אחד מארח מספר אתרים שכל אחד שלהם דומיין משלו (example1.com, example2.com), וכל הבקשות מגיעות לאותו IP. Apache מבחין ביניהם דרך כותרת ה-Host של הבקשה.
<VirtualHost *:80>
ServerName example1.com
ServerAlias www.example1.com
DocumentRoot /var/www/example1
ErrorLog ${APACHE_LOG_DIR}/example1-error.log
CustomLog ${APACHE_LOG_DIR}/example1-access.log combined
</VirtualHost>
שמרו לקובץ /etc/apache2/sites-available/example1.conf, הפעילו עם a2ensite example1 ועשו systemctl reload apache2.
תרחיש 2: HTTPS עם Let's Encrypt
היום, רוב האתרים מחייבים HTTPS. לאחר התקנת certbot, הריצו certbot --apache -d example1.com -d www.example1.com. certbot יקפיץ אוטומטית את ה-VirtualHost לפורט 443 עם תעודת SSL, ויוסיף הפניה מ-HTTP ל-HTTPS.
חשוב: ודאו שפורט 443 פתוח בחומת האש (ufw allow 443/tcp) ושרשומת ה-A של הדומיין מצביעה על השרת לפני שאתם מריצים את certbot — אחרת ולידציית domain-control תיכשל.
בעיות נפוצות + פתרון
- "AH00558: Could not reliably determine the server's fully qualified domain name" — הוסיפו
ServerName 127.0.0.1לקובץ/etc/apache2/apache2.conf. - שני VirtualHost נטענים על אותו דומיין — בדקו את הסדר עם
apache2ctl -S; הראשון הוא ברירת מחדל לבקשות שלא תואמות שום ServerName. - שינויים בקובץ קונפיג לא מורגשים — חובה לעשות
systemctl reload apache2אחרי כל שינוי (לא רק restart).
בשרתים המנוהלים שלנו, יצירת אתר חדש דרך cPanel מגדירה את ה-VirtualHost אוטומטית עם תעודת SSL פעילה. VPS מנוהל כולל את הניהול הזה כסטנדרט.