짧은 시간에 Prestashop으로 웹 사이트를 구축하려면;
또한 Portainer와 함께 Docker 컨테이너를 관리하십시오.
ARM64/AARCH64, X86-64
APK, DNF, YUM, APT/APT-GET, ZYPPER
인터넷 또는 특정 IPv4 주소 또는 범위에 포트를 열 수있는 규칙을 만듭니다.
2GB 미만의 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 Compose가 설치되어 있는지 확인하십시오.
이 저장소를 복제 하거나이 저장소의 파일을 새 폴더로 복사하십시오.
docker Group에 사용자를 추가하십시오.
다운로드
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
LOCAL_TIMEZONE , DOMAIN_NAME , DIRECTORY_PATH LETSENCRYPT_EMAIL db_user, db_password, db_name, DB_PASSWORD , mysql_root_password, DB_USER , DB_NAME , DB_TABLE_PREFIX MYSQL_ROOT_PASSWORD db_password, DATABASE_IMAGE_NAME , DATABASE_CONT_NAME , DATABASE_PACKAGE_MANAGER 의 .env 파일 편집. 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
Database_ADMIN_COMMANDLINE = mariadb-admin , MySQL 용 mysqladmin
그리고
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
./database/phpmyadmin/sql/create_tables.sql.template 파일에서 pma_controluser 및 db_authentication_password를 변경하십시오.
첫째 : 외부 볼륨을 생성합니다
docker volume create --driver local --opt type=none --opt device=${PWD}/certbot --opt o=bind certbot-etc
docker compose up -d
그런 다음 WebServer SSL 구성에 대한 Reloading
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
Daon Mode ( -d 인수로 추가함으로써) 또는 start 명령을 사용하여 up 명령으로 컨테이너를 시작할 수 있습니다.
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 .
https://example.com/admin-dev , Email address: ${LETSENCRYPT_EMAIL} and Password: ${PMA_HTPASSWD_PASSWORD} .env 파일.
Custom Php.ini 구성을위한 ./php-fpm/php/conf.d/security.ini 파일에서 코드 추가 또는 제거
https://www.php.net/manual/en/configuration.file.php
변경 사항 사용자 정의 호스트 구성 ./php-fpm/php-fpm.d/z-www.conf www.conf 서비스를 다시 시작해야합니다. 그런 다음 서비스를 다시 시작해야합니다. FPM은 구성 파일에 php.ini 구문을 사용합니다 -Php-fpm.conf 및 풀 구성 파일.
https://www.php.net/manual/en/install.fp.configuration.php
docker container restart prestashop
./prestashop 폴더의 FTP 클라이언트 프로그램을 사용하여 Prestashop 사이트 폴더 및 파일을 추가 및/또는 제거하십시오.
컨테이너를 시작한 후 https://example.com 방문하여 웹 사이트에 액세스 할 수 있습니다.
사용자 정의 nginx 구성을위한 ./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의 다양한 사용자 정의 설정으로 파일을 작성한 다음 다음을 사용하여 컨테이너에 연결하여 자신의 사용자 정의 config.inc.php 설정 (예 : 구성 저장소 설정)을 추가 할 수 있습니다.
./phpmyadmin/config.user.inc.php
컨테이너를 시작한 후 https://example.com:9090 방문하여 phpmyadmin에 액세스 할 수 있습니다.
첫 번째 인증 화면 (htpasswd; username 또는 password) 및 phpmyadmin 로그인 화면 사용자 이름과 비밀번호는 .env 파일에 제공된 것과 동일합니다.
이것은 하루에 한 번 데이터베이스/덤프 SQL 및 HTML 볼륨의 모든 파일과 폴더를 백업하여 Backup-2023-01-01-18-00.tar.gz와 같은 파일 이름으로 ./backups에 작성합니다.
BACKUP_CRON_EXPRESSION: '20 01 * * *' UTC 타임 존.