一聚教程网:一个值得你收藏的教程网站

热门教程

Docker配置PHP开发环境教程

时间:2026-05-28 09:00:01 编辑:袖梨 来源:一聚教程网

现在很多开发者都使用Vagrant来管理他们的虚拟机开发环境,Vagrant确实很酷, 不过也有不少缺点(最主要的是它占用太多的资源)。在容器技术、Docker和更多类Docker技术出现后,解决这个问题就变得简单了。这篇文章主要介绍了Docker配置PHP开发环境,下面来一起看看吧。

前言

笔者用的是mac开发,但是mac自带的php功能安装十分不方便,并且和线上的linux开发环境不一致。在没有用docker之前一直用vagrant配置的centos的php开发环境,但是自从有了docker之后,就不再用vagrant了。

配置自己的php镜像

首先在自己的任意一个目录下创建如下三个文件

run.sh

#!/bin/bash/usr/sbin/php-fpm7.0/usr/sbin/nginxtailf /etc/apt/sources.list

sources.list

# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricteddeb-src http://archive.*ub**untu.com/ubuntu xenial main restricted #Added by software-propertiesdeb http://mirrors.al**i*yun.com/ubuntu/ xenial main restricteddeb-src http://mirrors.al**i*yun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-propertiesdeb http://mirrors.al**i*yun.com/ubuntu/ xenial-updates main restricteddeb-src http://mirrors.al**i*yun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-propertiesdeb http://mirrors.al**i*yun.com/ubuntu/ xenial universedeb http://mirrors.al**i*yun.com/ubuntu/ xenial-updates universedeb http://mirrors.al**i*yun.com/ubuntu/ xenial multiversedeb http://mirrors.al**i*yun.com/ubuntu/ xenial-updates multiversedeb http://mirrors.al**i*yun.com/ubuntu/ xenial-backports main restricted universe multiversedeb-src http://mirrors.al**i*yun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-propertiesdeb http://archive.can*oni*ca*l.com/ubuntu xenial partnerdeb-src http://archive.can*oni*ca*l.com/ubuntu xenial partnerdeb http://mirrors.al**i*yun.com/ubuntu/ xenial-security main restricteddeb-src http://mirrors.al**i*yun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-propertiesdeb http://mirrors.al**i*yun.com/ubuntu/ xenial-security universedeb http://mirrors.al**i*yun.com/ubuntu/ xenial-security multiverse

Dockerfile

FROM ubuntu:16.04# ===========================# 配置虚拟主机# -v default:/etc/nginx/sites-enabled/default# 配置程序目录# -v web:/var/www/html# 配置映射端口# -p 8008:80# ===========================MAINTAINER chengtao "[email protected]" ADD sources.list /etc/apt/sources.listADD run.sh /root/run.shRUN chmod +x /root/run.shRUN apt-get update RUN apt-get install -y php-fpm php-mysql nginx RUN sed -i 's/;date.timezone =/date.timezone = Asia/Shanghai/' /etc/php/7.0/fpm/php.iniRUN mkdir -p /run/php/EXPOSE 80 CMD ["/bin/bash","/root/run.sh"] 

执行命令

docker build -t d1studio:php-base:0.1 .

配置php mysql开发环境

mkdir -p ~/projects/php-appcd ~/projects/php-appmkdir mysqlmkdir www

www/index.php

<?phpphpinfo(); 

nginx.conf

server { listen 80 default_server; root /var/www/html; index index.html index.htm index.php; location / {try_files $uri $uri/ =404; } location ~ .php$ {include snippets/fastcgi-php.conf;fastcgi_pass unix:/run/php/php7.0-fpm.sock; }}

docker-compose.yml

version: '2'services: mysql: image: mysql:5.6 volumes:- ./mysql/:/var/lib/mysql/ ports:- "3307:3306" environment:- MYSQL_ROOT_PASSWORD=123456 php-app: image: d1studio/php-base:0.1 ports:- "8009:80" volumes:- ./nginx.conf:/etc/nginx/sites-enabled/default- ./www/:/var/www/html/ links:- mysql

开启php的测试项目

#开启docker-compose up#关闭docker-compose down

总结

热门栏目