超详细Docker 配置 nginxphp-fpmmysql phpmyadmin

Posted 进击的递归

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了超详细Docker 配置 nginxphp-fpmmysql phpmyadmin相关的知识,希望对你有一定的参考价值。

老是搭环境也太烦了,最近有接触到docker,在此记录一下利用docker搭建lnmp环境的步骤
docker的安装很简单,网上教程很多,不赘述

运行环境:centos7

docker版本

docker官网:https://hub.docker.com/

在家目录创建两个目录,一个是 nginx/conf.d(用于nginx的配置文件),一个是nginx/www(用于网站相关文件)

php-fpm安装
1. 拉取php镜像
docker pull php:7.4-fpm
2. 创建php容器
docker run --name php-fpm -v ~/nginx/www:/www -d php:7.4-fpm

注 -v ~/nginx/www:/www 表示建立 ~/nginx/www目录与 容器中/www的存储卷映射
-d表示后台运行

nginx安装
1. 拉取nginx镜像

docker pull nginx

2. 创建nginx容器
docker run --name nginx -p 8083:80 -d \\
    -v ~/nginx/www:/usr/share/nginx/html:ro \\
    -v ~/nginx/conf.d:/etc/nginx/conf.d:ro \\
    --link php-fpm:php \\
    nginx

注: 建立 ~/nginx/www 与容器 /usr/share/nginx/html的映射 ro表示readonly --link php-fpm 表示建立nginx容器与php-fpm的联系
-p 8083:80 表示建立nginx容器80端口与宿主容器8083容器的映射

进入nginx容器可看到nginx容器与php容器有联系通道

3. 修改nginx的配置文件

在~/nginx/conf.d目录下添加 myweb.conf, 内容如下:

server {
    listen       80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm index.php;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ \\.php$ {
        fastcgi_pass   php-fpm:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /www/$fastcgi_script_name;
        include        fastcgi_params;
    }
}
4.重启nginx容器

docker restart nginx

5.测试nginx与php环境是否搭建成功

在 ~/nginx/www/下新建index.php,内容如下:

<?php
phpinfo();
?>

浏览器访问:www.nginx.com:8083/index.php ,本人已经在host文件中配置www.nginx.com指向虚拟机ip地址

祝贺你,到此nginx+php就算搞定了!!!下面进行mysql的安装

mysql安装
1.拉取mysql镜像
docker pull mysql:latest
2.创建mysql容器
docker run -p 3306:3306 --name mysql -v ~/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d --link php-fpm mysql

3.安装phpmyadmin
docker run --name myadmin -d --link mysql:db -p 8082:80 phpmyadmin/phpmyadmin

成功:

测试php是否能连接数据库
首先进入php容器中,打开pdo_mysql扩展

docker-php-ext-install pdo_mysql

然后建立脚本,连接数据库:

<?php
$pdo = new PDO("mysql:host=你服务器的地址;port=3306;database=test", 'root', '123456');
$sql = 'select * from people';
$res = $pdo->query($sql);
while($row = $res->fetch(PDO::FETCH_ASSOC) !== false) {
	var_dump($row);
}
?>

请求脚本文件:

》》》 以上!!!!

以上是关于超详细Docker 配置 nginxphp-fpmmysql phpmyadmin的主要内容,如果未能解决你的问题,请参考以下文章

超详细Docker 配置 nginxphp-fpmmysql phpmyadmin

Docker 安装MySQL 5.7(超详细文图说明及MySQL配置)

Docker 安装MySQL 5.7(超详细文图说明及MySQL配置)

Docker 安装MySQL 5.7(超详细文图说明及MySQL配置)

超详细Docker部署SpringBoot+Vue项目(三更博客项目部署)

手把手超详细Docker部署MongoDB集群