docker Nginx PHP-FPM单机多站点布署的方法,
网上尝试过各种方法,处理单机中单NGINX容器,单PHP-FPM容器布署多站点,均无法成功。
经过反思总结,目前共实施两种方法成功:
- 单Nginx,多PHP-FPM
- 单Nginx,单PHP-FPM
单Nginx,多PHP-FPM
docker-compose.yml
version: '2' services: nginx-1.15.1: image: nginx:laster ports: - "80:80" volumes: - ./htdocs:/usr/local/nginx/html - ./etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro - ./etc/nginx/conf.d:/etc/nginx/conf.d - ./log/nginx:/var/log/nginx networks: - leoedu-network php-fpm-a: image: php-fpm:laster volumes: - ./htdocs/a.com:/var/www/html networks: - leoedu-network php-fpm-b: image: php-fpm:laster volumes: - ./htdocs/b.com:/var/www/html networks: - leoedu-network networks: leoedu-network: driver: bridge
nginx配置文件:
server { listen 80; charset utf-8; server_name a.com; root /usr/local/nginx/html/a.com; index index.html index.htm index.php; error_log /var/log/nginx/a.com-error.log; access_log /var/log/nginx/a.com-access.log; location ~ \.php$ { fastcgi_pass php-fpm-a:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
单Nginx,单PHP-FPM
docker-compose.yml
version: '2' services: nginx-1.15.1: image: nginx:laster ports: - "80:80" volumes: - ./htdocs:/usr/local/nginx/html - ./etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro - ./etc/nginx/conf.d:/etc/nginx/conf.d - ./log/nginx:/var/log/nginx networks: - leoedu-network php-fpm-7.2.5: image: php-fpm:laster volumes: - ./htdocs:/var/www/html networks: - leoedu-network networks: leoedu-network: driver: bridge
NGINX配置关键点在于:
astcgi_param SCRIPT_FILENAME /var/www/html/nick.com/$fastcgi_script_name;
具体原因,回头有空补上,此篇纯做记录。