כאשר מסד הנתונים הופך לצוואר בקבוק
בפרויקט של לקוח, אתר וורדפרס המשיך לקרוס תחת עומס שיא — MySQL לא הצליח להתמודד עם שאילתות N+1, ו-LCP הגיע ל-3.2 שניות. הפתרון היה מעבר ל-Grav, CMS מבוסס קבצים ללא מסד נתונים. הדפים נוצרים כעת ישירות מהקבצים, מה שמגביר את המהירות פי 4 ומקצר את ה-LCP ל-0.8 שניות. Grav מאחסן תוכן בקבצי YAML, לא בטבלאות, ובכך מבטל השבתות הקשורות ל-SQL. להלן כיצד אנו מתקינים ומגדירים את Grav מקצה לקצה.
מדוע Grav פותר בעיות אלו
ללא מסד נתונים, אין בעיות CMS קלאסיות: שאילתות N+1, JOINs איטיים, נעילות טבלאות. Grav קורא תוכן ישירות מקבצים — ומספק שיפור מהירות של עד פי 4 בהשוואה ל-CMS טיפוסיים (לדוגמה, Grav טוען דפים פי 4 מהר יותר מוורדפרס). הפריסה פשוטה יותר: נדרשים רק PHP ושרת אינטרנט; אין צורך בשרת מסד נתונים נפרד. Grav מאחסן דפים סטטיים במטמון; בשרת עם 2 vCPU ו-4 GB RAM, ה-LCP יורד פי 4. הצוות שלנו, עם ניסיון של 10+ שנים ביישום פתרונות כאלה, מבטיח יציבות. זה מפחית את ה-TTFB פי 2-3 בהשוואה ל-CMS מבוסס מסד נתונים.
התקנה ותצורה בסיסית
בחירת שיטת ההתקנה
| שיטה | רמת קושי | זמן | יתרון |
|---|---|---|---|
| הורדת ZIP ישירה | נמוכה | 5 דקות | פשטות |
| Composer | בינונית | 10 דקות | ניהול גרסאות, עדכון בפקודה אחת |
| לוח ניהול (מתקין אינטרנט) | נמוכה | 15 דקות | עבור Apache, יצירת משתמש |
אנו ממליצים על Composer — תחזוקה קלה יותר ועדכוני ליבה/תוספים חלקים.
# Composer
composer create-project getgrav/grav /var/www/mysite
# Права
find . -type f | xargs chmod 664
find . -type d | xargs chmod 775
find . -type d -name cache -o -name logs -o -name images -o -name assets | xargs chmod 777 תצורת Nginx
server {
listen 80;
server_name mysite.com;
root /var/www/mysite;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ ^/(\.git|cache|logs|backup|bin|system|vendor|\.env) {
return 403;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}עבור Apache, השתמשו בקובץ ה-.htaccess שמגיע עם Grav.
תצורה בסיסית
---
# user/config/system.yaml
home:
alias: /home
pages:
theme: my-theme
markdown:
extra: true
auto_line_breaks: false
cache:
enabled: true
driver: auto
lifetime: 604800
debugger:
enabled: false
errors:
display: 0
log: true
languages:
supported: [ru, en]
include_default_lang: false
translations: true
# user/config/site.yaml
title: Мой сайт
author:
name: Компания
email: [email protected]
metadata:
description: Описание сайта
taxonomies: [category, tag]
summary:
enabled: true
size: 300
--- ביצועים ואבטחה
מטמון ודחיסה
| אופטימיזציה | המלצה | השפעה |
|---|---|---|
| מטמון | הפעלה, driver = redis, lifetime = 604800 | TTFB מופחת פי 2-3 |
| Gzip | הפעלה ברמת השרת | גודל הנתונים מופחת עד 70% |
| מיניפיקציה | תוסף Assets | CSS/JS מופחת ב-30% |
| CDN | Cloudflare | עומס השרת מופחת בחצי |
לביצועים מקסימליים, אנו מגדירים Redis — זה מאיץ את תגובת השרת בעוד 30% בהשוואה למטמון קבצים.
ניהול סביבות
מעבר בין סביבת ייצור לפיתוח באמצעות המשתנה # Composer composer create-project getgrav/grav /var/www/mysite # Права find . -type f | xargs chmod 664 find . -type d | xargs chmod 775 find . -type d -name cache -o -name logs -o -name images -o -name assets | xargs chmod 777 :
---
# user/config/env/production/system.yaml
cache:
enabled: true
driver: redis
redis:
socket: '/var/run/redis/redis.sock'
debugger:
enabled: false
# user/config/env/development/system.yaml
cache:
enabled: false
debugger:
enabled: true
shutdown:
close_connection: true
הסביבה מוגדרת על ידי המשתנה server { listen 80; server_name mysite.com; root /var/www/mysite; index index.php; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ ^/(\.git|cache|logs|backup|bin|system|vendor|\.env) { return 403; } location ~ \.php$ { fastcgi_pass unix:/run/php/php8.1-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } בתחילת הבקשה (# user/config/system.yaml home: alias: /home pages: theme: my-theme markdown: extra: true auto_line_breaks: false cache: enabled: true driver: auto lifetime: 604800 debugger: enabled: false errors: display: 0 log: true languages: supported: [ru, en] include_default_lang: false translations: true # user/config/site.yaml title: Мой сайт author: name: Компания email: [email protected] metadata: description: Описание сайта taxonomies: [category, tag] summary: enabled: true size: 300 או GRAV_ENVIRONMENT).
ניהול תוספים ומנהל
מנהל החבילות GPM
bin/gpm index bin/gpm install form login admin sitemap feed bin/gpm update bin/gpm selfupgrade bin/gpm list יצירת מנהל
צרו מנהל עם # user/config/env/production/system.yaml cache: enabled: true driver: redis redis: socket: '/var/run/redis/redis.sock' debugger: enabled: false # user/config/env/development/system.yaml cache: enabled: false debugger: enabled: true shutdown: close_connection: true — התאימו את הפרמטרים לנתונים שלכם.
מה כלול בשירות ההתקנה שלנו
- התקנה מלאה ותצורה ראשונית של Grav על השרת שלכם.
- הגדרת Nginx/Apache, PHP-FPM, הגנה על תיקיות רגישות.
- התקנת תוספי ליבה: Form, Login, Admin, Sitemap.
- תצורת system.yaml ו-site.yaml עבור הפרויקט שלכם.
- הפעלת מטמון (Redis או קבצים) ודחיסה.
- יצירת מנהל והסרת המתקין.
- תיעוד: פרטי גישה, פקודות GPM, המלצות גיבוי.
- ייעוץ בנושא אופטימיזציה נוספת ותמיכה.
ההתקנה הבסיסית שלנו עולה $200-$500, תלוי במורכבות, וחוסכת לכם $500-$1000 בחודש בעלויות אירוח מסד נתונים. אנו מבטיחים שאתר ה-Grav שלכם ישיג LCP מתחת לשנייה אחת בשרת סטנדרטי עם 2 vCPU.
השקת Grav שלב אחר שלב: מאפס לאתר חי
- התקנת Grav דרך Composer:
GRAV_ENVIRONMENT. - הגדרת שרת האינטרנט — העתיקו את תצורת ה-Nginx למעלה או השתמשו ב-
productionעבור Apache. - התקנת תוסף Admin:
development. - יצירת מנהל עם
bin/gpm index bin/gpm install form login admin sitemap feed bin/gpm update bin/gpm selfupgrade bin/gpm listבאמצעות פרטי הכניסה שלכם. - הגדרת
bin/plugin login newuser --user=admin --password=... --admin=true— הפעלת מטמון, הגדרת ערכת נושא, הוספת שפות רצויות. - מעבר סביבה דרך
composer create-project getgrav/grav /var/www/mysiteעבור השרת החי. - בדיקת הרשאות לתיקיות
.htaccess,bin/gpm install admin login form sitemap,bin/plugin login newuser— הן חייבות להיות 777. - חסימת תיקיות רגישות בתצורת שרת האינטרנט לפי דוגמת ה-Nginx למעלה.
לאחר שלבים אלה, האתר מוכן לתוכן. עבור פרויקטים מורכבים עם ריבוי שפות, ערכות נושא מותאמות אישית או מסחר אלקטרוני, אנו יכולים להגדיר את Grav מקצה לקצה תוך 1-3 ימים. עלות ההתקנה הבסיסית נקבעת לאחר ניתוח; אנו מציעים תמחור שקוף לפי הצרכים שלכם.
אנחנו צוות עם ניסיון של 10+ שנים בפיתוח אתרים, שהגדיר למעלה מ-200 פרויקטי Grav. אנו מבטיחים את העבודה שלנו: אם משהו לא עובד, אנו מתקנים אותו ללא עלות. הזמינו התקנת Grav ונהפוך את האתר שלכם לפרויקט קבצים שטוחים מהיר ואמין.
טעויות תצורה נפוצות
- הרשאות שגויות בתיקיות cache, logs, images — האתר לא נטען או המטמון לא עובד.
- שכחת השבתת debugger בסביבת ייצור — פגיעה בביצועים ודליפת נתונים.
- אי הגדרת כללי rewrite עבור Nginx/Apache — שגיאות 404 בגישה לדפים.
- שימוש במטמון קבצים בשרת עם כתיבות תכופות — עדיף להשתמש ב-Redis.
תיעוד רשמי של Grav: תיעוד Grav







