how do i restart php7-fpm with supervisord?

9,923

just added this line to the start.sh script

service php7.0-fpm restart

and just like that all issues got resolved!

Didn't realize it was as easy as just adding a bash command to the start.sh script

Share:
9,923

Related videos on Youtube

uberrebu
Author by

uberrebu

Updated on September 18, 2022

Comments

  • uberrebu
    uberrebu over 1 year

    I have a custom docker image for apache and php7-fpm but whenever i make changes to the php ini file and use supervisord to retsart php7-fpm after those changes during image building before running the container from the image i noticed i have been unable to make php7-fpm restart. So the changes i make to the php ini file never gets reflected

    But when i log into the running container and try to retsart php7-fpm then i see those changes

    Here is what my supervisord config has

    [supervisord]
    nodaemon=true
    
    [program:php-fpm7.0]
    command = /usr/sbin/php-fpm7.0 -c /etc/php/7.0/fpm/php-fpm.conf
    autorestart=true
    
    [program:apache2]
    command=/bin/bash -c "source /etc/apache2/envvars && exec /usr/sbin/apache2 -DFOREGROUND"
    autorestart=true
    

    Here is my start.sh script

    #!/bin/bash
    set -e
    echo "ServerName localhost" >> /etc/apache2/apache2.conf
    #echo "export HOSTNAME=$(hostname)" >> /etc/apache2/envvars
    sed -i -e "s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g" /etc/php/7.0/fpm/php.ini
    sed -i -e "s/;short_open_tag = Off/short_open_tag = On/g" /etc/php/7.0/fpm/php.ini
    sed -i -e "s/;display_errors = Off/display_errors = On/g" /etc/php/7.0/fpm/php.ini
    sed -ri 's/^upload_max_filesize\s*=\s*.+/upload_max_filesize = 450M/g' /etc/php/7.0/fpm/php.ini
    sed -ri 's/^max_input_time\s*=\s*.+/max_input_time = 300/g' /etc/php/7.0/fpm/php.ini
    sed -ri 's/^memory_limit\s*=\s*.+/memory_limit = 640M/g' /etc/php/7.0/fpm/php.ini
    sed -ri 's/^post_max_size\s*=\s*.+/post_max_size = 450M/g' /etc/php/7.0/fpm/php.ini
    sed -ri 's/^max_execution_time\s*=\s*.+/max_execution_time = 300/g' /etc/php/7.0/fpm/php.ini
    sed -i -e "s/;daemonize\s*=\s*yes/daemonize = no/g" /etc/php/7.0/fpm/php-fpm.conf
    sed -i -e "s/;catch_workers_output\s*=\s*yes/catch_workers_output = yes/g" /etc/php/7.0/fpm/pool.d/www.conf
    sed -i -e "s/pm.max_children = 5/pm.max_children = 9/g" /etc/php/7.0/fpm/pool.d/www.conf
    sed -i -e "s/pm.start_servers = 2/pm.start_servers = 3/g" /etc/php/7.0/fpm/pool.d/www.conf
    sed -i -e "s/pm.min_spare_servers = 1/pm.min_spare_servers = 2/g" /etc/php/7.0/fpm/pool.d/www.conf
    sed -i -e "s/pm.max_spare_servers = 3/pm.max_spare_servers = 4/g" /etc/php/7.0/fpm/pool.d/www.conf
    sed -i -e "s/pm.max_requests = 500/pm.max_requests = 200/g" /etc/php/7.0/fpm/pool.d/www.conf
    sed -i -e "s/;clear_env = no/clear_env = no/g" /etc/php/7.0/fpm/pool.d/www.conf
    

    Please help with how to restart php7-fpm when changes are made to the php ini file with a start.sh script while creating the docker image

    P.S.

    You may be wondering why do i need to restart php7-fpm if it only needs to be started, well no way to get php7-fpm to work with docker except i actually start it first in my docker file like below. Whenever i remove that line from my dockerfile, it does not work. If anyone has apache 2.4 and php7-fpm setup in docker that works without that way PLEASE send me the link to their image!

    RUN service php7.0-fpm start
    

    Thanks