
做个临时站点 从未学过 docker 听说很方便 于是看了几篇网上教程 复制粘贴后稍作修改 目前情况是:docker-compose 能运行, 各容器能运行,网站能打开 phpinfo,phpmyadmin 能连接上 mariadb 。但是安装 wordpress 时,已经用 phpmyadmin 建了数据库和用户授权。但安装页面填好数据库用户名等信息提交后,提示“There has been a critical error on this website.” 哪位能指点下 可能是哪里出问题了?下面是配置文件 不知道有没有写错的地方?
[目录结构]
| html | index.php | mariadb | conf.d | db | logs | nginx | conf.d | domain |fullchain.cer & domain.key | default.conf | logs | nginx.conf | php | logs | Dockerfile | docker-compose.yml [ Dockerfile ]
FROM php:7.4-fpm-alpine Run apt install iputils-ping \ && docker-php-ext-install mysqli && docker-php-ext-enable mysqli && docker-php-ext-install pdo pdo_mysql [ docker-compose.yml ]
version: '3' networks: lnmp-net: driver: bridge services: mariadb: container_name: mariadb image: mariadb:10.4 ports: - 3306:3306 environment: MYSQL_ROOT_PASSWORD: xxxxxx volumes: - /lnmp/mariadb/db:/var/lib/mysql - /lnmp/mariadb/conf.d:/etc/my.cnf.d - /lnmp/mariadb/logs:/var/log/mariadb restart: always networks: - lnmp-net nginx: container_name: nginx image: nginx:latest ports: - 80:80 - 443:443 volumes: - /lnmp/html:/usr/share/nginx/html - /lnmp/nginx/nginx.conf:/etc/nginx/nginx.conf - /lnmp/nginx/conf.d:/etc/nginx/conf.d - /lnmp/nginx/logs:/var/log/nginx depends_on: - mariadb - php restart: always networks: - lnmp-net php: container_name: php build: ./php image: php:7.4-fpm-alpine ports: - 9000:9000 volumes: - /lnmp/html:/var/www/html - /lnmp/php/php.ini:/usr/local/etc/php/php.ini - /lnmp/php/logs:/usr/local/var/log restart: always networks: - lnmp-net phpmyadmin: container_name: phpmyadmin image: phpmyadmin/phpmyadmin ports: - 2000:80 restart: always environment: PMA_HOST: mariadb networks: - lnmp-net [/lnmp/nginx/conf.d/default.conf ]
...... root /usr/share/nginx/html; index index.html index.htm index.php; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } } 1 foMM 2021-02-17 19:40:50 +08:00 |
2 Showfom PRO 安装 WordPress 的时候,hostname 写 mariadb 镜像的内网 IP 地址试试? |
3 jaleo OP @Showfom ip 是 172.21.0.2 试了还是一样 好像网上的教程大多只涉及到上面的程度 看来没有系统性的学习 临时突击真不行 |
4 Yourshell 2021-02-17 20:14:25 +08:00 wordpress 开 debug 模式看看 |
5 shahaier 2021-02-17 20:19:14 +08:00 使用 mariadb 这个名字试试 |
6 mxalbert1996 2021-02-17 20:40:58 +08:00 via Android project 内部通信的 host 用 service 名 |
7 jaleo OP @mxalbert1996 @shahaier 数据库的 service 名是 mariadb 吗? 创建用户名时 CREATE USER 'user'@'localhost' 这个 localhost 也要用 service 名吗? |
8 mxalbert1996 2021-02-17 22:14:56 +08:00 via Android @jaleo 我建议你去读一遍文档看看 @ 后面这个 host 到底是什么意思。另外创建用户一般用环境变量: https://hub.docker.com/_/mariadb |