התקנת Bagisto על ערימת LEMP חדשה נכשלת לעיתים קרובות עקב גרסאות PHP לא תואמות או הרחבות חסרות. נעבור על השלבים המדויקים לקבלת חנות מסחר אלקטרוני יציבה, תוך כיסוי מלכודות נפוצות מהיום הראשון. הצוות שלנו הגדיר את Bagisto עבור יותר מ-15 חנויות ייצור, ואנו מבטיחים כל התקנה למשך 6 חודשים.
למה Bagisto על Laravel היא בחירה מוצקה
Bagisto מנצלת את Laravel 11, Vue 3 ו-Redis, ומציעה גמישות וביצועים. עם זאת, ההתקנה דורשת בקרת גרסאות מדויקת.
כאבי ראש נפוצים בהתקנה
שגיאות טיפוסיות: PHP לא תואם (נדרש 8.1+), חסר BCMath או Ctype, עובדי תור מוגדרים לא נכון, והרשאות קבצים. להלן נתייחס לכל אחד.
דרישות שרת
| רכיב | מינימום | מומלץ |
|---|---|---|
| PHP | 8.1 | 8.2+ |
| MySQL / MariaDB | 8.0 / 10.3 | MySQL 8.0 |
| Composer | 2.x | 2.x |
| Node.js | 16 | 18 LTS |
| RAM | 1 GB | 2 GB+ |
הרחבות PHP נדרשות: cURL, DOM, Fileinfo, JSON, Mbstring, OpenSSL, PCRE, PDO, Tokenizer, XML, GD, Imagick, composer create-project bagisto/bagisto:^2.2 myshop cd myshop cp .env.example .env או .env.
הערה: שימוש ב-Redis למטמון ותורים מקצר את זמן העיבוד פי 5–10 בהשוואה למטמון מבוסס קבצים. הגדר זאת מוקדם.
התקנה דרך Composer
composer create-project bagisto/bagisto:^2.2 myshop cd myshop cp .env.example .env ערוך את APP_URL=https://myshop.example.com DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=bagisto DB_USERNAME=bagisto_user DB_PASSWORD=secret CACHE_DRIVER=redis QUEUE_CONNECTION=redis SESSION_DRIVER=redis REDIS_HOST=127.0.0.1 REDIS_PORT=6379 :
APP_URL=https://myshop.example.com
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=bagisto
DB_USERNAME=bagisto_user
DB_PASSWORD=secret
CACHE_DRIVER=redis
QUEUE_CONNECTION=redis
SESSION_DRIVER=redis
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
הפעל את המתקין:
php artisan bagisto:install זה מריץ מיגרציות, סידרים, מפרסם נכסים ויוצר את המנהל הראשון. לאחר מכן בנה את החזית:
npm install npm run build הגדרת Nginx
server {
listen 80;
server_name myshop.example.com;
root /var/www/myshop/public;
index index.php;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico {
access_log off;
log_not_found off;
}
location = /robots.txt {
access_log off;
log_not_found off;
}
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}הפעל SSL עם Certbot: php artisan bagisto:install .
עובדי תור עם Supervisor
Bagisto משתמשת בתורים למיילים, חשבוניות ו-webhooks.
[program:bagisto-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/myshop/artisan queue:work redis --sleep=3 --tries=3 --max-time=3600
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/var/www/myshop/storage/logs/worker.log
stopwaitsecs=3600 supervisorctl reread supervisorctl update supervisorctl start bagisto-worker:* הגדרה ראשונית של לוח הניהול
התחבר ב-npm install npm run build כדי להגדיר:
ערוצים ולוקאליים
ערוץ הוא "חנות" נפרדת עם דומיין, מטבע ושפה משלה. עבור חנויות רב-לשוניות, צור ערוץ אחד עם מספר לוקאליים.
מסים
server { listen 80; server_name myshop.example.com; root /var/www/myshop/public; index index.php; add_header X-Frame-Options "SAMEORIGIN"; add_header X-Content-Type-Options "nosniff"; charset utf-8; location / { try_files $uri $uri/ /index.php?$query_string; } location = /favicon.ico { access_log off; log_not_found off; } location = /robots.txt { access_log off; log_not_found off; } error_page 404 /index.php; location ~ \.php$ { fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.(?!well-known).* { deny all; } } — צור קטגוריות (למשל, מע"מ 20%). לאחר מכן קשר לקבוצות משלמי מס ואזורים דרך certbot --nginx -d myshop.example.com.
שיטות משלוח
מובנות: FlatRate, משלוח חינם. עבור חברות שליחויות צד שלישי (למשל, CDEK), התקן חבילה או צור ספק מותאם אישית ב-[program:bagisto-worker] process_name=%(program_name)s_%(process_num)02d command=php /var/www/myshop/artisan queue:work redis --sleep=3 --tries=3 --max-time=3600 autostart=true autorestart=true stopasgroup=true killasgroup=true user=www-data numprocs=2 redirect_stderr=true stdout_logfile=/var/www/myshop/storage/logs/worker.log stopwaitsecs=3600 .
שיטות תשלום
מובנות: מזומן במשלוח, העברת כספים, PayPal. שערים מותאמים אישית נרשמים ב-supervisorctl reread supervisorctl update supervisorctl start bagisto-worker:* ומיישמים /admin.
הגדרת דוא"ל
MAIL_MAILER=smtp
MAIL_HOST=smtp.example.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=secret
MAIL_ENCRYPTION=tls
[email protected]
MAIL_FROM_NAME="Мой Магазин"פרסם תבניות דוא"ל:
php artisan vendor:publish --tag=bagisto-mail-views ערוך אותן ב-Каталог → Налоги → Налоговые категории.
Cron עבור מתזמן
* * * * * cd /var/www/myshop && php artisan schedule:run >> /dev/null 2>&1 מטפל בניקוי עגלות, יצירת sitemap ועדכוני שערי מטבע.
הרשאות קבצים
chmod -R 775 storage bootstrap/cache chown -R www-data:www-data /var/www/myshop מה כוללת ההתקנה המפתח-ביד שלנו
| שלב | משך | פעולות |
|---|---|---|
| ניתוח | 1–2 ימים | בחירת אירוח, התאמת גרסאות |
| התקנה | יום אחד | Composer, סביבה, תלויות |
| הגדרה | 1–2 ימים | ערוצים, מסים, משלוח, תשלומים |
| אינטגרציה | יום אחד | דוא"ל, תורים, cron |
| בדיקות | יום אחד | בדיקות פונקציונליות |
רשימת בדיקה לאחר התקנה
- [ ] הפעל
Налоговые ставки - [ ] הגדר גיבויי DB (cron + mysqldump או
config/carriers.php) - [ ] אמת Redis דרך
config/paymentmethods.php→Webkul\Payment\Payment - [ ] בדוק דוא"ל עם הזמנה לדוגמה
- [ ] עקוב אחר תורים באמצעות Laravel Horizon (
MAIL_MAILER=smtp MAIL_HOST=smtp.example.com MAIL_PORT=587 [email protected] MAIL_PASSWORD=secret MAIL_ENCRYPTION=tls [email protected] MAIL_FROM_NAME="Мой Магазин") - [ ] אשר יצירת sitemap ב-
php artisan vendor:publish --tag=bagisto-mail-views
טיפים נוספים
לביצועים, השתמש ב-Redis למטמון ותורים. עקוב עם Laravel Horizon. תיעוד תורים של Laravel
מה לעשות אם משהו נשבר? תיקונים נפוצים
- שגיאת חיבור למסד נתונים: בדוק את .env
- שגיאות Composer: עדכן את גרסת PHP
- נכסים לא נטענים: הפעל
resources/views/vendor/shop/emails/
אם אתה צריך התקנת Bagisto מפתח-ביד עם אחריות ותמיכה, צור קשר. נבחן את הפרויקט שלך ללא עלות.







