docker-compose快速搭建PHP开发环境
一、前期准备
需要准备php
,mysql
,nginx
镜像。下面是我安装的镜像。
[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
2、本站文章部分来源注册用户发布或互联网收集而来,若有侵权,请邮件联系作者。
邮箱地址:wtao219@qq.com
THE END
二维码