用MacBook实操:docker本地部署mysql+php+nginx坏境

大家好,我拿出我的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 ,可以看到如下图展示,所有配置完成!~

 以上就是今天的分享,你学会了吗?

 

以上,就是今天的学习,关注我,我们一起进步!

欢迎点赞、评论,谢谢!~

### 如何在 Mac 上配置 PHPStudy 尽管 PHPStudy 主要针对 Windows 用户设计,但在 macOS 平台上也可以通过虚拟化或其他方式现其功能。以下是关于如何在 Mac 上配置 PHPStudy 的详细介绍。 #### 使用 Vagrant 和 VirtualBox 配置 PHPStudy 一种常见的解决方案是利用虚拟机技术运行 Linux 版本的 PHPStudy。Vagrant 和 VirtualBox 提供了一种简单的方式来创建和管理虚拟环[^2]。具体过程如下: - 安装 **VirtualBox** 和 **Vagrant** 工具。 - 创建一个新的 Vagrantfile 文件并定义所需的 Linux 发行版(如 Ubuntu Server)。 - 下载适用于该发行版的 PHPStudy 软件包,并将其安装到虚拟机中。 - 启动虚拟机并通过浏览器访问 PHPStudy 所托管的服务地址。 这种方法的优点在于可以完全模拟原生环下的 PHPStudy 功能,而无需担心作系统兼容性问题。 #### 原生 macOS 环中的替代方案 如果希望直接在 macOS 中设置类似的开发环,则可以选择手动安装必要的组件来代替 PHPStudy[^3]。这通常涉及以下几个方面: 1. **Apache 或 Nginx Web 服务器** 可以通过 Homebrew 包管理器轻松安装 Apache 或 Nginx: ```bash brew install httpd ``` 2. **PHP 解析引擎** 类似地,使用 Homebrew 来获取最新版本的 PHP: ```bash brew install php ``` 3. **数据库管理系统 (MySQL/MariaDB)** MySQL 或 MariaDB 是常用的数据库选项之一: ```bash brew install mysql ``` 4. **其他依赖项** 根据项目需求可能还需要额外安装 GD 库、cURL 支持以及其他扩展模块。 完成上述步骤之后,便可以在本地构建一个完整的 LAMP/WAMP 栈用于日常开发工作。 #### M1 芯片专属优化建议 对于搭载 Apple Silicon 架构芯片的新款 MacBook 设备而言,部分传统开源项目的移植可能存在一定挑战[^4]。因此推荐优先尝试官方已适配 ARM64 的二进制程序或者借助 Docker 容器平台简化部署流程。 --- ```python import subprocess def check_php_version(): result = subprocess.run(['php', '-v'], stdout=subprocess.PIPE) return result.stdout.decode('utf-8') print(check_php_version()) ``` 此脚本可用于验证当前系统所使用的 PHP 是否正常运作以及查看具体的版本号信息。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值