Rumah  >  Soal Jawab  >  teks badan

Mencipta bekas menyebabkan PHP-FPM gagal dimulakan

Saya membuat Dockerfile, tetapi apabila saya menjalankannya dan masuk ke dalam bekas, perkhidmatan php8.0-fpm tidak berjalan.

Bagaimana untuk menjadikannya berjalan pada masa binaan? Ambil perhatian bahawa saya menjalankan arahan service php8.0-fpm start dalam Dockerfile, tetapi walaupun begitu ia tidak berjalan.

Bagaimana untuk membuat perkhidmatan php8.0-fpm bermula dengan bekas?

Berikut ialah Dockerfile yang saya buat:

FROM ubuntu:jammy

ENV DEBIAN_FRONTEND=noninteractive

# Instalação Apache e PHP

RUN apt-get update && 
    apt-get install software-properties-common -y && 
    add-apt-repository ppa:ondrej/php -y && 
    apt-get update && 
    apt-get install -y 
    apache2 
    libapache2-mod-php8.0 
    libapache2-mod-php 
    php8.0-fpm 
    libapache2-mod-fcgid 

# Alteração sequência index

COPY /src/dir.conf /etc/apache2/mods-enabled

# Commitando a nova configuração

RUN service apache2 restart
RUN service php8.0-fpm restart

# Inserindo página info.php

COPY /src/info.php /var/www/html

# Alterando módulos de multiprocessamento

RUN service apache2 stop && 
    a2dismod php8.0 && 
    a2dismod php8.1 && 
    a2dismod mpm_prefork && 
    a2enmod mpm_event && 
    a2enconf php8.0-fpm && 
    a2enmod proxy && 
    a2enmod proxy_fcgi && 
    service apache2 restart && 
    service php8.0-fpm start

# Entrypoint para o conteiner iniciar o Apache

ENTRYPOINT ["apache2ctl", "-D", "FOREGROUND"]```


P粉151720173P粉151720173322 hari yang lalu642

membalas semua(2)saya akan balas

  • P粉463418483

    P粉4634184832023-11-07 20:32:06

    Anda perlu menjalankan php fpm semasa permulaan. Anda boleh melakukan ini jika bash dipasang dalam sistem pengendalian mesin maya anda.

    Isyarat berhenti SIGTERM

    CMD ["/bin/bash", "-c", "php-fpm8 && sertakan apache anda di sini"]

    Panduan lengkap: Cara menyediakan PHP 8, NGINX dan PHP-FPM menggunakan docker

    balas
    0
  • P粉476475551

    P粉4764755512023-11-07 13:07:41

    Saya berjaya menyimpannya dalam bekas, PHP mempunyai sambungan yang dipanggil Supervisor dan selepas pemasangan kami dapat memulakan dua atau lebih perkhidmatan di dalam bekas.

    Dockerfile kelihatan seperti ini:

    FROM httpd:2.4-alpine
    
    RUN apk update && \
        apk add \
        php \
        php-fpm \
        php-zip \
        composer \
        supervisor
    
    COPY . /usr/local/apache2/htdocs
    COPY httpd.conf /usr/local/apache2/conf/httpd.conf
    COPY supervisor /etc/supervisor
    
    WORKDIR /usr/local/apache2/htdocs
    
    CMD ["supervisord","-n", "-c", "/etc/supervisor/supervisord.conf"]

    Saya mencipta dua fail konfigurasi untuk Penyelia.

    apache.conf

    [program:apache]
    command=httpd -DFOREGROUND
    autostart=true
    autorestart=true
    priority=10
    startretries=1
    startsecs=1
    stdout_logfile=/dev/stdout
    stdout_logfile_maxbytes=0
    stderr_logfile=/dev/stderr
    stderr_logfile_maxbytes=0

    fpm.conf

    [program:php-fpm]
    command = php-fpm8 --nodaemonize 
    autostart=true
    autorestart=true
    priority=5
    stdout_logfile=/dev/stdout
    stdout_logfile_maxbytes=0
    stderr_logfile=/dev/stderr
    stderr_logfile_maxbytes=0

    Pada ketika ini, kedua-dua perkhidmatan dimulakan dan berjalan dengan sempurna!

    balas
    0
  • Batalbalas