基于Docker构建的PHP开发环境

huangyanxiong 发布于 2016/12/22 20:48
阅读 2K+
收藏 4

Docker-PHP

Features

  • 支持自定义配置文件
  • 数据存储在宿主机
  • xdebug 支持
  • 几乎包含了常用的扩展
  • React/PHP 支持(Event-driven, non-blocking I/O with PHP.像Node.js)
  • swoole 支持

Software Stack

  • MongoDB
  • Redis
  • MySQL
  • PHP 7.1 + PHP-FPM
  • Nginx with LuaJit

Docs

English 简体中文

How to use it?

If live behind the GFW please read this post Use Ali cloud

Requirements

Windows and Mac users only need to install Docker

Getting started

git clone https://github.com/huangyanxiong01/docker-php.git cd docker-php
composer install 
docker-compose up -d

Now,you can open http://127.0.0.1:3000/ in browser

Configure

You can find the custom $software configuration file in./docker/$software/etc/

Data

You can find the $software data file in./docker/$software/data/

Log

You can find the $software log file in./docker/$software/logs/


MIT License

Copyright (c) 2016 Freax

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Github

Github 基于Docker构建的开发环境,欢迎提交Issue,PR 



加载中
0
Feng_Yu
Feng_Yu
改启动参数的方法已经过时,现在的做法是建一个/etc/docker/daemon.json配置文件
0
huangyanxiong
huangyanxiong

引用来自“Feng_Yu”的评论

改启动参数的方法已经过时,现在的做法是建一个/etc/docker/daemon.json配置文件

刚才去看了一下,并没有这个文件,我的docker版本是1.12.3

Feng_Yu
Feng_Yu
以及这个: https://lug.ustc.edu.cn/wiki/mirrors/help/docker
Feng_Yu
Feng_Yu
https://docs.docker.com/engine/reference/commandline/dockerd/#/daemon-configuration-file
Feng_Yu
Feng_Yu
本来就没有,要自己手工建立的,你看docker的官方文档就知道了,已经不推荐改启动参数了
0
huangyanxiong
huangyanxiong

引用来自“Feng_Yu”的评论

改启动参数的方法已经过时,现在的做法是建一个/etc/docker/daemon.json配置文件

引用来自“huangyanxiong”的评论

刚才去看了一下,并没有这个文件,我的docker版本是1.12.3

https://docs.docker.com/engine/deprecated/
0
xpentium
xpentium

  • React/PHP 支持(Event-driven, non-blocking I/O with PHP.像Node.js)

这句话是什么意思, PHP怎么做到像node.js non-blocking I/O 的?

eechen
eechen
峰哥用C开发的PHP Swoole同样能实现异步非阻塞编程,没什么大惊小怪的,非阻塞不是Node的专属.
0
huangyanxiong
huangyanxiong

引用来自“xpentium”的评论

  • React/PHP 支持(Event-driven, non-blocking I/O with PHP.像Node.js)

这句话是什么意思, PHP怎么做到像node.js non-blocking I/O 的?

React/PHP是基于事件,非阻塞式I/O的编程语言,底层是由libev/libuv提供事件轮询,由Zend engine解释PHP,Node.js也用到libuv/libev,所以它们核心思想是一样的
0
huangyanxiong
huangyanxiong

引用来自“xpentium”的评论

  • React/PHP 支持(Event-driven, non-blocking I/O with PHP.像Node.js)

这句话是什么意思, PHP怎么做到像node.js non-blocking I/O 的?

引用来自“huangyanxiong”的评论

React/PHP是基于事件,非阻塞式I/O的编程语言,底层是由libev/libuv提供事件轮询,由Zend engine解释PHP,Node.js也用到libuv/libev,所以它们核心思想是一样的
会Node.js写React/PHP就会觉得很简单,反之亦然,个人非常喜欢这种编程思想
huangyanxiong
huangyanxiong
回复 @xpentium : swoole和React/PHP都可以
eechen
eechen
回复 @xpentium : http://www.swoole.com/ 这里其实就有常见的异步请求其他服务的例子,包括异步请求MySQL/Redis/HTTP Server.
xpentium
xpentium
能够通过他向其它服务器发异步请求吗?
0
eechen
eechen
想XAMPP那样的解压即用的打包更便捷.
我下面的方法也不错,什么Apache/Nginx/MySQL/Redis/HHVM通通都可以像PHP这样打包,并且共享依赖库.
解压即用,跨Linux发行版PHP7打包方法
我打包的Android版PHP7(PHPDroid)则用的是静态链接依赖库的方式,APK包大小不到6MB,不知道你的Docker镜像有多大呢?
0
huangyanxiong
huangyanxiong

引用来自“eechen”的评论

想XAMPP那样的解压即用的打包更便捷.
我下面的方法也不错,什么Apache/Nginx/MySQL/Redis/HHVM通通都可以像PHP这样打包,并且共享依赖库.
解压即用,跨Linux发行版PHP7打包方法
我打包的Android版PHP7(PHPDroid)则用的是静态链接依赖库的方式,APK包大小不到6MB,不知道你的Docker镜像有多大呢?
你可以拿它和docker功能对比
eechen
eechen
Android上PHP不需要那么多其他服务,用PHP内置的HTTP服务器和SQLite数据库即可.如果你说的是PC,我说的是打包方法,打包PHP7是个举例,如果你还要举例,可以看看你没有的HHVM,我打包也是用一样的方法 https://my.oschina.net/eechen/blog/371643
返回顶部
顶部