我想设置Caddy, MariaDB 和 PHP 8.2 以及 FPM 用于在运行 AlmaLinux 9 的虚拟服务器上托管 Shopware 6 生产安装。我对此非常陌生,因此非常感谢任何提示!
我拥有虚拟服务器的 root 访问权限并设置以下目录
lcmp( 适用于 linux、caddy、mariadb、php)
在 /lcmp 中我有以下目录和文件
docker-compose.yaml /caddy_docker /www
这是 docker - compose.yaml
#PHP Service php: build: './php_docker/'volumes: -. / www / :/var/www / html /
#Caddy Service caddy: build: './caddy_docker/'depends_on: -php ports: -"80:80" - "443:443"volumes: -. / www / :/var/www / html /
#MariaDB Service mariadb: image: mariadb: 10.11 environment: MYSQL_ROOT_PASSWORD: <root db pw volumes: -mysqldata: /var/lib / mysql
#phpMyAdmin Service phpmyadmin: image: phpmyadmin / phpmyadmin: latest ports: -8080 : 80 environment: PMA_HOST: mariadb depends_on: -mariadb
#Volumes volumes: mysqldata:
在/caddy_docker中有Dockerfile
#Update package index and upgrade installed packages RUN apk update && apk upgrade
#Copy Caddyfile to configure Caddy server COPY Caddyfile / etc / caddy / Caddyfile```
and Caddyfile
```domain.tld: 80 {
reverse_proxy php: 9000 {
import php_common
}
}
(php_common) {
root * /var/www / html file_server php_fastcgi php: 9000 log {
output stdout
}
}```
In / php_docker I have(the extensions are required by Shopware 6) from
[https: //github.com/mlocati/docker-php-extension-installer][1]
```FROM php: 8.2 - fpm - alpine
#Downloading install - php - extensions script and making it executable ADD https: //github.com/mlocati/docker-php-extension-
installer / releases / latest / download / install - php - extensions / usr / local / bin / install - php - extensions RUN chmod + x / usr / local / bin / install - php - extensions
#Installing PHP extensions using install - php - extensions script RUN install - php - extensions\mysqli\pdo\pdo_mysql\gd\zip\intl\xml\curl\dom\fileinfo\iconv\json\libxml\mbstring\openssl\pcre\phar\simplexml\zlib
#Cleaning APK cache RUN rm - rf /
var / cache / apk
/*
在/www中有一个简单的index.php,其中
<?php phpinfo(); ?
我有一个域名 < domain.tld that when opened in the browser should show the index.php The domain is connected via DNS a records to the virtual server, there is no issues with that.
通过以下步骤在此虚拟服务器上安装 Docker
1. dnf upate
2. dnf install yum - utils
3. dnf config - manager--add - repo https: //download.docker.com/linux/centos/docker-ce.repo
4. sudo dnf install docker - ce docker - ce - cli containerd.io
然后启动并启用
systemctl start docker
systemctl enable docker
docker 服务已启动并正在运行。运行 docker compose up -d 在这里工作是输出
docker compose up -d
WARN[0000] Found orphan containers ([lcmp-apache-1]) for this project. If you removed
or renamed this service in your compose file, you can run this command
[+] Running 4/4
✔ Container lcmp-mariadb-1 Running
✔ Container lcmp-php-1 Running
✔ Container lcmp-phpmyadmin-1 Running
✔ Container lcmp-caddy-1 Started
这是
的输出 docker ps
CONTAINER ID IMAGE COMMAND
CREATED
STATUS PORTS NAMES
562fb44c3043 phpmyadmin/phpmyadmin:latest "/docker-entrypoint.…" 26 minutes ago
Up 26 minutes 0.0.0.0:8080-80/tcp, :::8080-80/tcp lcmp-phpmyadmin-1
8f778648eed9 mariadb:10.11 "docker-entrypoint.s…" 26 minutes ago
Up 26 minutes 3306/tcp lcmp-mariadb-1
59482a5db10a lcmp-php "docker-php-entrypoi…" 26 minutes ago
Up 26 minutes 9000/tcp lcmp-php-1
我想要的:
目前发生了什么
从终端运行curl localhost 返回
curl: (7) 无法连接到本地主机端口 80:连接被拒绝
输入域名.tld
domain.tld 响应时间过长 ERR_CONNECTION_TIMED_OUT*/
它现在可以工作了,不确定安全性,但是我放入 /www 文件夹中的任何内容现在都可以工作,对于原始问题中的格式错误感到抱歉,这是我发布它的唯一方式。无论如何,这是我更新的 Caddyfile 在 /lcmp/caddy_docker
http://domain.tld {
root * /var/www/html
php_fastcgi php:9000
file_server
}
https://domain.tld {
root * /var/www/html
php_fastcgi php:9000
file_server
}
我在 /lcmp/caddy_docker/ 中创建了两个新目录
这是 /lcmp 中更新的 docker-compose.yaml
version: "3.8"
services:
# PHP Service
php:
build: './php_docker/'
volumes:
- ./www/:/var/www/html/
# Caddy Service
caddy:
build: './caddy_docker/'
depends_on:
- php
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- ./www/:/var/www/html/
- ./caddy_docker/Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
- caddy_config:/config
# MariaDB Service
mariadb:
image: mariadb:10.11
environment:
MYSQL_ROOT_PASSWORD: <redacted>
volumes:
- mysqldata:/var/lib/mysql
# phpMyAdmin Service
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
ports:
- 8080:80
environment:
PMA_HOST: mariadb
depends_on:
- mariadb
# Volumes
volumes:
mysqldata:
caddy_data:
caddy_config: