我正在尝试安装WordPress与PHP 8.2的本地安装,以测试这个PHP版本的网站。
因此,我使用了wordpress开发人员网站上的docker-compose.yml
文件,并用wordpress:php8.2-fpm-alpine
代替了wordpress:latest
图像。
一旦我用docker-compose启动撰写文件并尝试打开localhost:8080,我无法访问该站点-我得到响应"ERR_EMPTY_RESPONSE
"。日志保持空
如果我尝试访问仅包含<?php phpinfo() ?>
命令的info.php文件,我也会在浏览器中获得ERR_EMPTY_RESPONSE
。
但是,如果我将图像更改回wordpress:latest
,我可以访问网站,一切都按预期工作。
这是我完整的docker-compose。yml文件:
version: "3.6"
services:
wordpress:
image: wordpress:php8.2-fpm-alpine
container_name: wordpress
volumes:
- ./wordpress:/var/www/html
environment:
- WORDPRESS_DB_NAME=wordpress
- WORDPRESS_TABLE_PREFIX=wp_
- WORDPRESS_DB_HOST=db
- WORDPRESS_DB_USER=root
- WORDPRESS_DB_PASSWORD=password
depends_on:
- db
- phpmyadmin
restart: always
ports:
- 8080:80
db:
image: mariadb:latest
container_name: db
volumes:
- db_data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_USER=root
- MYSQL_PASSWORD=password
- MYSQL_DATABASE=wordpress
restart: always
phpmyadmin:
depends_on:
- db
image: phpmyadmin/phpmyadmin:latest
container_name: phpmyadmin
restart: always
ports:
- 8180:80
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: password
volumes:
db_data:
在使用图像wordpress:php8.2-fpm-alpine
时出现错误的原因是该图像没有与PHP-fpm....一起提供Web服务器因此没有实际的web服务器来将PHP转换为web结果。
$ docker exec -it wordpress bash
87d4819c5301:/var/www/html# netstat -tanp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.11:42163 0.0.0.0:* LISTEN -
tcp 0 0 :::9000 :::* LISTEN 1/php-fpm.conf)
87d4819c5301:/var/www/html#
87d4819c5301:/var/www/html# ps auxf
PID USER TIME COMMAND
1 root 0:00 php-fpm: master process (/usr/local/etc/php-fpm.conf)
9 www-data 0:00 php-fpm: pool www
10 www-data 0:00 php-fpm: pool www
11 root 0:00 bash
18 root 0:00 ps auxf
反过来,当您使用image:wordpress:latest
时,apache与php-fpm一起运行,然后向http://localhost:8080/
上的web浏览器公开一个可以依赖信息的web服务器,并显示网页。
root@6215e955f5f4:/var/www/html# ps aufx
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 24 0.1 0.0 4164 3244 pts/0 Ss 18:27 0:00 bash
root 33 0.0 0.0 6760 2752 pts/0 R+ 18:28 0:00 _ ps aufx
root 1 0.1 0.2 233340 35484 ? Ss 18:27 0:00 apache2 -DFOREGROUND
www-data 19 0.0 0.0 233412 9164 ? S 18:27 0:00 apache2 -DFOREGROUND
www-data 20 0.0 0.0 233412 9164 ? S 18:27 0:00 apache2 -DFOREGROUND
www-data 21 0.0 0.0 233412 9164 ? S 18:27 0:00 apache2 -DFOREGROUND
www-data 22 0.0 0.0 233412 9164 ? S 18:27 0:00 apache2 -DFOREGROUND
www-data 23 0.0 0.0 233412 9164 ? S 18:27 0:00 apache2 -DFOREGROUND
如果你想使用相同的系统:latest
只是不同的php版本,我建议使用wordpress:php8.2-apache
,而不是fpm-alpine
作为基础。