Si desea construir un sitio web con Prestashop en poco tiempo;
Además, administre contenedores Docker con Portainer.
ARM64/AARCH64, X86-64
apk, dnf, yum, apt/apt-get, zypper
Cree reglas para abrir puertos a Internet, o a una dirección o rango de IPv4 específica.
Si está utilizando un sistema con menos de 2 GB de RAM, le recomendamos que cree un archivo de intercambio; De lo contrario, su instalación puede fallar.
descargar con
git clone https://github.com/damalis/full-stack-apache2-prestashop-for-everyone-with-docker-compose.git
Abra un terminal y cd a la carpeta en la que docker-compose.yml se guarda y se ejecuta:
cd full-stack-apache2-prestashop-for-everyone-with-docker-compose
chmod +x install.sh
./install.sh
Asegúrese de tener las últimas versiones de Docker y Docker Compose instaladas en su máquina.
Clone este repositorio o copie los archivos de este repositorio en una nueva carpeta.
Asegúrese de agregar su usuario al grupo docker .
descargar con
git clone https://github.com/damalis/full-stack-apache2-prestashop-for-everyone-with-docker-compose.git
Abra un terminal y cd a la carpeta en la que docker-compose.yml se guarda y se ejecuta:
cd full-stack-apache2-prestashop-for-everyone-with-docker-compose
Copiar el entorno de ejemplo en .env
cp env.example .env
Editar el archivo .env para cambiar los valores de LOCAL_TIMEZONE , DOMAIN_NAME , DIRECTORY_PATH , LETSENCRYPT_EMAIL , DB_USER , DB_PASSWORD , DB_NAME , DB_TABLE_PREFIX , mysql_root_password, MYSQL_ROOT_PASSWORD , DATABASE_IMAGE_NAME , DATABASE_CONT_NAME , DATABASE_PACKAGE_MANAGER , DATABASE_ADMIN_COMMANDLINE , PMA_CONTROLUSER , PMA_CONTROLPASS , PMA_HTPASSWD_USERNAME y PMA_HTPASSWD_PASSWORD .
Local_Timezone = para ver las zonas horarias locales
Directorio_path = pwd en línea de comandos
Database_image_name = mariadb o mysql
Database_cont_name = mariadb , mysql o custom name
Database_package_manager = apt-get update && apt-get install -y gettext-base para mariadb, microdnf install -y gettext para mysql
Database_admin_commandline = mariadb-admin para mariadb, mysqladmin para mysql
y
cp ./phpmyadmin/apache2/sites-available/default-ssl.sample.conf ./phpmyadmin/apache2/sites-available/default-ssl.conf
Cambie Ejemplo.com a su nombre de dominio en el archivo ./phpmyadmin/apache2/sites-available/default-ssl.conf .
cp ./database/phpmyadmin/sql/create_tables.sql.template.example ./database/phpmyadmin/sql/create_tables.sql.template
Cambie PMA_CONTROLUSER y DB_Authentication_Password en ./database/phpmyadmin/sql/create_tables.sql.template archivo.
En primer lugar: creará un volumen externo
docker volume create --driver local --opt type=none --opt device=${PWD}/certbot --opt o=bind certbot-etc
docker compose up -d
luego recarga para la configuración SSL de servidor web
docker container restart webserver
Los contenedores ahora están construidos y ejecutados. Debería poder acceder a la instalación de Prestashop con la IP configurada en la dirección del navegador. https://example.com .
Por conveniencia, puede agregar una nueva entrada a su archivo de hosts.
docker compose -f portainer-docker-compose.yml -p portainer up -d
Administrar Docker con Portainer es la herramienta definitiva de gestión de contenedores para Docker, Docker Swarm con su GUI y API altamente intuitiva.
También puede visitar https://example.com:9001 para acceder a Portainer después de iniciar los contenedores.
El comando Docker PS solo muestra los contenedores en ejecución de forma predeterminada. Para ver todos los contenedores, use el indicador -a (o -todo):
docker ps -a
Puede iniciar los contenedores con el comando up en modo demonio (agregando -d como argumento) o utilizando el comando start :
docker compose start
docker compose stop
Para detener y eliminar todos los contenedores, use el comando down :
docker compose down
Para eliminar Portainer y los otros contenedores:
docker rm -f $(docker ps -a -q)
Use -v si necesita eliminar el volumen de la base de datos que se utiliza para persistir en la base de datos:
docker compose down -v
Para eliminar CERTBOT-ETC y Portainer externos y los otros volúmenes:
docker volume rm $(docker volume ls -q)
Elimine todas las imágenes, contenedores, volúmenes y redes que no están asociados con un contenedor (colgando):
docker system prune
Para eliminar adicionalmente los contenedores detenidos y todas las imágenes no utilizadas (no solo las colgantes), agregue la bandera -A al comando:
docker system prune -a
Para eliminar Portainer y las otras imágenes:
docker rmi $(docker image ls -q)
Copie todos los archivos en un nuevo directorio:
Ahora puede usar el comando up :
docker compose up -d
https://docs.docker.com/engine/reference/run/
Debería ver la página del "sitio de demostración de Prestashop" en su navegador. Si no, verifique si su instalación de PHP satisface los requisitos 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 y composer require doctrine/persistence:2.5.7 en el contenedor Prestashop.
https://example.com/admin , Email address: ${LETSENCRYPT_EMAIL} and Password: ${PMA_HTPASSWD_PASSWORD} en el archivo .env.
Agregue o elimine el código en el archivo ./php-fpm/php/conf.d/security.ini para configuraciones personalizadas de php.ini
https://www.php.net/manual/en/configuration.file.php
Debe realizar cambios de configuraciones de host personalizadas ./php-fpm/php-fpm.d/z-www.conf , entonces debe reiniciar el servicio, FPM usa sintaxis php.ini para su archivo de configuración: php-fpm.conf y archivos de configuración del grupo.
https://www.php.net/manual/en/install.fpm.configuration.php
docker container restart prestashop
Agregue y/o elimine las carpetas y archivos del sitio de Prestashop con cualquier programa de cliente FTP en la carpeta ./prestashop .
También puede visitar https://example.com para acceder al sitio web después de iniciar los contenedores.
Agregue o elimine el código en el archivo ./webserver/extra/httpd-ssl.conf para configuraciones personalizadas de apache2/httpd
https://httpd.apache.org/docs/2.4/
Optimice su configuración de Apache HTTPD aquí.
Por defecto, las tablas de base de datos de Prestashop comienzan con el prefijo PS_. Esto se puede personalizar durante la instalación.
Importante;
Por razones de seguridad, recomendamos personalizar su prefijo de base de datos en lugar de usar el predeterminado. Cambiarlo ayudará a proteger su tienda contra cualquier ataques (alguna inyección de SQL, por ejemplo) dirigida a los nombres de tabla predeterminados.
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/
Puede agregar su propia configuración de configuración personalizada.
./phpmyadmin/config.user.inc.php
También puede visitar https://example.com:9090 para acceder a phpmyadmin después de iniciar los contenedores.
La primera pantalla de autorización (htpasswd; nombre de usuario o contraseña) y la pantalla de inicio de sesión de PhpMyAdmin el nombre de usuario y la contraseña es la misma que se suministra en el archivo .env .
Esto respaldará todos los archivos y carpetas en la base de datos/volúmenes SQL y HTML, una vez al día, y lo escribirá ./backups con un nombre de archivo como Backup-2023-01-01T10-18-00.tar.gz
BACKUP_CRON_EXPRESSION: '20 01 * * *' La zona horaria de UTC.