Docker配置PHP開發環境

1.php開發環境配置

      筆者用的是mac開發,可是mac自帶的php功能安裝十分不方便,而且和線上的linux開發環境不一致。在沒有用docker以前一直用vagrant配置的centos的php開發環境,可是自從有了docker以後,就再也不用vagrant了。php

2.配置本身的php鏡像

首先在本身的任意一個目錄下建立以下三個文件html

run.shmysql

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

sources.listlinux

# 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

Dockerfilenginx

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"]

執行命令web

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

3.配置php mysql開發環境

mkdir -p ~/projects/php-app
cd ~/projects/php-app
mkdir mysql
mkdir www

www/index.phpredis

<?php
phpinfo();

nginx.confsql

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.ymldocker

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

4.開啓php的測試項目

#開啓
docker-compose up
#關閉
docker-compose down

5. 常見文檔

5.1須要安裝redis擴展

docker exec -it [容器ID或者名稱] /bin/bash
apt-get install php-redis
相關文章
相關標籤/搜索