php7 不需要容器,GitHub - phper666/alphp: Micro PHP Docker Environment(alpine3, php7, swoole4). 微型的PHP Doc...

Alpine PHP Docker

68747470733a2f2f696d672e736869656c64732e696f2f646f636b65722f6275696c642f73776f66742f616c7068702e73766768747470733a2f2f696d672e736869656c64732e696f2f646f636b65722f70756c6c732f73776f66742f616c7068702e73766768747470733a2f2f696d672e736869656c64732e696f2f6d6963726f6261646765722f6c61796572732f73776f66742f616c7068702f636c692e73766768747470733a2f2f696d672e736869656c64732e696f2f6d6963726f6261646765722f696d6167652d73697a652f73776f66742f616c7068702f636c692e737667

alphp - 基于alpine的微型php docker环境,php 是 7.x, 包含最新版本swoole。

构建完成的镜像只有30-40M,可以直接用于生产环境作镜像发布。

共有几个镜像

swoft/alphp:base 基础镜像,后几个镜像基于它(含有php和一些通用的扩展)

swoft/alphp:cli php cli环境镜像,含有最新版本 swoole 和 mongodb 扩展

swoft/alphp:fpm 基于 swoft/alphp:cli,含有 nginx php-fpm 组件

swoft/alphp:dev 基于 swoft/alphp:cli,含有 nginx php-fpm 以及一些常用工具:vim wget git zip telnet ab 等,可用于开发。

共有几个分支

master: 基于 alpine:3.8 镜像, php7.2

alpine-edge: 基于 alpine:edge 镜像, php7.2

alpine-3.7: 基于 alpine:3.7 镜像, php7.1

Dockerfile links

base on alpine 3.8(php 7.2.x):

直接拉取

docker pull swoft/alphp:base

docker pull swoft/alphp:cli

docker pull swoft/alphp:fpm

docker pull swoft/alphp:dev

本地构建

构建基础镜像

docker build . -f alphp-base.Dockerfile -t swoft/alphp:base

构建功能镜像

构建 swoft/alphp:cli

docker build . -f alphp-cli.Dockerfile -t swoft/alphp:cli

构建 swoft/alphp:fpm

// 在swoft/alphp:cli 的基础上,含有 nginx php-fpm

docker build . -f alphp-fpm.Dockerfile -t swoft/alphp:fpm

构建 swoft/alphp:dev

// 在 swoft/alphp:cli 的基础上,含有 nginx php-fpm 额外包含一些常用工具:vim wget git zip telnet ab 等

docker build . -f alphp-dev.Dockerfile -t swoft/alphp:dev

一些有用的

更改软件源

sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/' /etc/apk/repositories

Dockerfile注意

如果想要主进程接收 docker stop 信号(SIGTERM),一定要用 ENTRYPOINT 或者 RUN 来启动运行主进程,不能使用 CMD。

CMD 会始终使用 sh -c command 来执行命令,这样PID = 1 的就不是真实命令所在进程了

ENTRYPOINT ["php", "/var/www/bin/cli", "taskServer:restart"]

镜像中的一些信息

php execute file: /usr/bin/php

php ini file: /etc/php7/php.ini

扩展配置目录:/etc/php7/conf.d

扩展编译目录:/usr/lib/php7/modules

php-fpm execute file: /usr/bin/php-fpm

php-fpm conf: /etc/php7/php-fpm.conf

重新生成 composer autoload

composer up nothing

工具推荐

工具列表

composer 包管理

phpunit 单元测试

phpmd 代码检查

类参考文档生成

deployer 一个用PHP编写的部署工具支持流行的框架

add composer

ADD tools/composer.phar /usr/local/bin/composer

RUN chmod 755 /usr/local/bin/composer

类参考文档生成

使用 sami(推荐)

$ ./vendor/bin/sami.phar -V

生成:

$ php ./vendor/bin/sami.phar update build/sami.conf.php

分开执行:

// The parse command parses a project and generates a database

$ php ./vendor/bin/sami.phar parse config/symfony.php

// The render command renders a project as a static set of HTML files

$ php ./vendor/bin/sami.phar render config/symfony.php

使用 apigen

$ ./vendor/bin/apigen.phar -V

$ ./vendor/bin/apigen.phar generate --help

$ ./vendor/bin/apigen.phar generate -s {source code dir} -d {doc generate dir}

使用phpDocumentor

$ ./vendor/bin/phpDocumentor.phar -V

phpDocumentor version v2.9.0

$ ./vendor/bin/phpDocumentor.phar run -d {source code dir} -t {doc generate dir}

手动管理 php-fpm

#关闭php-fpm

kill -INT `cat /usr/local/php/var/run/php-fpm.pid`

#重启php-fpm

kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`

端口检查 lsof

lsof :9051

ab 压力测试

安装

// ubuntu

apt-get install apache2-utils

// centos

yum install httpd-tools

安装 swoole

官网 swoole.com

安装相关扩展 redis, zip, mbstring, inotify, pdo_mysql

相关库

编译命令

# phpize

# ./configure --enable-swoole-debug --enable-async-redis --enable-openssl --enable-sockets --enable-coroutine --with-php-config=/usr/local/bin/php-config

# make clean

# make -j

# make install

更多选项说明

使用 ./configure -h 可以看到全部的选项

--enable-swoole-debug // 打开调试日志,开启此选项后swoole将打印各类细节的调试日志。生产环境不要启用。

--enable-sockets // 增加对sockets资源的支持,依赖sockets扩展

--enable-async-redis // 增加异步Redis客户端支持, 依赖hiredis库

--enable-openssl // 启用SSL支持,依赖openssl库

--enable-http2 // 增加对HTTP2的支持,依赖nghttp2库. 必须开启openssl

--enable-coroutine // 启用协程能力(swoole 4 已去除此选项)

相关库

License

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值