首页 > Web开发 > 详细

docker 搭建php+nginx环境

时间:2021-05-13 20:21:38      阅读:25      评论:0      收藏:0      [点我收藏+]

本文参考:http://www.weitip.com/news/11.html

1、首先push 两个镜像

docker pull php:7.2.3-fpm
docker pull nginx

2、创建本地项目地址,到时映射到php容器里

[root@localhost www]# mkdir phpproject
[root@localhost www]# cd phpproject/
[root@localhost phpproject]# ll
总用量 0
[root@localhost phpproject]# echo "<?php phpinfo();" > info.php
[root@localhost phpproject]# pwd
/www/phpproject

3、启动php
docker run --name phpfpm -itd -v /www/phpproject:/www php:7.2.3-fpm

  • --name NAME 为容器指定一个名字。
  • -v 本地目录:容器目录 或 -v 容器目录。将本机的当前目录,挂载到镜像中的/www目录

4、启动nginx
docker run --name nginx_server -itd -p 8080:80 --link phpfpm:phpfpm -v /root/conf/nginx.conf:/etc/nginx/nginx.conf --volumes-from phpfpm nginx

  • --link phpfrpm:phpfpm 是容器之间建立关系
  • --volumes-from phpfpm 就是把/www/phpproject:/www 也会导入到 容器中/www 目录
  • -v /root/conf/nginx.conf 导入到 /etc/nginx/nginx.conf 宿主机 的nginx.conf 的导入到/etc/nginx/nginx.conf 中

nginx配置如下:

user  root root;
worker_processes auto;
error_log  /tmp/nginx_error.log  crit;
pid        /tmp/nginx.pid;
worker_rlimit_nofile 51200;

events
    {
        use epoll;
        worker_connections 51200;
        multi_accept on;
    }

http
    {
        include       mime.types;
        default_type  application/octet-stream;
        server_names_hash_bucket_size 512;
        client_header_buffer_size 32k;
        large_client_header_buffers 4 32k;
        client_max_body_size 50m;

        sendfile   on;
        tcp_nopush on;

        keepalive_timeout 60;

        tcp_nodelay on;

        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
        fastcgi_buffer_size 64k;
        fastcgi_buffers 4 64k;
        fastcgi_busy_buffers_size 128k;
        fastcgi_temp_file_write_size 256k;
		fastcgi_intercept_errors on;


server
    {
        listen 80;
        index index.html index.htm index.php;
        root  /www;  #nginx容器的路径

        #error_page   404   /404.html;
        location ~ .php$ {
        root          /www;  #php容器的路径
        fastcgi_pass   phpfpm:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME /www$fastcgi_script_name;
        include        fastcgi_params;
        }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log  /tmp/access.log;
    }
}

运行结果

1、没有文件的情况下:
技术分享图片
2、新增一个html文件:
技术分享图片
3、访问php文件:
技术分享图片

大功告成~~~

搭建中出现的问题

1、php容器挂载的数据卷,必须跟nignx中配置的php访问的路径一致,要不然会出问题。
2、如果出现nginx 报错an error occurred:排查一下phpfpm有没有开启、或者防火墙有没有关闭
3、docker创建容器出现WARNING: IPv4 forwarding is disabled. Networking will not work.

问题原因:ipv4的网络不能转发
解决方案: 将ipv4转发开启即可 https://blog.csdn.net/ezbuy/article/details/82462952

docker 搭建php+nginx环境

原文:https://www.cnblogs.com/bogiang/p/14764170.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!