如果您想在短時間使用Prestashop建立網站;
另外,使用Portainer管理Docker容器。
ARM64/AARCH64,X86-64
apk,dnf,yum,apt/apt-get,zypper
創建規則以打開Internet或特定IPv4地址或範圍的規則。
如果您使用的是少於2 GB RAM的系統,建議您創建一個交換文件;否則,您的安裝可能會失敗。
下載
git clone https://github.com/damalis/full-stack-nginx-prestashop-for-everyone-with-docker-compose.git
向docker-compose.yml保存並運行的文件夾打開端子和cd :
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
向docker-compose.yml保存並運行的文件夾打開端子和cd :
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 , DATABASE_CONT_NAME MYSQL_ROOT_PASSWORD DATABASE_IMAGE_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用於Mariadb, mysqladmin for MySQL
和
cp ./phpmyadmin/apache2/sites-available/default-ssl.sample.conf ./phpmyadmin/apache2/sites-available/default-ssl.conf
在./phpmyadmin/apache2/sites-available/default-ssl.conf文件中將example.com更改為您的域名。
cp ./database/phpmyadmin/sql/create_tables.sql.template.example ./database/phpmyadmin/sql/create_tables.sql.template
更改pma_controluser和db_authentication_password in ./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
然後重新加載Web服務器SSL配置
docker container restart webserver
現在,容器已構建和運行。您應該能夠在瀏覽器地址中使用配置的IP訪問Prestashop安裝。 https://example.com 。
為了方便起見,您可以在主機文件中添加一個新條目。
docker compose -f portainer-docker-compose.yml -p portainer up -d
使用Portainer管理Docker是Docker,Docker Swarm具有高度直觀的GUI和API的確定容器管理工具。
您也可以在啟動容器後訪問https://example.com:9001以訪問Portainer。
Docker PS命令僅默認顯示運行容器。要查看所有容器,請使用-a(或 - all)標誌:
docker ps -a
您可以在守護程序模式下使用up命令(通過添加-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
為了刪除所有停止的容器和所有未使用的圖像(不僅僅是懸掛圖像),請在命令中添加-A標誌:
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在Prestashop容器上。
https://example.com/admin-dev , Email address: ${LETSENCRYPT_EMAIL} and Password: ${PMA_HTPASSWD_PASSWORD} 。
在./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和pool配置文件。
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文件中添加或刪除代碼
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.user.inc.php的文件,其中包含各種用戶定義的設置,然後使用:
./phpmyadmin/config.user.inc.php
您也可以訪問https://example.com:9090啟動容器後訪問phpmyadmin。
第一個授權屏幕(htpasswd;用戶名或密碼)和phpmyadmin登錄屏幕用戶名和密碼與.env文件中提供的密碼相同。
這將每天一次備份數據庫/轉儲SQL和HTML卷中的所有文件和文件夾,並使用backup-2023-01-01-01-01t10-18-00.gz將其寫入./backups。
BACKUP_CRON_EXPRESSION: '20 01 * * *' UTC時區。