Si vous souhaitez créer un site Web avec Prestashop à court terme;
De plus, gérez les conteneurs Docker avec Portainer.
ARM64 / AARCH64, x86-64
apk, dnf, yum, apt / apt-get, zypper
Créez des règles pour ouvrir des ports sur Internet ou vers une adresse ou une plage IPv4 spécifique.
Si vous utilisez un système avec moins de 2 Go de RAM, nous vous recommandons de créer un fichier d'échange; Sinon, votre installation pourrait échouer.
Télécharger avec
git clone https://github.com/damalis/full-stack-nginx-prestashop-for-everyone-with-docker-compose.git
Ouvrez un terminal et cd au dossier dans lequel docker-compose.yml est enregistré et exécuté:
cd full-stack-nginx-prestashop-for-everyone-with-docker-compose
chmod +x install.sh
./install.sh
Assurez-vous que les dernières versions de Docker et Docker Compose sont installées sur votre machine.
Clone ce référentiel ou copiez les fichiers de ce référentiel dans un nouveau dossier.
Assurez-vous d'ajouter votre utilisateur au groupe docker .
Télécharger avec
git clone https://github.com/damalis/full-stack-nginx-prestashop-for-everyone-with-docker-compose.git
Ouvrez un terminal et cd au dossier dans lequel docker-compose.yml est enregistré et exécuté:
cd full-stack-nginx-prestashop-for-everyone-with-docker-compose
Copiez l'exemple d'environnement dans .env
cp env.example .env
Edit the .env file to change values of 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 et PMA_HTPASSWD_PASSWORD .
Local_timeZone = pour voir les fuseaux horaires locaux
Directory_path = pwd à la ligne de commande
Database_image_name = mariadb ou mysql
Database_Cont_name = mariadb , mysql ou custom name
Database_package_manager = apt-get update && apt-get install -y gettext-base microdnf install -y gettext
Database_admin_commandline = mariadb-admin pour mariaDB, mysqladmin pour mysql
et
cp ./phpmyadmin/apache2/sites-available/default-ssl.sample.conf ./phpmyadmin/apache2/sites-available/default-ssl.conf
Modifiez Exemple.com par votre nom de domaine dans ./phpmyadmin/apache2/sites-available/default-ssl.conf .
cp ./database/phpmyadmin/sql/create_tables.sql.template.example ./database/phpmyadmin/sql/create_tables.sql.template
Modifiez PMA_Controluser et DB_Authentication_password dans ./database/phpmyadmin/sql/create_tables.sql.template Fichier.
Premièrement: créera un volume externe
docker volume create --driver local --opt type=none --opt device=${PWD}/certbot --opt o=bind certbot-etc
docker compose up -d
puis rechargement pour la configuration SSL du serveur Web
docker container restart webserver
Les conteneurs sont maintenant construits et en cours d'exécution. Vous devriez pouvoir accéder à l'installation de Prestashop avec l'IP configuré dans l'adresse du navigateur. https://example.com .
Pour plus de commodité, vous pouvez ajouter une nouvelle entrée dans le fichier de votre hôte.
docker compose -f portainer-docker-compose.yml -p portainer up -d
Gérer Docker avec Portainer est l'outil de gestion définitif des conteneurs pour Docker, Docker Swarm avec son GUI et API hautement intuitives.
Vous pouvez également visiter https://example.com:9001 pour accéder à Portainer après avoir commencé les conteneurs.
La commande docker PS affiche uniquement les conteneurs en cours d'exécution par défaut. Pour voir tous les conteneurs, utilisez le drapeau -a (ou - tout):
docker ps -a
Vous pouvez démarrer les conteneurs avec la commande up en mode démon (en ajoutant -d comme argument) ou en utilisant la commande start :
docker compose start
docker compose stop
Pour arrêter et supprimer tous les conteneurs, utilisez la commande down :
docker compose down
Pour supprimer le portainer et les autres conteneurs:
docker rm -f $(docker ps -a -q)
Utilisez -v si vous devez supprimer le volume de la base de données qui est utilisé pour persister la base de données:
docker compose down -v
Pour supprimer le certificat externe-ETC et le portainer et les autres volumes:
docker volume rm $(docker volume ls -q)
Supprimez toutes les images, conteneurs, volumes et réseaux qui ne sont pas associés à un conteneur (pendante):
docker system prune
Pour supprimer en outre tous les conteneurs arrêtés et toutes les images inutilisées (pas seulement celles qui pendaient), ajoutez l'indicateur -a à la commande:
docker system prune -a
Pour supprimer le portainer et les autres images:
docker rmi $(docker image ls -q)
Copiez tous les fichiers dans un nouveau répertoire:
Vous pouvez maintenant utiliser la commande up :
docker compose up -d
https://docs.docker.com/ngine/reference/run/
Vous devriez voir la page "Site de démonstration Prestashop" dans votre navigateur. Sinon, veuillez vérifier si votre installation PHP répond aux exigences de 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 et composer require doctrine/persistence:2.5.7 au conteneur Prestashop.
https://example.com/admin-dev , Email address: ${LETSENCRYPT_EMAIL} and Password: ${PMA_HTPASSWD_PASSWORD} dans le fichier .env.
Ajouter ou supprimer le code dans le fichier ./php-fpm/php/conf.d/security.ini pour les configurations PHP.ini personnalisées
https://www.php.net/manual/en/configuration.file.php
Vous devez effectuer des modifications des configurations d'hôte personnalisées ./php-fpm/php-fpm.d/z-www.conf alors redémarrer le service, FPM utilise la syntaxe php.ini pour son fichier de configuration - php-fpm.conf et les fichiers de configuration du pool.
https://www.php.net/manual/en/install.fpm.configuration.php
docker container restart prestashop
Ajouter et / ou supprimer les dossiers et fichiers de site Prestashop avec n'importe quel programme client FTP dans le dossier ./prestashop .
Vous pouvez également visiter https://example.com pour accéder au site Web après le démarrage des conteneurs.
Ajouter ou supprimer le code dans le fichier ./webserver/templates/nginx.conf.template pour les configurations Nginx personnalisées
https://docs.nginx.com/nginx/admin-guide/basic-functionality/managing-configuration-files/
Optimisez votre configuration Nginx ici.
Par défaut, les tables de base de données de Prestashop commencent par le préfixe PS_. Cela peut être personnalisé lors de l'installation.
Important;
Pour des raisons de sécurité, nous recommandons fortement de personnaliser votre préfixe de base de données au lieu d'utiliser celui par défaut. Le modification aidera à protéger votre magasin contre toute attaque (une injection SQL par exemple) ciblant les noms de table par défaut.
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/
Vous pouvez ajouter vos propres paramètres personnalisés config.inc.php (tels que la configuration du stockage de configuration) en créant un fichier nommé config.user.inc.php avec les différents paramètres définis par l'utilisateur, puis en le liant dans le conteneur à l'aide:
./phpmyadmin/config.user.inc.php
Vous pouvez également visiter https://example.com:9090 pour accéder à PhpMyAdmin après le démarrage des conteneurs.
Le premier Autoriser l'écran (HTPASSWD; nom d'utilisateur ou mot de passe) et l'écran de connexion PhpMyAdmin Le nom d'utilisateur et le mot de passe est le même que celui fourni dans le fichier .env .
Cela sauvegardera tous les fichiers et dossiers dans les volumes de base de données / vidage SQL et HTML, une fois par jour, et l'écrivez sur ./backups avec un nom de fichier comme Backup-2023-01-01T10-18-00.tar.gz
BACKUP_CRON_EXPRESSION: '20 01 * * *' Le fuseau horaire UTC.