mac环境下使用Docker 安装lnmp 并运行laravel项目

mac环境下使用Docker 安装lnmp 并运行laravel项目

1. 安装mysql

docker search mysql

在这里插入图片描述

这里我们指定mysql版本

docker pull mysql:5.7

安装完成 docker images 查看一下
在这里插入图片描述
然后运行mysql生成容器

docker run -itdp 3306:3306 -e MYSQL_ROOT_PASSWORD=123123 --name mysql5.7 mysql:5.7

##进入mysql容器依次执行
docker exec -it mysql5.7 /bin/bash
mysql -uroot -p123123
GRANT ALL ON *.* TO 'root'@'%';
flush privileges;
exit

2. 安装php

docker pull php:7.3-fpm
 
docker run -itdp 9000:9000 -v /usr/local/var/www:/var/www --link mysql5.7:php-fpm7.3-mysql5.7 --name php-fpm7.3 php:7.3-fpm
 
## 9000:9000 容器与本地开放端口
## -v 指定项目挂载目录,我本地mac安装的nginx 对应的web目录为/usr/local/var/www,php容器内目录为/var/www
##--link 指定连接容器,这里是连接mysql容器,mysql5.7为镜像名,php-fpm7.3-mysql5.7为连接别名
##--name 容器别名为php-fpm7.3
 
docker exec -it php-fpm7.3 /bin/bash
##进入容器
## php -m 发现一些必要的php扩展缺失  比如pdo_mysql 等
执行以下命令安装php扩展
apt-get update && apt-get install -y --no-install-recommends libpq-dev && rm -r /var/lib/apt/lists/* && docker-php-ext-install -j$(nproc) pdo_mysql pgsql pdo_pgsql

3. 安装nginx

ngnix不建议安装在docker里面 直接mac本地安装即可

	brew install nginx

本地nginx配置目录为 /usr/local/etc/nginx,配置修改nginx.conf ,配置虚拟主机在servers进行配置
在这里插入图片描述
本地执行命令启动nginx

	brew services start nginx 或者 nginx

出现nginx.conf配置的目录页面即为成功
我配置的为
在这里插入图片描述
在这里插入图片描述
浏览器输入http://localhost:8080/ 可看到对应页面
在这里插入图片描述

4. 运行laravel项目

本身我已创建好自己的项目 v2.mapi 放在/usr/local/var/www
在这里插入图片描述
配置nginx虚拟主机 在servers 下创建test.conf
以下是我的nginx配置文件内容

server {
        listen       80;
        server_name xxx.com;
        root html/xxx.v2.mapi/public;
        #access_log  logs/host.access.log  main;
            location ~ \.php$ {
            root /var/www/7mate.v2.mapi/public;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

        location / {
            index  index.html index.htm index.php;
                try_files $uri $uri/ /index.php?$query_string;
        }
}

两个root 路径的路径分别为nginx服务在本地的项目路径 html即为/usr/local/var/www,和容器内的php服务的项目路径
fastcgi_pass 因为nginx不在容器内 所以为本地127.0.0.1
这里需要注意 laravel项目连接容器里的mysql ,需要使用的是容器局域网ip,可使用命令查看mysql对应容器的IP

docker inspect mysql5.7 | grep IPAddress

在这里插入图片描述
好了 配置完成 开启docker 对应的服务 以及nginx
在这里插入图片描述

用postman调用一下项目 ,查看结果,本地mac配置域名不做多说
在这里插入图片描述
好了 以上就是完整过程

5 小坑的点

安装php 挂载 到 本地/usr/local/var/www 会报错 因为在docker里面没有加入对应挂载目录 进入docker的设置中 加入挂载目录
在这里插入图片描述
还有本地安装完ngnix 有的会报403 这是因为配置nginx.conf目录下没有对应的index.html 之类的文件 创建即可

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值