1、安装docker、docker-compose
yum install docker2、编辑docker-compose.yum文件
vi docker-compose.yummysql:3、启动容器
4、查看容器是否正常运行
一切正常的话就可以访问了
关于docker搭建wordpress中出现的问题请参考:centos下基于docker安装wordpress。
PHP 是世界上最好的语言。
经典的 LNMP(linux + nginx + php + mysql)环境有很多现成的部署脚本,但是在 Docker 盛行的今天,依然有很多同学在如何部署上确脱切有一些列问题,所以这篇简单介绍一下如何使用 Docker 以及 docker-compose 在服务器上部署 php 应用。
首先我们回歌况记穿营雷持素脚顾一下过去的 nginx 里 php 配置:
location ~ \.php$ { try_files $uri =404; include fastcgi_param联s; fastcgi_pass 127.0.0.1:9000; fastcgi_index ind核民在齐都ex.php; fastcgi_split_path_info ^状错至丰(.+\.php)(/.+)$; fastcgi_param PATH_INFO $fastcgi_path_info; f紧乐配快沙愿历astcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; }所有 php 文件使用 php 引擎来解析,php 运行在本地的 9000 端口(可以通过 ip/unix domain sockets 访问),既然可以是本地,当然也可以通过 远程服务 来解析了。
故而我们的 nginx 服务月远还我言甲过支末材病如下配置:
ser好穿ver { listen 80; charset utf-8; # access_log /var/log/nginx/nginx.acce朝喜虽写激素讨程ss.log main; # error_log /var/log/nginx/error.log; root /var/www/html; index index去太视宪育州才业蛋换.php index.html; add_header X-Cache $upstream_cache_status; 复织补盟鸡优宗location ~ \.php$ { try_files $uri =404; include fastcgi_params; fastcgi_pass php-fpm:9000; fastcgi_index index.php可冷医汽; fastcgi_split_path_info ^(.自宗况斗三坐上命什故题+\.php)(/.+)$; fastcgi_param PATH_INFO $fastcgi_path_in数环果也管罗耐第货fo; fastcgi_param SCRIPT_F充调认李难额切所达红ILENAME $document_root$fastcgi_script_name; } }于此同时,有个比较棘手的问题是,php 代码在nginx 和 php 引擎都需要存在,不然解析不了,难已随低脸但这都不是事啊,docker 的 volume 天然支持!
直接看下面的 docker-compose.yml 配置:
version: '2' servi和ces: nginx: image: nginx:stable-alpine port矿盟诉新器计s: - 80:80 volumes: - ./conf/nginx/conf.d:/etc/nginx/conf.d volumes_from: - php-fpm restart: always php-fpm: image: php:7.1-fpm-alpine volumes: - ./code:/var/www/html restart: always注意点:
php-fpm 挂载了本地目录 code 到 /var/www/html
nginx conf 中使用了 service_name 来访问 php-fpm
nginx 通过 volumes_from 指令共享了 php-fpm 的 /var/www/html
在 code 目录下 index.php 里写一下:
然后运行:
# bash docker-compose up打开浏览器可以看到熟悉的 phpinfo 了:
那么问题来了,有小伙伴要问了,依赖怎么办?好的,这就是我要继续说的。
在你的项目里放一个 Dockerfile:
FROM php:7.1-fpm-alpine RUN docker-php-install pdo pdo-mysql COPY src /var/www/html构建的话可以选择阿里云镜像服务构建功能或者是 Docker 提供的自动构建,然后更新一下之前的 docker-compose.yml 即可:
version: '2' services: nginx: image: nginx:stable-alpine ports: - 8000:80 volumes: - ./conf/nginx/conf.d:/etc/nginx/conf.d volumes_from: - php-fpm restart: always php-fpm: image: {YOUR_PHP_IMAGE_NAME}:{TAG} restart: always本示例代码:
ImplementsIO/docker-labs