Prestashopを短時間でWebサイトを構築したい場合。
さらに、PortainerでDockerコンテナを管理します。
ARM64/AARCH64、x86-64
apk、dnf、yum、apt/apt-get、zypper
インターネットにポートを開く、または特定のIPv4アドレスまたは範囲にルールを作成します。
2 GB未満のRAMを持つシステムを使用している場合は、スワップファイルを作成することをお勧めします。それ以外の場合、インストールが失敗する可能性があります。
でダウンロードします
git clone https://github.com/damalis/full-stack-apache2-prestashop-for-everyone-with-docker-compose.git
docker-compose.ymlが保存されて実行されるフォルダーに端子とcdを開きます。
cd full-stack-apache2-prestashop-for-everyone-with-docker-compose
chmod +x install.sh
./install.sh
DockerとDockerの最新バージョンがマシンにインストールされていることを確認してください。
このリポジトリをクローンするか、このリポジトリからファイルを新しいフォルダーにコピーします。
ユーザーをdockerグループに追加してください。
でダウンロードします
git clone https://github.com/damalis/full-stack-apache2-prestashop-for-everyone-with-docker-compose.git
docker-compose.ymlが保存されて実行されるフォルダーに端子とcdを開きます。
cd full-stack-apache2-prestashop-for-everyone-with-docker-compose
環境の例を.envにコピーします
cp env.example .env
.envファイルDATABASE_PACKAGE_MANAGER編集しDB_USER 、 LOCAL_TIMEZONE 、 DOMAIN_NAME 、 DIRECTORY_PATH 、 LETSENCRYPT_EMAIL 、 DB_PASSWORD 、 DATABASE_CONT_NAME DB_NAME値DATABASE_IMAGE_NAME変更しDB_TABLE_PREFIX MYSQL_ROOT_PASSWORD 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の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
PMA_CONTROLUSERおよびDB_AUTHENTICATION_PASSWORDの./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
次に、WebServer SSL構成のリロードを行います
docker container restart webserver
コンテナは現在構築され、実行されています。ブラウザアドレスに設定されたIPを使用して、Prestashopのインストールにアクセスできるはずです。 https://example.com 。
便宜上、ホストファイルに新しいエントリを追加できます。
docker compose -f portainer-docker-compose.yml -p portainer up -d
Portainerを使用してDockerを管理することは、非常に直感的なGUIとAPIを備えたDocker、Docker Swarmの決定的なコンテナ管理ツールです。
https://example.com:9001にアクセスして、コンテナを起動した後にPortainerにアクセスすることもできます。
Docker PSコマンドには、デフォルトで実行されているコンテナのみが表示されます。すべての容器を表示するには、-a(または-all)フラグを使用します。
docker ps -a
Daemonモードで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 。
https://example.com/admin 、 Email address: ${LETSENCRYPT_EMAIL} and Password: ${PMA_HTPASSWD_PASSWORD} .envファイル。
カスタム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はサービスを再起動する必要があります。fpmは、その構成ファイルにphp.ini syntaxを使用します-php-fpm.conf、およびプール構成ファイルを使用します。
https://www.php.net/manual/en/install.fpm.configuration.php
docker container restart prestashop
./prestashopフォルダーにFTPクライアントプログラムを使用して、Prestashopサイトフォルダーとファイルを追加および/または削除します。
https://example.comにアクセスして、コンテナを起動した後にWebサイトにアクセスすることもできます。
カスタムapache2/httpd構成の./webserver/extra/httpd-ssl.confファイルにコードを追加または削除する
https://httpd.apache.org/docs/2.4/
ここでApache HTTPD構成を最適化します。
デフォルトでは、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 or password)とphpmyadminログイン画面ユーザー名とパスワードは.envファイルに提供されるものと同じです。
これにより、データベース/ダンプSQLおよびHTMLボリュームのすべてのファイルとフォルダーが1日1回バックアップされ、Backup-2023-01-01t10-18-00.tar.gzのようなファイル名で./backupsに書き込みます。
BACKUP_CRON_EXPRESSION: '20 01 * * *' UTC TimeZone。