大家好,我拿出我的macbook,带着大家实操用docker部署mysql+php+nginx环境。
之前的小白实操搭建Nginx1.2.0+PHP7.0+MySQL5.7+Thinkphp5项目,看这篇就够了,欢迎阅读。
之前的是服务器上配置环境,现在在mac本地搭建全栈开发环境。
目录
1.docker
1.1docker下载:
1.2配置docker下载镜像
1.3 在本地建好对应映射关系的文件夹
2.mysql
2.1 mysql基础知识学习:MySQL 教程 | 菜鸟教程
2.2 docker下载mysql
2.3 docker配置mysql
2.4 docker查看
2.5 进入mysql容器使用
3.php
3.1 php基础知识学习:PHP 教程 | 菜鸟教程
3.2 docker下载php-fpm:
3.3 docker配置php
3.4 docker查看
3.5 php中安装连接mysql的扩展
4.nginx
4.1 nginx基础知识学习:Nginx 安装配置 | 菜鸟教程
4.2 docker下载nginx
4.3 docker配置nginx
4.4 docker查看
4.5 docker 里修改 nginx随启动
4.6配置nginx
5.运行
以上,就是今天的学习,关注我,我们一起进步!
欢迎点赞、评论,谢谢!~
本文环境:
时间:2023年
mac:MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) 版本11.6
处理器:2.3 GHz 四核Intel Core i7
docker:v20.10.22
mysql:5.6
php:7.2.34
nginx:1.23.3
1.docker
1.1docker下载:
Get Started | Docker进入官网,如图位置,点击mac版本的docker下载.
安装后,点击图标:
1.2配置docker下载镜像
docker打开后进入Settings,进入Docker Engine中添加镜像地址,这样下载其他模块速度快一点。
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn/",
"https://hub-mirror.c.163.com/",
"https://reg-mirror.qiniu.com"
]
1.3 在本地建好对应映射关系的文件夹
在www文件夹里新建一个index.php文件
<?php
echo phpinfo();
?>
2.mysql
2.1 mysql基础知识学习:MySQL 教程 | 菜鸟教程
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
2.2 docker下载mysql
docker pull mysql:5.6
2.3 docker配置mysql
docker run -it --name mysql -p 3308:3306 -v ~/mynmp/mysql/conf:/etc/mysql/conf.d -v ~/mynmp/mysql/logs:/logs -v ~/mynmp/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
–name mysql 指定容器名称为 mysql
-e MYSQL_ROOT_PASSWORD=123456 初始化 root 用户的密码为 123456
-p 3308:3306 将容器的 3306 端口映射到主机的 3308 端口
-v ~/mynmp/mysql/data:/var/lib/mysql 将主机 ~/mynmp/mysql/data 目录挂载到容器的 /var/lib/mysql
-v ~/mynmp/mysql/conf:/etc/mysql/conf.d 将主机 ~/mynmp/mysql/conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf
-v ~/mynmp/mysql/mysql_sock:/var/run/mysqld 将主机 ~/mynmp/mysql/mysql_sock 目录挂载到容器的 /var/run/mysqld (为防止 php 容器无权限读取 mysql 容器的 sock 文件)
-d 后台运行
2.4 docker查看
docker ps
2.5 进入mysql容器使用
进入mysql容器
docker exec -it mysql /bin/bash
启动mysql
mysql -uroot -p123456
查看mysql版本
status
授权远程链接
GRANT ALL ON *.* TO`'root'@'%'`;
刷新权限
flush privileges;
更改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
修改root密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
刷新权限
flush privileges;
3.php
3.1 php基础知识学习:PHP 教程 | 菜鸟教程
PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器")是一种通用开源脚本语言。
3.2 docker下载php-fpm:
docker pull php:7.2-fpm
3.3 docker配置php
docker run -it --name myphp -p 9000:9000 -v ~/mynmp/php/conf:/usr/local/etc/php/conf.d -v ~/mynmp/www:/www -v ~/mynmp/php/logs:/phplogs --privileged=true -d php:7.2-fpm
--name myphp 指定容器的名称为myphp
-p 9000:9000 将容器的 9000 端口映射到主机的 9000 端口
-v ~/mynmp/www:/www 将主机的 ~/mynmp/www 目录挂载到容器的 /www 目录
-v ~/mynmp/mysql/mysql_sock:/var/run/mysqld 将主机 ~/mynmp/mysql/mysql_sock 目录挂载到容器的 /var/run/mysqld (为防止 php 容器无权限读取 mysql 容器的 sock 文件)
--link mysql:mysql 将 mysql 容器的网络并入 myphp 容器,实现容器间的通信
-d 保持后台运行
3.4 docker查看
docker ps
3.5 php中安装连接mysql的扩展
docker exec -it myphp /bin/bash
docker-php-ext-install mysql
docker-php-ext-install mysqli
docker-php-ext-install pdo
4.nginx
4.1 nginx基础知识学习:Nginx 安装配置 | 菜鸟教程
Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。在高连接并发的情况下,Nginx是Apache服务器不错的替代品.
4.2 docker下载nginx
docker pull nginx
4.3 docker配置nginx
docker run -it --name mynginx -p 8080:80 -v ~/mynmp/nginx/conf:/etc/nginx/conf.d -v ~/mynmp/www:/www -v ~/mynmp/nginx/logs:/var/log/nginx --link myphp:php -d nginx
--name nginx 指定当前容器名称为 nginx
-p 80:80 将容器的 80 端口映射到主机的 80 端口
-v ~/mynmp/www:/usr/share/nginx/html 将主机的 ~/mynmp/www 目录挂载到容器的 /www
-v ~/mynmp/nginx/conf.d:/etc/nginx/conf.d 将主机的 ~/mynmp/nginx/conf.d 目录挂载到容器的 /etc/nginx/conf.d
--link myphp:php 将 myphp 容器的网络并入 nginx 容器,实现容器间的通信
4.4 docker查看
docker ps
4.5 docker 里修改 nginx随启动
登录docker:
docker exec -it mynginx /bin/bash
docker实例随docker启动:
docker update --restart=always mynginx
更改配置后重启:
docker restart mynginx
4.6配置nginx
server {
listen 80;
listen [::]:80;
server_name localhost;
#access_log /var/log/nginx/host.access.log main;
location / {
root /www;
index index.html index.htm index.php;
# 因为我这里用的TP框架所以加了下面这个,可以根据自己情况去掉
if (!-e $request_filename){
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
fastcgi_pass 172.17.0.3:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www$fastcgi_script_name;
# scripts$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;
#}
}
5.运行
以上三个模块安装配置好里,docker ps查看如下:
打开http://localhost:8080/index.php ,可以看到如下图展示,所有配置完成!~
以上就是今天的分享,你学会了吗?