【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的配置文件如下:

【Docker】linux环境使用docker部署php环境报错File not found.

网上解答已经看了很多,没有解决,望协助,谢谢。

回答

已找到解决方案:
修改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

回到顶部