如果您想在短时间使用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时区。