Docker配置PHP开发环境教程

5年以前  |  阅读数:387 次  |  编程语言: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 http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
    deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
    deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
    deb http://mirrors.aliyun.com/ubuntu/ xenial universe
    deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
    deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
    deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
    deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
    deb http://archive.canonical.com/ubuntu xenial partner
    deb-src http://archive.canonical.com/ubuntu xenial partner
    deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
    deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
    deb http://mirrors.aliyun.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 "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 =/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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例