【Docker】linux环境使用docker部署php环境报错File not found.
在阿里云服务器上,使用docker-ce版本部署php开发环境,当部署完nginx和php-fpm后,测试.html结尾文件可以访问,但是测试.php文件就会报错,报错内容如下:
File not found.
查看docker运行的nginx错误日志,报错如下:
FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream
查看docker运行下的php-fpm日志,报错如下:
[27-Apr-2018 02:58:49] NOTICE: fpm is running, pid 1
[27-Apr-2018 02:58:49] NOTICE: ready to handle connections
172.17.0.3 - 27/Apr/2018:02:59:26 +0000 "GET /index.php" 404
执行的安装nginx和PHP命令如下:
nginx:docker run -p 8080:80 --name my_nginx -v /docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro -v /docker/nginx/conf/conf.d/:/etc/nginx/conf.d/ -v /docker/nginx/logs/:/var/log/nginx/ -v /docker/www/myBlog/:/var/html/ --link my_php-fpm -d nginx:1.13
php:docker run -p 9072:9000 --name my_php-fpm -v /docker/php/conf/php.ini:/etc/php.ini:ro -v /docker/www/myBlog:/www -d php:7.1-fpm
nginx的配置文件如下:
网上解答已经看了很多,没有解决,望协助,谢谢。
回答
已找到解决方案:
修改nginx配置即可
fastcgi_param SCRIPT_FILENAME /www$fastcgi_script_name;
错误一致:
FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream
docker启动phpfpm
sudo docker run \--name php72 \
--link=mysql:mysql \
**-v /data/html:/var/www/html:ro \** //注意这里
-d --privileged=true php:7.2-fpm
docker 启动 nginx
sudo docker run \--name nginx \
--link=php72:phpfpm \
-d -p 8080:80 \
-v /data/html:/usr/share/nginx/html:rw \
nginx
nginx.conf
location ~ \.php$ { root /usr/share/nginx/html;
//注意这里
fastcgi_pass phpfpm:9000;
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
//注意这里,和phpfpm挂载目录一致
fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;
include fastcgi_params;
}
问题的主要是phpfpm的挂载出问题,或者是nginx配置文件,fastcgi_param参数不对,别百度拉,百度搜的都是什么啊
有没有映射网站目录到docker啊 兄弟
以上是 【Docker】linux环境使用docker部署php环境报错File not found. 的全部内容, 来源链接: utcz.com/a/76939.html