docker-compose快速搭建PHP开发环境

一、前期准备

需要准备phpmysqlnginx镜像。下面是我安装的镜像。


[root@localhost ~]# docker images
REPOSITORY                        TAG                 IMAGE ID            CREATED             SIZE
docker.io/phpdockerio/php72-fpm   latest              01cc79d26d94        9 days ago          164 MB
docker.io/mysql                   latest              e3fcc9e1cc04        13 days ago         544 MB
docker.io/nginx                   latest              8cf1bfb43ff5        13 days ago         132 MB

目录结构如下:


[root@localhost ~]# tree /www
/www
├── conf
│   └── php.conf
├── logs
└── web
    └── index.php

web 是网站的目录
conf Nginx的配置目录

其中,/www/conf/php.conf下的文件内容如下

server {
	listen	80;
	server_name	localhost;

	location / {
		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	/web/$fastcgi_script_name;
		include		fastcgi_params;
	}
}

二、编写docker-compose.yml文件


version: "3.0"
services:
  nginx:
    image: nginx
    privileged: true
    ports: 
      - "80:80"
    volumes: 
      - /www/web:/usr/share/nginx/html
      - /www/conf:/etc/nginx/conf.d
      - /www/logs:/var/log/nginx
    networks:
      - web-net
  php:
    image: phpdockerio/php72-fpm
    privileged: true
    volumes:
      - /www/web:/web
    networks:
      - web-net
  mysql:
    image: mysql
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=root
    networks:
      - web-net
networks: 
  web-net:

privileged 用来设置容器,需要操作挂载的权限

构建成功
/www/web下,新建index.php,能正常访问

<!DOCTYPE html>
<html>
<body>
<h1>我的第一张 PHP 页面</h1>
<?php
echo "Hello World!";
?>
</body>
</html>
1、所有文章未经授权禁止转载、摘编、复制或建立镜像,如有违反,追究法律责任。
2、本站文章部分来源注册用户发布或互联网收集而来,若有侵权,请邮件联系作者。
邮箱地址:wtao219@qq.com
THE END
分享
二维码
< <上一篇
下一篇>>