【问题标题】:Cannot find php-fpm www.sock file on Docker with nginx and php-fpm使用 nginx 和 php-fpm 在 Docker 上找不到 php-fpm www.sock 文件
【发布时间】:2021-04-02 18:10:03
【问题描述】:

我正在努力在 Docker 上启动 laravel 应用

我遇到connect() to unix:/run/php-fpm/www.sock failed (2: No such file or directory) 错误,并且运行文件夹中没有 php-fpm 文件夹。

为什么没有创建 www.sock 文件?

server.conf

server {
    listen      8080;
       root        /home/app/public_html/public;
       index       index.php;

       charset utf-8;
       gzip on;
    gzip_types text/css application/javascript text/javascript application/x-javascript  image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
    
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
        

        location ~ \.php {
                include fastcgi.conf;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/run/php-fpm/www.sock; //this crashes
        }
        location ~ /\.ht {
                deny all;
        }     

}

Dockerfile

FROM centos:8

RUN dnf install nginx -y

RUN yum -y install yum-utils
RUN dnf install -y dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
RUN dnf module reset php
RUN dnf -y module enable php:remi-7.4

RUN dnf install -y php php-cli php-mysqlnd php-zip php-devel php-pdo php-gd php-mbstring php-curl php-xml php-pear php-bcmath php-json php-fileinfo php-intl
RUN yum -y install make
RUN yum -y install libmcrypt-devel
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

RUN rpm -Uvh http://www.city-fan.org/ftp/contrib/yum-repo/rhel7/x86_64/city-fan.org-release-2-1.rhel7.noarch.rpm

RUN mkdir -p /usr/local/lib/php/pecl
RUN pecl install mongodb
RUN pecl install mcrypt-1.0.4

RUN rm -v /etc/nginx/nginx.conf
ADD nginx.conf /etc/nginx/
ADD server.conf /etc/nginx/conf.d/

COPY . /home/app/public_html/
COPY mongodb.ini /etc/php.d/

RUN cd /home/app/public_html && composer update

EXPOSE 8080

CMD ["nginx", "-g", "daemon off;"]

【问题讨论】:

  • 可以安装 php-pecl-mcrypt 和 php-pec-mongodb 包,而不是从源代码构建它们(pecl install...)
  • 你需要启动 php-fpm.... 这是另一个守护进程...

标签: php docker nginx


【解决方案1】:

在您的 DockerFile 中,您需要添加 php-fpm:

RUN dnf install -y php php-fpm php-cli php-mysqlnd php-zip php-devel php-pdo php-gd php-mbstring php-curl php-xml php-pear php-bcmath php-json php-fileinfo php-intl

希望能帮到你。

【讨论】:

  • 哦,我的错。我添加了 php-fpm 但这次 nginx 不提供 PHP 文件,而是下载它?
  • 尝试在server.conf中添加:access_log your-path;error_log your-path;
  • 顺便说一下 /run/php-fpm/www.sock 文件仍然不存在
  • @UtkuDalmaz 请检查一下 - stackoverflow.com/questions/40059745/…
猜你喜欢
  • 2023-03-07
  • 2014-08-04
  • 1970-01-01
  • 1970-01-01
  • 2016-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多