• docker 安装php


    nginx :
    docker pull nginx

    docker run -p 80:80 --name nginx -v /usr/local/nginx/www:/www -v /usr/local/nginx/:/etc/nginx -v /usr/local/nginx/logs:/var/log/nginx -v /usr/local/nginx/wwwlogs:/wwwlogs -d nginx

    php :
    docker pull php:7.2-fpm

    docker run -p 9000:9000 --name  php -v /usr/local/nginx/www:/www -v /usr/local/php/conf:/usr/local/etc/php -v /usr/local/php/logs:/phplogs   -d php:7.2-fpm

    先启动一个不带目录映射的,复制配置文件出来,再启动带有目录映射的
    docker cp -a php1:/usr/local/etc/php /usr/local

    命令说明:

    • -p 9000:9000 :将容器的9000端口映射到主机的9000端口

    • --name myphp-fpm :将容器命名为myphp-fpm

    • -v ~/nginx/www:/www :将主机中项目的目录www挂载到容器的/www

    • -v $PWD/conf:/usr/local/etc/php :将主机中当前目录下的conf目录挂载到容器的/usr/local/etc/php

    • -v $PWD/logs:/phplogs :将主机中当前目录下的logs目录挂载到容器的/phplogs

    查看容器启动情况

    runoob@runoob:~/php-fpm$ docker ps
    CONTAINER ID    IMAGE         COMMAND      ...    PORTS                    NAMES
    00c5aa4c2f93    php:5.6-fpm   "php-fpm"    ...    0.0.0.0:9000->9000/tcp   myphp-fpm
    通过浏览器访问phpinfo()

    PS:此处是通过nginx+php实现web服务,nginx配置文件的fastcgi_pass应该配置为myphp-fpm容器的IP。

    fastcgi_pass  172.17.0.4:9000;

    容器IP的查方法

    docker inspect 容器ID或容器名 |grep '"IPAddress"' 

    注意 如果报错 file not find 需要修改nginx的配置文件
    location ~ .php$ {
         fastcgi_pass 127.0.0.1:9000;
         fastcgi_index index.php;
         fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;  // /scripts 改为$document_root
         include fastcgi_params;
    }
    
     
     
     
     

  • 相关阅读:
    JQuery:自动触发事件
    SQL Server 取日期时间部分
    使用IIS 7.0 / 7.5 时配置HttpModules需要注意
    Winform:中直接打开指定文件
    jQuery 时间获取扩展
    喵星史话(一)——猫的起源
    2013年的环法
    ie8下奇怪的问题:float:left之后,右侧的div会影响左侧
    虚假IP和DNS污染
    android中setBackgroundResource和setBackgroundDrawable和用法
  • 原文地址:https://www.cnblogs.com/brady-wang/p/10798757.html
Copyright © 2020-2023  润新知