docker中nginx容器和php容器混合运行
2016-04-05 18:43
656 查看
该容器在文章《php环境容器大瘦身》制得,亦可用docker官方提供的php环境/article/11827294.html
启动php容器:
-v /home/wwwroot/service_config/php_config:/usr/local/php/etc这一句搭建可以省略,我只不过是把php的配置抽出来到宿主主机上面,因为我再虚拟机上面debug,需要经常改动php的配置,大家也可以把php的配置抽出来,然后再映射回去。这样编辑起来方便很多,同样的php的扩展目录也可以抽出来,万一以后有扩展要加上去呢?^,^。
启动nginx容器:
注意:php和nignx容器的网站运行路径要对应上,此处我使用的是/home/wwwroot/,当然还有配置文件的路径需要映射,别忘了启动容器的时候加上容器的名字,nignx中要用到link。
/home/wwwroot/service_config/nginx_config文件夹中有两个文件(这两文件docker官方下载下来的nginx镜像是没有的):
分别是:
fastcgi_params文件
nginx.conf文件(根据你多少个网站,配置多少个。下面配置若是不懂,请查看相关文档)
测试php是否配置成功,可以使用宿主主机的telnet来尝试。
例如:telnet php1 9000,具体自尝。
启动php容器:
docker run --name php1 \ -v /home/wwwroot/service_config/php_config:/usr/local/php/etc \ -v /home/wwwroot/:/home/wwwroot/ \ -d technofiend/phalcon
-v /home/wwwroot/service_config/php_config:/usr/local/php/etc这一句搭建可以省略,我只不过是把php的配置抽出来到宿主主机上面,因为我再虚拟机上面debug,需要经常改动php的配置,大家也可以把php的配置抽出来,然后再映射回去。这样编辑起来方便很多,同样的php的扩展目录也可以抽出来,万一以后有扩展要加上去呢?^,^。
启动nginx容器:
docker run --name nginx \ -v /home/wwwroot/:/home/wwwroot/ \ -v /home/wwwroot/service_config/nginx_config:/etc/nginx/conf.d \ --link php1:php1 \ -p 80:80 \ -d nginx
注意:php和nignx容器的网站运行路径要对应上,此处我使用的是/home/wwwroot/,当然还有配置文件的路径需要映射,别忘了启动容器的时候加上容器的名字,nignx中要用到link。
/home/wwwroot/service_config/nginx_config文件夹中有两个文件(这两文件docker官方下载下来的nginx镜像是没有的):
分别是:
fastcgi_params文件
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param HTTPS $https if_not_empty; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; # PHP only, required if PHP was built with --enable-force-cgi-redirect fastcgi_param REDIRECT_STATUS 200;
nginx.conf文件(根据你多少个网站,配置多少个。下面配置若是不懂,请查看相关文档)
server { listen 80; server_name www.test.com test.com; index index.html index.htm index.php; root /home/wwwroot/default; #error_page 404 /404.html; location ~ [^/]\.php(/|$) { try_files $uri =404; fastcgi_pass php1:9000; #极其重要 fastcgi_index index.php; include /etc/nginx/conf.d/fastcgi_params; #这里也是需要注意的,之前就是在这里还惨我了,需要绝对路径。不然路径默认从nginx的配置目录开始。 } location /nginx_status { stub_status on; access_log off; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 12h; } location ~ /\. { deny all; } }
测试php是否配置成功,可以使用宿主主机的telnet来尝试。
例如:telnet php1 9000,具体自尝。
相关文章推荐
- CentOS 6.7安装docker
- 四步利用docker搭建samba服务器
- Docker 入门
- 强强合体:Docker版Kali Linux发布
- Docker 安装
- 为Docker创建自动化nginx反向代理
- Docker使用常见问题
- 无需sudo直接使用docker
- Docker基础技术:DeviceMapper
- Docker是什么?它会颠覆企业云市场吗?
- docker container ssh服务自动断开问题
- 携程Docker实践
- Docker技术学习
- docker资源收集
- Docker基本操作(一)
- hosting&docker host net & docker nat net apache服务器性能测试
- 在Docker中部署Tomcat运行环境
- 论docker中 CMD 与 ENTRYPOINT 的区别
- 在Win10上安装试用Docker
- Dockerfile创建Linux/CentOS6.x Nginx MySQL Tomcat PHP(LNMTP)镜像 推荐