Mac下docker安装nginx+PHP

3 篇文章 0 订阅

一 、首先要先安装好docker,参考连接:MacOS Docker 安装

二、 nginx

docker pull nginx  //默认拉取最新的

成功之后,docker images可查看

docker images

如图:
在这里插入图片描述
三、PHP

  • 获取php 7.2镜像
docker pull php:7.2-fpm  

执行 docker images 如图:
在这里插入图片描述
三、启动容器

  • 目录介绍:
    nginx相关目录:/data/conf/conf.d
    项目根目录:/data/www
    以上是我本地的目录,大家可根据自身修改/创建
  1. 启动php 容器
docker run -p 9000:9000 --name  php72-fpm -v /data/www:/data/www -d php:7.2-fpm
  • 参数说明:
    -p 添加主机到容器的端口映射
    -name 容器的名称、只要求唯一性,自己定义
    -v 添加目录映射,主机上的/data/www映射到容器里面 的/data/www,如果主机没有这个目录就创建这个目录,或者映射别的目录,但是后面路径要统一
    -d 让容器在后台运行
  1. 启动nginx镜像
docker run --name nginx -p 8080:80 -v /data/www:/data/www -v /data/conf/conf.d:/etc/nginx/conf.d -d nginx
  1. 查看镜像
docker ps

如图:
在这里插入图片描述
status==up 才算成功

四、配置调试

  1. 编辑default.conf
vim /data/conf.d/default.conf
 
# 以下为示例内容
server {
  listen  80 default_server;
  server_name _;
  root   /data/www;
 
  location / {
   index index.html index.htm index.php;
   autoindex off;
  }
  location ~ \.php(.*)$ {
   root   /data/www/;
   fastcgi_pass 172.17.0.2:9000;
   fastcgi_index index.php;
   fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   fastcgi_param PATH_INFO $fastcgi_path_info;
   fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
   include  fastcgi_params;
  }
}
  • 注意事项:
    fastcgi_pass 对应的地址是PHP镜像地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' php72-fpm  //查看php镜像的ip地址
  • 也可使用容器names 或者 容器ID,例如: fastcgi_pass php72-fpm:9000;或者 fastcgi_pass a02d807eeab3:9000;
  1. php测试文件
    vim /data/www/index.php
<?
echo "<?php phpinfo();" >
?>
  1. 重启nginx
    进入nginx容器
docker exec -it 6432b8454716 sh

重启:

service nginx reload

访问成功页面
在这里插入图片描述
补充:
nginx虚拟机配置示例:

vim /data/www/conf.d/www.test.com.conf
server {
 listen 80;
 server_name www.test.com;
 root /data/www/;
 location / {
  index index.html index.htm index.php;
  autoindex off;
 }
 location ~ \.php(.*)$ {
  root  /data/www/;
  fastcgi_pass 172.17.0.2:9000;
  fastcgi_index index.php;
  fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  fastcgi_param PATH_INFO $fastcgi_path_info;
  fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
  include  fastcgi_params;
 }
}
vim /etc/hosts

//添加
127.0.0.1           www.test.com

在这里插入图片描述
重启nginx后 访问如下:
在这里插入图片描述
补充命令:

  • 将主机/data/conf/conf.d/default.conf目录拷贝到容器96f7f14e99ab的/etc/nginx/conf.d/default.conf目录下
    docker cp /data/conf/conf.d/default.conf d0224e584cd7:/etc/nginx/conf.d/default.conf
  • 以特权方式运行容器
    docker run -it --privileged=true -d nginx
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是在 Docker安装 NginxPHP 的基本步骤: 1.首先,从 Docker Hub 下载最新版本的 Nginx 镜像: ``` docker pull nginx ``` 2.接下来,从 Docker Hub 下载最新版本的 PHP 镜像: ``` docker pull php:fpm ``` 3.创建一个名为 `myapp` 的工作目录,并在其中创建以下两个文件: `Dockerfile`: ``` FROM nginx COPY default.conf /etc/nginx/conf.d/default.conf WORKDIR /var/www/html COPY . /var/www/html ``` `default.conf`: ``` server { listen 80; server_name localhost; root /var/www/html; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } ``` 其中,`Dockerfile` 中的 `COPY` 命令将 `default.conf` 文件复制到 Nginx 的配置文件目录中,`WORKDIR` 命令将工作目录设置为 `/var/www/html`,`COPY .` 命令将 `myapp` 目录中的所有文件复制到工作目录中。 4.在 `myapp` 目录中运行以下命令,创建名为 `mynginx` 的容器: ``` docker run --name mynginx -p 80:80 -v $(pwd):/var/www/html -d mynginx ``` 其中,`-p` 参数将 Docker 容器中的端口 80 映射到主机上的端口 80,`-v` 参数将当前工作目录映射到容器的 `/var/www/html` 目录。 5.在 `myapp` 目录中运行以下命令,创建名为 `myphp` 的容器: ``` docker run --name myphp -v $(pwd):/var/www/html --link mynginx:php -d php:fpm ``` 其中,`--link` 参数将 `mynginx` 容器链接到 `myphp` 容器中的别名 `php` 上,`-v` 参数将当前工作目录映射到容器的 `/var/www/html` 目录。 现在,您已经成功地在 Docker安装NginxPHP。要测试是否正常工作,请在主机上打开浏览器,输入 `localhost`,您应该可以看到一个 PHP 信息页面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值