إذا كنت ترغب في إنشاء موقع ويب مع Prestashop في وقت قصير ؛
بالإضافة إلى ذلك ، إدارة حاويات Docker مع Portainer.
ARM64/AARCH64 ، x86-64
APK ، DNF ، YUM ، APT/APT-GET ، Zypper
قم بإنشاء قواعد لفتح المنافذ على الإنترنت ، أو إلى عنوان أو نطاق محدد IPv4.
إذا كنت تستخدم نظامًا يحتوي على ذاكرة وصول عشوائي أقل من 2 جيجابايت ، فإننا نوصيك بإنشاء ملف مبادلة ؛ خلاف ذلك ، قد يفشل التثبيت.
تحميل مع
git clone https://github.com/damalis/full-stack-nginx-prestashop-for-everyone-with-docker-compose.git
افتح محطة وقرص cd على المجلد الذي يتم فيه حفظ وتشغيل docker-compose.yml :
cd full-stack-nginx-prestashop-for-everyone-with-docker-compose
chmod +x install.sh
./install.sh
تأكد من أن لديك أحدث إصدارات Docker و Docker مثبتة على جهازك.
استنساخ هذا المستودع أو انسخ الملفات من هذا المستودع إلى مجلد جديد.
تأكد من إضافة المستخدم الخاص بك إلى مجموعة docker .
تحميل مع
git clone https://github.com/damalis/full-stack-nginx-prestashop-for-everyone-with-docker-compose.git
افتح محطة وقرص cd على المجلد الذي يتم فيه حفظ وتشغيل docker-compose.yml :
cd full-stack-nginx-prestashop-for-everyone-with-docker-compose
انسخ مثال البيئة إلى .env
cp env.example .env
قم بتحرير ملف .env لتغيير قيم LOCAL_TIMEZONE ، DOMAIN_NAME ، DIRECTORY_PATH LETSENCRYPT_EMAIL ، DB_USER ، DB_PASSWORD ، DB_NAME ، DB_TABLE_PREFIX ، MYSQL_ROOT_PASSWORD ، DATABASE_IMAGE_NAME DATABASE_CONT_NAME DATABASE_PACKAGE_MANAGER DATABASE_ADMIN_COMMANDLINE ، PMA_CONTROLUSER ، PMA_CONTROLPASS ، PMA_HTPASSWD_USERNAME و PMA_HTPASSWD_PASSWORD .
local_timezone = لرؤية المناطق الزمنية المحلية
DIRECTORY_PATH = pwd في سطر الأوامر
database_image_name = mariadb أو mysql
database_cont_name = mariadb ، mysql أو custom name
database_package_manager = apt-get update && apt-get install -y gettext-base for mariaDB ، microdnf install -y gettext for mysql
database_admin_commandline = mariadb-admin for mariaDB ، mysqladmin for mysql
و
cp ./phpmyadmin/apache2/sites-available/default-ssl.sample.conf ./phpmyadmin/apache2/sites-available/default-ssl.conf
قم بتغيير example.com إلى اسم المجال الخاص بك في ./phpmyadmin/apache2/sites-available/default-ssl.conf
cp ./database/phpmyadmin/sql/create_tables.sql.template.example ./database/phpmyadmin/sql/create_tables.sql.template
تغيير pma_controluser و db_authentication_password في ./database/phpmyadmin/sql/create_tables.sql.template ملف.
أولا: سيخلق وحدة تخزين خارجي
docker volume create --driver local --opt type=none --opt device=${PWD}/certbot --opt o=bind certbot-etc
docker compose up -d
ثم إعادة تحميل تكوين SSL خادم الويب
docker container restart webserver
يتم الآن بناء الحاويات وتشغيلها. يجب أن تكون قادرًا على الوصول إلى تثبيت Prestashop مع IP المكون في عنوان المتصفح. https://example.com .
للراحة ، يمكنك إضافة إدخال جديد إلى ملف المضيفين الخاص بك.
docker compose -f portainer-docker-compose.yml -p portainer up -d
إدارة Docker مع Portainer هي أداة إدارة الحاويات النهائية لـ Docker و Docker Swarm مع واجهة المستخدم الرسومية البديهية و API.
يمكنك أيضًا زيارة https://example.com:9001 للوصول إلى Portainer بعد بدء الحاويات.
يعرض أمر Docker PS فقط تشغيل الحاويات افتراضيًا. لمشاهدة جميع الحاويات ، استخدم العلم (أو -كل):
docker ps -a
يمكنك بدء تشغيل الحاويات باستخدام أمر up في وضع Daemon (عن طريق إضافة -d كوسيطة) أو باستخدام أمر start :
docker compose start
docker compose stop
لإيقاف وإزالة جميع الحاويات ، استخدم الأمر down :
docker compose down
لإزالة Portainer والحاويات الأخرى:
docker rm -f $(docker ps -a -q)
استخدم -v إذا كنت بحاجة إلى إزالة وحدة تخزين قاعدة البيانات التي يتم استخدامها لاستمرار قاعدة البيانات:
docker compose down -v
لإزالة certbot-etc الخارجية و Portainer والمجلدات الأخرى:
docker volume rm $(docker volume ls -q)
احذف جميع الصور والحاويات والأحجام والشبكات غير المرتبطة بحاوية (متدلية):
docker system prune
لإزالة أي حاويات متوقفة بالإضافة إلى ذلك وجميع الصور غير المستخدمة (وليس فقط التعلق) ، أضف العلم إلى الأمر:
docker system prune -a
لإزالة Portainer والصور الأخرى:
docker rmi $(docker image ls -q)
نسخ جميع الملفات إلى دليل جديد:
يمكنك الآن استخدام الأمر up :
docker compose up -d
https://docs.docker.com/engine/reference/run/
يجب أن ترى صفحة "موقع Prestashop التجريبي" في متصفحك. إذا لم يكن الأمر كذلك ، يرجى التحقق مما إذا كان تثبيت PHP الخاص بك يفي متطلبات Prestashop.
https://example.com
INSERT INTO `{PREFIX}_image_type` (`id_image_type`, `name`, `width`, `height`, `products`, `categories`, `manufacturers`, `suppliers`, `stores`)
VALUES
(10, 'large_banner', 960, 400, 0, 1, 0, 0, 0),
(9, 'product_listing', 220, 220, 1, 1, 1, 1, 0),
(8, 'category_default', 960, 350, 0, 1, 0, 0, 0),
(7, 'home_default', 250, 250, 1, 0, 0, 0, 0),
(6, 'large_default', 500, 500, 1, 0, 0, 0, 0),
(5, 'medium_default', 300, 300, 1, 1, 1, 1, 0),
(4, 'small_default', 125, 125, 1, 1, 1, 1, 0),
(3, 'cart_default', 80, 80, 1, 0, 0, 0, 0);
composer remove doctrine/persistence:3.2.0 والملحن composer require doctrine/persistence:2.5.7 في حاوية بريستاشوب.
https://example.com/admin-dev ، Email address: ${LETSENCRYPT_EMAIL} and Password: ${PMA_HTPASSWD_PASSWORD} في ملف .env.
إضافة أو إزالة الرمز في ملف ./php-fpm/php/conf.d/security.ini لتكوينات php.ini مخصصة
https://www.php.net/manual/en/configuration.file.php
يجب عليك إجراء تغييرات على تكوينات المضيف المخصصة ./php-fpm/php-fpm.d/z-www.conf
https://www.php.net/manual/en/install.fpm.configuration.php
docker container restart prestashop
إضافة و/أو إزالة مجلدات موقع Prestashop والملفات مع أي برنامج عميل FTP في ./prestashop مجلد.
يمكنك أيضًا زيارة https://example.com للوصول إلى موقع الويب بعد بدء الحاويات.
إضافة أو إزالة الرمز في ملف ./webserver/templates/nginx.conf.template لتكوينات nginx مخصصة
https://docs.nginx.com/nginx/admin-guide/basic-functionality/managing-configuration-files/
تحسين تكوين NGINX هنا.
بشكل افتراضي ، تبدأ جداول قاعدة بيانات Prestashop ببادئة PS_. يمكن تخصيص هذا أثناء التثبيت.
مهم؛
لأسباب أمنية ، نوصي بشدة بتخصيص بادئة قاعدة البيانات الخاصة بك بدلاً من استخدام واحد افتراضي. سيساعد تغييره على حماية متجرك من أي هجمات (بعض حقن SQL على سبيل المثال) تستهدف أسماء الجدول الافتراضية.
https://devdocs.prestashop-project.org/8/development/database/
https://mariadb.com/kb/en/configuring-mariadb-with-option-files/
https://dev.mysql.com/doc/refman/8.3/en/
يمكنك إضافة إعدادات config.inc.php المخصصة الخاصة بك (مثل إعداد تخزين التكوين) عن طريق إنشاء ملف اسمه config.user.inc.inc.php مع مختلف الإعدادات المحددة في ذلك ، ثم ربطه في الحاوية باستخدام:
./phpmyadmin/config.user.inc.php
يمكنك أيضًا زيارة https://example.com:9090 للوصول إلى phpmyadmin بعد بدء الحاويات.
أول شاشة تفويض (htpasswd ؛ اسم المستخدم أو كلمة المرور) وشاشة تسجيل الدخول إلى phpmyadmin اسم المستخدم وكلمة المرور هي نفسها المقدمة في ملف .env .
سيؤدي ذلك إلى نسخة احتياطية من جميع الملفات والمجلدات في قواعد البيانات/التفريغ SQL و HTML ، مرة واحدة يوميًا ، واكتبها إلى.
BACKUP_CRON_EXPRESSION: '20 01 * * *' The UTC timezone.