Cockpit CMS: התקנה והגדרה מקצועית במפתח אחד
לקוח בילה שבוע בניסיון להתקין את Cockpit CMS אך קיבל שגיאת 500 בכניסה הראשונה. הסיבה — הגדרת PHP שגויה וחסר תוסף intl. תיקנו את זה בשעה: התאמנו את php.ini, הפעלנו מחדש קונטיינרים. הנה איך להימנע מבעיות כאלה.
Cockpit CMS הוא CMS ראשי קל משקל על PHP 8.1+. הוא תומך ב-SQLite (ברירת מחדל), MongoDB ו-PostgreSQL. דרישות מינימליות: PHP עם תוספים curl, gd, zip, intl. אנו עובדים עם CMS זה למעלה מ-5 שנים והשלמנו למעלה מ-50 פרויקטים על Cockpit CMS. אנו מבטיחים התקנה יציבה לכל עומס: מאב-טיפוס ועד מערכת בעומס גבוה עם מיליון בקשות ביום. עם REST API מובנה ובחירה גמישה של מסד נתונים, Cockpit אידיאלי לארכיטקטורת JAMstack.
"התקנת ה-Cockpit CMS עברה חלק, כל ההגדרות הושלמו תוך יום אחד. אנחנו רצים יציב כבר חצי שנה." — איוון פטרוב, CTO של TechnoLab
יתרונות של Cockpit CMS לפרויקטים ראשיים
Cockpit CMS קל פי 10 מ-WordPress בצריכת זיכרון — על VPS סטנדרטי של 512 MB הוא מעבד עד 10,000 בקשות בדקה. לוח הניהול הבנוי עם React או Vue מוגש דרך CDN, בעוד תוכן נמסר דרך API. זה מפחית עלויות אירוח בעד 40% בהשוואה ל-CMS מונוליטיים. תמיכה מובנית ב-MongoDB ו-PostgreSQL מאפשרת קנה מידה ללא כאבים. זמן תגובה ממוצע של API הוא מתחת ל-50 אלפיות השנייה.
MongoDB מעבד בקשות פי 3 מהר יותר מ-SQLite בטיפול בכמויות נתונים גדולות — זה מוכח בבדיקות העומס שלנו.
בעיות אופייניות במהלך התקנת Cockpit CMS
- אי-תאימות גרסת PHP. Cockpit דורש PHP 8.1+, אך מארחים משותפים רבים עדיין מריצים 7.4. בדוק עם
php -v. אם הגרסה נמוכה יותר — החלף אירוח או השתמש ב-Docker. - תוספים חסרים. ללא intl, Cockpit לא יתחיל. התקן דרך
apt install php-intlאו השתמש בתמונת Docker שכוללת הכל. - שגיאות חיבור MongoDB. לעיתים קרובות שוכחים את המארח והפורט הנכונים. פורט ברירת המחדל הוא 27017; ודא ששרת ה-MongoDB נגיש.
- הרשאות אחסון. משתמש שרת האינטרנט חייב להיות בעל גישת כתיבה לתיקיית האחסון. אחרת — מסך לבן.
80% מהבעיות נפתרות עם הגדרת שרת נכונה. הניסיון שלנו מאשר זאת.
כיצד להגדיר Cockpit CMS לפרויקט בעומס גבוה
השתמש ב-Docker Compose עם שירותים נפרדים: קונטיינר אחד ל-Cockpit, MongoDB ו-Redis לקאש. דוגמה ל-docker-compose.yml בסיסי:
---
version: '3.8'
services:
cockpit:
image: agentejo/cockpit:latest
ports:
- "8080:80"
volumes:
- ./storage:/var/www/html/storage
- ./config:/var/www/html/config
environment:
- COCKPIT_SESSION_NAME=cockpit_session
- COCKPIT_SECRET_KEY=change-me-32-chars-minimum-length
restart: unless-stopped
---לייצור, הוסף Nginx כפרוקסי הפוך עם תמיכת HTTPS וקאש סטטי. דוגמת הגדרה:
server {
listen 80;
server_name cms.mysite.com;
root /var/www/cockpit;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass php-fpm:9000;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
# Защищаем storage
location ~* /storage/(.*)$ {
deny all;
}
} הגדרת מסד נתונים ודואר
הקובץ config/config.php מכיל את כל ההגדרות. עבור MongoDB:
<?php
return [
'app.name' => 'My CMS',
'app.language' => 'ru',
// База данных (SQLite по умолчанию — не требует настройки)
// Для MongoDB:
// 'database' => [
// 'server' => 'mongodb://localhost:27017',
// 'options' => ['db' => 'cockpitdb'],
// ],
// Email
'mailer' => [
'from' => '[email protected]',
'from_name' => 'My Site',
'transport' => 'smtp',
'host' => 'smtp.mailgun.org',
'user' => '[email protected]',
'password' => 'password',
'port' => 587,
'auth' => true,
'encryption' => 'tls',
],
// Хранилище файлов
'filestorage' => [
's3' => [
'region' => 'eu-west-1',
'key' => 'ACCESS_KEY',
'secret' => 'SECRET_KEY',
'bucket' => 'my-cockpit-media',
],
],
];
השוואת מסדי נתונים עבור Cockpit CMS
| מסד נתונים | ביצועים | קלות התקנה | מתאים עבור |
|---|---|---|---|
| SQLite | נמוכים | גבוהה | פיתוח, 1-3 משתמשים |
| MongoDB | גבוהים | בינונית | פרויקטים מרובי משתמשים, סכמות גמישות |
| PostgreSQL | גבוהים | בינונית | פרויקטים גדולים, סכמות קפדניות |
הבחירה תלויה בעומס. לעומס גבוה, השתמש ב-MongoDB או PostgreSQL. SQLite מיועד לאבות טיפוס.
תהליך עבודה ולוחות זמנים
| שלב | משך | תוצאה |
|---|---|---|
| אנליטיקה | יום אחד | דרישות, עומס, מחסנית |
| עיצוב | יום אחד | בחירת מסד נתונים, ארכיטקטורה |
| התקנה והגדרה | 1-2 ימים | Cockpit, סביבה |
| בדיקות | יום אחד | ביצועים, אבטחה |
| תיעוד ומסירה | חצי יום | מדריך, הדרכה |
התקנת Cockpit על שרת מוכן — בין 1 ל-3 ימים. העלות נקבעת באופן אישי לאחר ניתוח.
מה כלול בהתקנת Cockpit CMS
- התקנה והגדרה של Cockpit על השרת (Docker או מקורי).
- הגדרת מסד נתונים (SQLite, MongoDB, PostgreSQL).
- יצירת אסימוני API עם הפרדת הרשאות.
- הגנה על אחסון והגדרת HTTPS.
- תיעוד תפעולי והדרכת מנהלים.
שגיאות אופייניות והפתרונות שלהן
- הגדרת PHP-FPM שגויה מובילה ל-502 Bad Gateway. פתרון: בדוק את הגדרת ה-pool.
- אין הרשאות על אחסון — מסך לבן. הענק הרשאות:
version: '3.8' services: cockpit: image: agentejo/cockpit:latest ports: - "8080:80" volumes: - ./storage:/var/www/html/storage - ./config:/var/www/html/config environment: - COCKPIT_SESSION_NAME=cockpit_session - COCKPIT_SECRET_KEY=change-me-32-chars-minimum-length restart: unless-stopped. - שגיאת סשן —
server { listen 80; server_name cms.mysite.com; root /var/www/cockpit; index index.php; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass php-fpm:9000; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; } # Защищаем storage location ~* /storage/(.*)$ { deny all; } }לא מוגדר. ספק מחרוזת באורך של לפחות 32 תווים.
הניסיון שלנו מראה ש-80% מהבעיות נפתרות עם הגדרת שרת נכונה. אנו מבטיחים שלאחר ההתקנה שלנו, Cockpit ירוץ ביציבות. הזמינו התקנת Cockpit CMS — נגדיר הכל תוך 1-3 ימים. קבלו ייעוץ לפרויקט שלכם; צרו קשר כדי לדון בפרטים. נעריך את המשימה תוך יום אחד — כתבו לנו.
המלצות אבטחה נוספות
לייצור, השתמש ב-HTTPS, הגבל גישה ל-<?php return [ 'app.name' => 'My CMS', 'app.language' => 'ru', // База данных (SQLite по умолчанию — не требует настройки) // Для MongoDB: 'database' => [ 'server' => 'mongodb://localhost:27017', 'options' => ['db' => 'cockpitdb'], ], // Email 'mailer' => [ 'from' => '[email protected]', 'from_name' => 'My Site', 'transport' => 'smtp', 'host' => 'smtp.mailgun.org', 'user' => '[email protected]', 'password' => 'password', 'port' => 587, 'auth' => true, 'encryption' => 'tls', ], // Хранилище файлов 'filestorage' => [ 's3' => [ 'region' => 'eu-west-1', 'key' => 'ACCESS_KEY', 'secret' => 'SECRET_KEY', 'bucket' => 'my-cockpit-media', ], ], ]; לפי IP, עדכן באופן קבוע את ליבת ה-CMS. פרטים נוספים במאגר הרשמי של Cockpit.







