现在很多开发者都使用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/nginx tailf /etc/apt/sources.list
sources.list
# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted deb-src xenial main restricted #Added by software-properties deb xenial main restricted deb-src xenial main restricted multiverse universe #Added by software-properties deb xenial-updates main restricted deb-src xenial-updates main restricted multiverse universe #Added by software-properties deb xenial universe deb xenial-updates universe deb xenial multiverse deb xenial-updates multiverse deb xenial-backports main restricted universe multiverse deb-src xenial-backports main restricted universe multiverse #Added by software-properties deb xenial partner deb-src xenial partner deb xenial-security main restricted deb-src xenial-security main restricted multiverse universe #Added by software-properties deb xenial-security universe deb 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 "751753158@qq.com" ADD sources.list /etc/apt/sources.list ADD run.sh /root/run.sh RUN chmod +x /root/run.sh RUN apt-get update RUN apt-get install -y php-fpm php-mysql nginx RUN sed -i 's/;date.timezone =https://www.jb51.net/date.timezone = Asia\/Shanghai/' /etc/php/7.0/fpm/php.ini RUN 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-app cd ~/projects/php-app mkdir mysql mkdir www
www/index.php
<?php phpinfo();
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
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
您可能感兴趣的文章: