这里有新鲜出炉的 PHP 设计模式,程序狗速度看过来!
PHP(外文名: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,入门门槛较低,易于学习,使用广泛,主要适用于 web 开发领域。PHP 的文件后缀名为 php。
现在很多开发者都使用 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 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
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
来源: http://www.phperz.com/article/17/0807/340810.html