当前位置:Gxlcms > PHP基础 > Docker配置PHP开发环境教程

Docker配置PHP开发环境教程

时间:2021-07-01 10:21:17 帮助过:32人阅读

前言

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

配置自己的php镜像

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

run.sh

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

sources.list

  1. # deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted
  2. deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
  3. deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
  4. deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
  5. deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
  6. deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
  7. deb http://mirrors.aliyun.com/ubuntu/ xenial universe
  8. deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
  9. deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
  10. deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
  11. deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
  12. deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
  13. deb http://archive.canonical.com/ubuntu xenial partner
  14. deb-src http://archive.canonical.com/ubuntu xenial partner
  15. deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
  16. deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
  17. deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
  18. deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse

Dockerfile

  1. FROM ubuntu:16.04
  2. # ===========================
  3. # 配置虚拟主机
  4. # -v default:/etc/nginx/sites-enabled/default
  5. # 配置程序目录
  6. # -v web:/var/www/html
  7. # 配置映射端口
  8. # -p 8008:80
  9. # ===========================
  10. MAINTAINER chengtao "751753158@qq.com"
  11. ADD sources.list /etc/apt/sources.list
  12. ADD run.sh /root/run.sh
  13. RUN chmod +x /root/run.sh
  14. RUN apt-get update
  15. RUN apt-get install -y php-fpm php-mysql nginx
  16. RUN sed -i 's/;date.timezone =/date.timezone = Asia\/Shanghai/' /etc/php/7.0/fpm/php.ini
  17. RUN mkdir -p /run/php/
  18. EXPOSE 80
  19. CMD ["/bin/bash","/root/run.sh"]

执行命令

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

配置php mysql开发环境

  1. mkdir -p ~/projects/php-app
  2. cd ~/projects/php-app
  3. mkdir mysql
  4. mkdir www

www/index.php

  1. <?php
  2. phpinfo();

nginx.conf

  1. server {
  2. listen 80 default_server;
  3. root /var/www/html;
  4. index index.html index.htm index.php;
  5. location / {
  6. try_files $uri $uri/ =404;
  7. }
  8. location ~ \.php$ {
  9. include snippets/fastcgi-php.conf;
  10. fastcgi_pass unix:/run/php/php7.0-fpm.sock;
  11. }
  12. }

docker-compose.yml

  1. version: '2'
  2. services:
  3. mysql:
  4. image: mysql:5.6
  5. volumes:
  6. - ./mysql/:/var/lib/mysql/
  7. ports:
  8. - "3307:3306"
  9. environment:
  10. - MYSQL_ROOT_PASSWORD=123456
  11. php-app:
  12. image: d1studio/php-base:0.1
  13. ports:
  14. - "8009:80"
  15. volumes:
  16. - ./nginx.conf:/etc/nginx/sites-enabled/default
  17. - ./www/:/var/www/html/
  18. links:
  19. - mysql

开启php的测试项目

  1. #开启
  2. docker-compose up
  3. #关闭
  4. docker-compose down

总结

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

人气教程排行