docker 安装php

  1. # 下载php-fpm镜像 ( 版本信息可查看 https://hub.docker.com/ )
  2. docker pull php:fpm-alpine3.15
  3. # 进入容器
  4. docker exec -it php-fpm_001 /bin/sh
  5. # 容器内php配置文件位置
  6. php-fpm.conf: /usr/local/etc/php-fpm.conf
  7. www.conf: /usr/local/etc/php-fpm.d/www.conf
  8. php.ini: /usr/local/etc/php/conf.d/docker-php-ext-sodium.ini
  9. # 默认容器中没有php.ini 复制一份出来
  10. cd /usr/local/etc/php
  11. cp php.ini-development php.ini
  12. # 宿主机本地创建php目录 /docker/php
  13. # 将容器内php配置文件复制到本地
  14. docker cp php-fpm_001:/usr/local/etc/php-fpm.conf /docker/php/php-fpm.conf
  15. docker cp php-fpm_001:/usr/local/etc/php-fpm.d/www.conf /docker/php/www.conf
  16. docker cp php-fpm_001:/usr/local/etc/php/php.ini /docker/php/php.ini
  17. # 启动php-fpm ( 本地的/docker/nginx/html映射到容器中/www )(和nginx配置中一致)
  18. # 映射php配置文件
  19. docker run --name php-fpm_001 \
  20. -v /docker/nginx/html:/www \
  21. -v /docker/php/php-fpm.conf:/usr/local/etc/php-fpm.conf \
  22. -v /docker/php/www.conf:/usr/local/etc/php-fpm.d/www.conf \
  23. -v /docker/php/php.ini:/usr/local/etc/php/conf.d/php.ini \
  24. -d php:fpm-alpine3.15
  25. # 查看容器IP
  26. docker inspect 容器ID | grep '"IPAddress"'
  27. # nginx配置文件
  28. server {
  29. listen 80;
  30. server_name 127.0.0.1;
  31. location / {
  32. root /usr/share/nginx/html;
  33. index index.html index.htm index.php;
  34. }
  35. error_page 500 502 503 504 /50x.html;
  36. location = /50x.html {
  37. root /usr/share/nginx/html;
  38. }
  39. location ~ \.php$ {
  40. # 这里的IP是php容器的IP
  41. fastcgi_pass 172.17.0.3:9000;
  42. fastcgi_index index.php;
  43. # 这里的目录是启动php容器时映射的目录
  44. fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name;
  45. include fastcgi_params;
  46. }
  47. }
  48. # 创建运行nginx容器
  49. docker run --name nginx_php_001 -d \
  50. --restart=always \
  51. --privileged=true \
  52. -v /docker/nginx/html:/usr/share/nginx/html \
  53. -v /docker/nginx/nginx.conf:/etc/nginx/nginx.conf \
  54. -v /docker/nginx/vhost/default.conf:/etc/nginx/conf.d/default.conf \
  55. -v /docker/nginx/log:/var/log/nginx \
  56. -p 5678:80 \
  57. --link php-fpm_001:php \
  58. nginx:stable-perl
  59. # --link php-fpm_001:php
  60. php-fpm_001容器网路并入到当前容器