หากคุณต้องการสร้างเว็บไซต์ด้วย Prestashop ในเวลาอันสั้น
นอกจากนี้ยังจัดการคอนเทนเนอร์ Docker กับ Portainer
ARM64/AARCH64, x86-64
apk, dnf, yum, apt/apt-get, zypper
สร้างกฎเพื่อเปิดพอร์ตไปยังอินเทอร์เน็ตหรือไปยังที่อยู่หรือช่วง IPv4 ที่เฉพาะเจาะจง
หากคุณใช้ระบบที่มี RAM น้อยกว่า 2 GB เราขอแนะนำให้คุณสร้างไฟล์ SWAP มิฉะนั้นการติดตั้งของคุณอาจล้มเหลว
ดาวน์โหลดด้วย
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 Compose เวอร์ชันล่าสุดที่ติดตั้งไว้ในเครื่องของคุณ
โคลนที่เก็บนี้หรือคัดลอกไฟล์จากที่เก็บนี้ลงในโฟลเดอร์ใหม่
ตรวจสอบให้แน่ใจว่าได้เพิ่มผู้ใช้ของคุณในกลุ่ม 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
DATABASE_PACKAGE_MANAGER ไฟล์ .env DATABASE_IMAGE_NAME เปลี่ยนค่าของ LOCAL_TIMEZONE , DOMAIN_NAME , DIRECTORY_PATH , LETSENCRYPT_EMAIL , DB_USER , DB_PASSWORD , DB_NAME MYSQL_ROOT_PASSWORD DB_TABLE_PREFIX , DATABASE_CONT_NAME 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 สำหรับ mariadb, microdnf install -y gettext สำหรับ mysql
database_admin_commandline = mariadb-admin สำหรับ mariadb, mysqladmin สำหรับ 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
จากนั้นโหลดใหม่สำหรับการกำหนดค่า WebServer SSL
docker container restart webserver
ตู้คอนเทนเนอร์ถูกสร้างและวิ่ง คุณควรจะสามารถเข้าถึงการติดตั้ง Prestashop ด้วย IP ที่กำหนดค่าไว้ในที่อยู่เบราว์เซอร์ https://example.com
เพื่อความสะดวกคุณสามารถเพิ่มรายการใหม่ลงในไฟล์โฮสต์ของคุณ
docker compose -f portainer-docker-compose.yml -p portainer up -d
จัดการนักเทียบท่ากับ Portainer เป็นเครื่องมือการจัดการคอนเทนเนอร์ที่ชัดเจนสำหรับนักเทียบท่า Docker Swarm ด้วย GUI และ API ที่ใช้งานง่าย
นอกจากนี้คุณยังสามารถเยี่ยมชม https://example.com:9001 เพื่อเข้าถึง Portainer หลังจากเริ่มคอนเทนเนอร์
คำสั่ง Docker PS แสดงเฉพาะการรันคอนเทนเนอร์โดยค่าเริ่มต้น หากต้องการดูคอนเทนเนอร์ทั้งหมดให้ใช้ธง -a (หรือ -ทั้งหมด):
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 Demo Site" ในเบราว์เซอร์ของคุณ หากไม่ได้โปรดตรวจสอบว่าการติดตั้ง 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 ที่คอนเทนเนอร์ Prestashop
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 จากนั้นต้องรีสตาร์ทบริการ FPM ใช้ไวยากรณ์ php.ini สำหรับไฟล์การกำหนดค่า-php-fpm.conf และไฟล์การกำหนดค่าพูล
https://www.php.net/manual/en/install.fpm.configuration.php
docker container restart prestashop
เพิ่มและ/หรือลบโฟลเดอร์และไฟล์ Prestashop ด้วยโปรแกรมไคลเอนต์ FTP ใด ๆ ในโฟลเดอร์ ./prestashop 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.php ด้วยการตั้งค่าที่ผู้ใช้ที่กำหนดไว้ในนั้นแล้วเชื่อมโยงเข้ากับคอนเทนเนอร์โดยใช้:
./phpmyadmin/config.user.inc.php
นอกจากนี้คุณยังสามารถเยี่ยมชม https://example.com:9090 เพื่อเข้าถึง phpmyadmin หลังจากเริ่มคอนเทนเนอร์
หน้าจออนุญาตครั้งแรก (htpasswd; ชื่อผู้ใช้หรือรหัสผ่าน) และหน้าจอเข้าสู่ระบบ phpmyadmin ชื่อผู้ใช้และรหัสผ่านเหมือนกับที่ระบุไว้ในไฟล์. .env
สิ่งนี้จะสำรองไฟล์และโฟลเดอร์ทั้งหมดใน Database/Dump SQL และ HTML เล่มหนึ่งต่อวันและเขียนลงไปที่./backups พร้อมชื่อไฟล์เช่น Backup-20123-01-01T10-18-00.tar.gz
BACKUP_CRON_EXPRESSION: '20 01 * * *' เขตเวลา UTC