欢迎光临小鱼网个人网站!

登录/注册
docker搭建php7.1+nginx+swoole+mysql+redis4.0环境

1.创建dockerfile文件

vim dockerfile

2.在dockerfile文件写入

From php:7.1-fpm
RUN apt-get update && apt-get install -y \
 libfreetype6-dev \
 libjpeg62-turbo-dev \
 libpng-dev \
&& docker-php-ext-install -j$(nproc) iconv \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install -j$(nproc) gd \
&& docker-php-ext-configure pdo_mysql \
&& docker-php-ext-install pdo_mysql \
&& pecl install redis-4.3.0 \
&& pecl install swoole \
&& docker-php-ext-enable redis swoole

3.创建自定义的php镜像,主要不要漏了最后的 '.',是指定当前目录构建镜像

docker build -t myphp4 .

3.创建docker-compose.yml文件

mkdir pnsmr
cd pnsmr
vim docker-compose.yml
version: '3.0'
services:
nginx:
 image: "nginx:latest"
 ports:
 - "10000:80"
 volumes:
 - /var/www/html:/usr/share/nginx/html
php-fpm:
 image: "myphp4"
 volumes:
 - /var/www/html:/usr/share/nginx/html
mysql:
 image: "mysql:latest"
redis:
 image: "redis:4.0"
docker-compose up -d

4.复制nginx容器的配置文件出来,并修改替换,使nginx能解析php


docker cp pnsmr_nginx_1:/etc/nginx/conf.d/default.conf nginx.conf
vim nginx.conf
server {
 listen 80;
 server_name localhost;
 #charset koi8-r;
 #access_log /var/log/nginx/host.access.log main;
 location / {
 root /usr/share/nginx/html;
 index index.html index.htm;
 }
 #error_page 404 /404.html;
 # redirect server error pages to the static page /50x.html
 #
 error_page 500 502 503 504 /50x.html;
 location = /50x.html {
 root /usr/share/nginx/html;
 }
 # proxy the PHP scripts to Apache listening on 127.0.0.1:80
 #
 #location ~ \.php$ {
 # proxy_pass http://127.0.0.1;
 #}
 # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
 #
 location ~ \.php$ {
 root html;
 fastcgi_pass 172.24.0.3:9000;#此处需要填写你的php容器的docker内部通讯ip
 fastcgi_index index.php;
 fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html/$fastcgi_script_name;
 include fastcgi_params;
 }
 # deny access to .htaccess files, if Apache's document root
 # concurs with nginx's one
 #
 #location ~ /\.ht {
 # deny all;
 #}
}
docker cp nginx.conf pnsmr_nginx_1:/etc/nginx/conf.d/default.conf #将修改好的配置文件拷贝到容器里
docker container stop pnsmr_nginx_1 
docker container start pnsmr_nginx_1 #重启nginx容器使配置文件生效
vim /var/www/html/index.php #在服务器本地目录新建 index.php 文件,输入<?php phpinfo(); 并保存
vim /var/www/html/index.html #在服务器本地目录新建 index.html 文件,输出helloworld

5.测试mysql,redis是否生效


vim /var/www/html/redis.php #用于测试redis是否配置成功
<?php
$redis = new Redis();
$redis->connect("172.24.0.4",6379);
$redis->set('test','this is a test for redis');
echo $redis->get('test');

进入mysql容器

docker exec -it pnsmr_mysql_1 bash

进入mysql并更改root用户密码

image.png

创建测试文件

vim /var/www/html/mysql.php
<?php
$pdo = new PDO('mysql:host=172.24.0.2;dbname=mysql;port=3306','root','root123');
var_dump($pdo);

Copyright © www.xyubing.com All Rights Reserved. 备案号:蜀ICP备19023461号-1

免责声明:本站部分资源搜集整理于互联网或者网友提供,仅供学习与交流使用,如果不小心侵犯到你的权益,请及时联系我们删除该资源。