微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

nginx – php-fpm错误“没有指定输入文件”与Docker

我正在尝试为PHP-fpm设置一个docker容器.但是在访问localhost上配置的Web目录时遇到此错误.我被困在这里超过5个小时.
这是我的Dockerfile:

FROM centos:latest
workdir /tmp
RUN yum -y update

RUN rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm; rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

#RUN yum -y groupinstall "Development Tools"
RUN systemctl stop firewalld; systemctl disable firewalld

RUN yum -y install PHP56w PHP56w-opcache PHP56w-cli PHP56w-common PHP56w-devel PHP56w-fpm PHP56w-gd  PHP56w-mbstring  PHP56w-mcrypt PHP56w-pdo PHP56w-MysqLnd PHP56w-pecl-xdebug PHP56w-pecl-memcache

RUN sed -i "s/;date.timezone =.*/date.timezone = UTC/" /etc/PHP.ini && \
    sed -i "s/display_errors = Off/display_errors = stderr/" /etc/PHP.ini && \
    sed -i "s/upload_max_filesize = 2M/upload_max_filesize = 30M/" /etc/PHP.ini && \
    sed -i -e "s/;daemonize\s*=\s*yes/daemonize = no/g" /etc/PHP-fpm.conf && \
    sed -i '/^listen = /c listen = 9000' /etc/PHP-fpm.d/www.conf && \
    sed -i '/^listen.allowed_clients/c ;listen.allowed_clients =' /etc/PHP-fpm.d/www.conf

RUN mkdir -p /home/www
VOLUME ["/home/www"]

EXPOSE 9000

ENTRYPOINT ["/usr/sbin/PHP-fpm", "-F"]

通过docker ps检查

aab4f8ce0fe8        jason/fpm:v1        "/usr/sbin/PHP-fpm -   6 minutes ago       Up 6 minutes        0.0.0.0:9002->9000/tcp   fpm

数据量确实存在.通过Docker检查

"Volumes": {
        "/home/www": "/home/www"
    },
    "VolumesRW": {
        "/home/www": true
    }
"Ports": {
            "9000/tcp": [
                {
                    "HostIp": "0.0.0.0",
                    "HostPort": "9002"
                }
            ]
        }

localhost Nginx网站配置:

listen 80;
server_name admin.local.lumen.com;
index index.PHP index.html index.htm ;
root  /home/www/lumenback/public_admin;
error_log /home/wwwlogs/lumenback_error.log;
location / {
        try_files $uri $uri/ /index.PHP?$query_string;
}
location ~ .*\.PHP?$
{
        fastcgi_pass   127.0.0.1:9002;
        fastcgi_index  index.PHP;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include fastcgi_params;
        #include        fastcgi.conf;
}

PHP-fpm记录的错误

[error] 5322#0: *3798 FastCGI sent in stderr: "Primary script unkNown" while reading response header from upstream, client: 172.16.1.19, server: admin.local.lumen.com, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9002", host: "admin.local.lumen.com"

许多人在线说错误是由fastcgi_param SCRIPT_FILENAME引起的.似乎这不是我的理由.

解决方法:

您可能拥有不正确的文件权限 – 容器中的进程无法读取PHP文件.您可以更改容器中运行PHP-fpm的用户可读的PHP文件.请注意,容器中的用户名与主机上的名称不同,因此指定用户ID可能是更好的方法(或者只是让它们在世界上可读).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐