龙空技术网

windows 10 下docker布置nginx+php环境,用宿主WEB目录负载均衡

微奇奇 367

前言:

而今看官们对“nginx无法读取php文件”都比较关怀,各位老铁们都想要学习一些“nginx无法读取php文件”的相关资讯。那么小编同时在网摘上收集了一些关于“nginx无法读取php文件””的相关文章,希望小伙伴们能喜欢,小伙伴们一起来学习一下吧!

实现目的:windows 10下安装docker,布置nginx+php5.6运行环境,布置多个docker实现负载均衡,实现成功,存在缺点windows server版本需要付费,当做测试学习,正式服务器可以考虑linux系统;

参考资料:

docker可以简单理解为一个虚拟的的ubuntu系统,操作基本都是通过命令行来操作的,有一个虚拟的交换机接入网络

docker与虚拟机的区别可以查看:

获取nginx最新版本镜像image:

docker pull nginx

启动一个nginx的docker,docker内部是80端口理解为端口映射到外网808端口:

docker run -d -p 808:80 --name mynginx nginx

获取php5.6的镜像文件:

docker pull php:5.6.40-fpm

启动php,将宿主web目录映射到phpweb服务器目录,目录与下面nginx要一致:

docker run -d -v E:\docker\www:/var/www/html -p 9000:9000 --name myphp php:5.6.40-fpm

复制docker配置文件到windows:

docker cp myphp:/usr/local/etc E:\docker\php-conf

docker cp myphp:/usr/local/var/log E:\docker\php-log

docker cp myphp:/var/www/html E:\docker\www

安装php扩展

apt-get update

docker-php-ext-install pdo_mysql

docker-php-ext-install mysql

docker-php-ext-install gd

docker-php-ext-install curl

php配置完成,启动:

docker run -d -v E:\docker\php-conf:/usr/local/etc -v E:\docker\php-log:/usr/local/var/log -v E:\docker\www:/var/www/html -p 9000:9000 --name myphp php:5.6.40-fpm

复制nginx的配置到windows

docker cp mynginx:/etc/nginx E:\docker\nginx-conf

E:\docker\nginx-conf下面的nginx目录文件都copy到上一级

按照下面修改:E:\docker\nginx-conf\conf.d\default.conf

docker run -d -p 808:80 -v E:\docker\www:/var/www/html -v E:\docker\nginx-conf:/etc/nginx/ -v E:\docker\nginx-log:/var/log/nginx/ --link myphp:php --name mynginx nginx

到此成功success

=============================

Docker的Ubuntu镜像安装的容器无ifconfig命令和ping命令

进入docker命令行

docker exec -it mynginx /bin/sh

解决:

apt-get update

apt install net-tools # ifconfig

apt install iputils-ping # ping

=================================

default.conf

server {

listen 80;

listen [::]:80;

server_name localhost;

#charset koi8-r;

#access_log /var/log/nginx/host.access.log main;

location / {

root /var/www/html;

index index.html index.htm index.php;

}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html

#

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /usr/share/nginx/html;

}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80

#

#location ~ \.php$ {

# proxy_pass ;

#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

#

location ~ \.php$ {

root /var/www/html;

fastcgi_pass php:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

# deny access to .htaccess files, if Apache's document root

# concurs with nginx's one

#

#location ~ /\.ht {

# deny all;

#}

}

标签: #nginx无法读取php文件