美文网首页
linux使用docker安装php、nginx

linux使用docker安装php、nginx

作者: 懒人程序猿 | 来源:发表于2020-05-17 13:25 被阅读0次

    拉取php镜像,下面以7.2版本为例。也可拉取指定版本的镜像php:5.6-fpm、php:latest等

    docker pull php:7.2-fpm
    

    拉取nginx镜像,这里直接拉取最新的镜像版本

    docker pull nginx:latest
    

    添加PHP容器

    # /docker/nginx/default/www 是PHP容器映射宿主机目录
    docker run --name php -p 9000:9000 -v /docker/nginx/default/www:/www -d php:7.2-fpm
    

    添加nginx容器

    # /docker/nginx/default/www 是容器映射宿主机的可执行文件目录
    # /docker/nginx/default/conf/conf.d 是容器映射宿主机配置文件目录
    # /docker/nginx/default/logs 是容器映射宿主机lgo文件目录
    docker run --name nginx -p 80:80 -d \
    -v /docker/nginx/default/www:/usr/share/nginx/html:ro \
    -v /docker/nginx/default/conf/conf.d:/etc/nginx/conf.d:ro \
    -v /docker/nginx/default/logs:/var/log/nginx \
    nginx
    

    查看PHP容器IP

    docker inspect --format '{{ .NetworkSettings.IPAddress }}' php
    # 172.17.0.4
    

    编辑nginx配置文件
    在/docker/nginx/default/conf/conf.d目录下新建default.conf,内容如下
    fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name; 这里的(/www/)指的是PHP容器
    php文件执行目录。和启动的PHP容器指向的目录保持一致。
    fastcgi_pass 172.17.0.4:9000;PHP容器IP及端口

    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   172.17.0.4:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /www/$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
    

    重启nginx容器

    docker restart nginx容器ID
    

    /docker/nginx/default/www 目录下添加index.php

    <?php
    echo phpinfo();
    
    

    浏览器访问127.0.0.1


    image.png

    相关文章

      网友评论

          本文标题:linux使用docker安装php、nginx

          本文链接:https://www.haomeiwen.com/subject/jdojohtx.html