参考文献:http://www.ptbird.cn/docker-php-msf.html ,感谢原作者的创作
PHP-MSF 手册:https://github.com/pinguo/php-msf-docs
以下是操作过程:
1、安装docker环境:CentOS下安装Docker CE
2、拉取镜像:PHP-MSF Docker 镜像列表
- 公网地址:
docker pull registry.cn-hangzhou.aliyuncs.com/pinguo-ops/php-msf-docker:latest
- 阿里云经典内网:
docker pull registry-internal.cn-hangzhou.aliyuncs.com/pinguo-ops/php-msf-docker:latest
- 阿里云VPC网络:
docker pull registry-vpc.cn-hangzhou.aliyuncs.com/pinguo-ops/php-msf-docker:latest
- DockerHub(国外):
docker pull pinguoops/php-msf-docker
- Full镜像(包含MongoDB和RabbitMQ):
docker pull registry.cn-hangzhou.aliyuncs.com/pinguo-ops/php-msf-docker:full
应该拉取Full镜像(未测试),我拉取的是公网镜像,这里面的php-fpm服务启动失败,查看日志,php.d/amqp.ini中引用了extension=amqp.so,但相应的目录中缺少amqp.so扩展,安装rabbitMQ扩展
3、部署容器
在 Docker 中安装部署,直接用他的 Docker 镜像:
-p 2201:22
:为了方便 ssh 登录容器开放的端口映射,不用也无所谓的,因为可以使用docker exec
-p 81:8000
:主要是将容器的 8000 端口(phpmsf 默认监听端口)映射出来,这个端口可以改,根据改的端口-v
:主要是为了开发时间方便文件映射,/home/worker/data/www/
是默认的 web 文件目录,根据改的目录
docker run -dit --name phpmsfdemo -p 2201:22 -p 81:8000 -v /data/webroot/:/home/worker/data/www/ registry.cn-hangzhou.aliyuncs.com/pinguo-ops/php-msf-docker
php-msf 启动了swoole server,经测试:php-msf server本身不需要nginx和php-fpm的运行就能提供web服务,未深入研究
登入docker 镜像服务器:ssh -p 2201 worker@127.0.0.1
用户账号:worker-worker,root-root
4、部署代码
选择安装包下载目录
$ cd /home/worker/data
拉取安装包
$ git clone https://github.com/pinguo/php-msf-docker.git
执行安装,下载框架和应用目录
$ php installer.php start
选择安装目录和应用名称,配置server端口
如服务未启动,进入/home/worker/data/www,执行:
$ php server.php start
5、运行
容器中:localhost:8000/welcome,宿主机:localhost:81/welcome
手动修改服务端口:/home/worker/data/www/config/http.php