Debian 9: mpm_worker, php-fpm ( roundcube, enigma, munin, phpmyadmin aliases fix )

Discussion in 'Tips/Tricks/Mods' started by ztk.me, Oct 5, 2017.

  1. ztk.me

    ztk.me Well-Known Member HowtoForge Supporter

    If you use php trough fpm only ( the fcgi ispconfig not included ) and use sury / happened to have php 7.2 as default on debian 9
    a2disconf php*-fpm except for php7.1-fpm since roundcube may fail with 7.2

    also make sure you have one pool.d/www.conf for every php-fpm listening on sockets at different location so they startup and ISPConfig does not get issues with expected but not started daemons.
    https://www.howtoforge.com/community/threads/debian-9-php-5-6-7-2-with-sury-and-isp.79528/
     
    Last edited: Jul 18, 2018
  2. zicguy

    zicguy Member

    Hi there!

    In order to enable http/2 on my server, I did the following, as suggested by Poliman:
    Code:
    a2enmod proxy
    a2enmod proxy_fcgi
    a2dismod php7.0
    systemctl restart apache2
    a2dismod mpm_prefork //again disable it
    a2enmod mpm_event
    systemctl restart apache2
    When I do that, phpmyadmin and roundcube stops running as PHP code seems not interpreted anymore.
    Do I have to change the apache conf files for these applications (e.g. in /etc/apache2/conf-available/roundcube.conf)? In which way?
    If anyone could help me, it will be great! Because I really want to enable http/2 for performances but without breaking anything ;-)

    Thanks!
     
  3. Poliman

    Poliman Member

    Hi man. You have probably disabled each mpm_. Try two things:
    1. Try a2enmod mpm_event.
    2. Check apache logs /var/log/apache2 and paste what you have there.

    Of course - if enabling again mpm_event won't help, you can enable again --> a2enmod php7.0 and a2enmod mpm_prefork.
     
  4. zicguy

    zicguy Member

    Thanks for you answer but I already tried a2enmod mpm_event.
    When I do that roundcube and phpmyadmin doesn't works because php is not interpreted. To fix that, I had to revert by a2enmod php7.0 and a2enmod mpm_prefork. roundcube and phpmyadmin works, but websites haven't the http/2 activated...
     
  5. Poliman

    Poliman Member

    What appear in your logs when you try enable mpm_event and http/2?
     
  6. zicguy

    zicguy Member

    Nothing special. http/2 works well on all websites. But if I go on roundcube or phpmyadmin, I don't see any kind of error in apache logs and I don't know log files which may contains these errors.
     
  7. Poliman

    Poliman Member

    You can check /var/log/syslog or /var/log/apache2/error.log or /var/log/php***.log
     
  8. zicguy

    zicguy Member

    I just checked and nothing is log into these files when I active mpm_event and I browse on phpmyadmin and/or webmail... The only thing I see, is the php source code in clear text.
    So, I don't know where to search...
     
  9. Poliman

    Poliman Member

    Hmm, hard to say. Which apache version do you have?
     
  10. zicguy

    zicguy Member

    I'm under apache 2.4.25 on Debian 9.5.
     
  11. concept21

    concept21 Active Member

    Guys,
    You can't imagine how fast mpm_event is.
    My system is 4GB RAM. About 1.7GB RAM is usable and 300MB swap memory is occupied. When I enter roundcube webmail, it takes zero time. Don't waste your time on Ngnix any more. :cool:
     
    ahrasis likes this.
  12. concept21

    concept21 Active Member

    Also try to install the evil Commie Google's pagespeed module. Make sure your are using the open-source version. :cool:
     
  13. ahrasis

    ahrasis Well-Known Member HowtoForge Supporter

    It's a matter of preference, not which one is the best.
     
  14. zicguy

    zicguy Member

    I would love to use mpm_event for http/2 reason but still issues with roundcube / phpmyadmin when I enable it -> PHP is not interpreted... Do you have specific configuration files for each of them to enable mpm_event in roundcube / phpmyadmin?
     
  15. concept21

    concept21 Active Member

    zicguy,
    Have you read my tips a few months ago?

    You must STOP all apache 2.4 instances first before you try to switch to the new mpm_event. :cool:
     
    ahrasis likes this.
  16. zicguy

    zicguy Member

    Yes, but I'm not sure what I need to do. I already have proxy and proxy_fcgi enabled. Do I have to: apt purge libapache2-mod-php7.0 ?
    What do you mean by "You must STOP all apache 2.4 instances first". Should I have to make: service apache2 stop before?
    Can you give me a step by step process to make mpm_event works AND roundcube and phpmyadmin please?
     
  17. unsichtbare

    unsichtbare Member HowtoForge Supporter

    I was wondering if it would be possible to summarize the procedure for enabling HTTP/2 on Debian/Ubuntu and keeping phpmyadmin at the same time.
    Am I correct in the following:
    First:
    Code:
    a2enmod proxy
    a2enmod proxy_fcgi
    a2dismod php7.0
    systemctl restart apache2
    a2dismod mpm_prefork //again disable it
    a2enmod mpm_event
    systemctl restart apache2
    Second add this code WHERE? for phpmyadmin
    Code:
    Alias /phpmyadmin /usr/share/phpmyadmin
    Directory /usr/share/phpmyadmin/setup>
        <IfModule mod_authz_core.c>
            <IfModule mod_authn_file.c>
                AuthType Basic
                AuthName "phpMyAdmin Setup"
                AuthUserFile /etc/phpmyadmin/htpasswd.setup
            </IfModule>
            Require valid-user
        </IfModule>
    </Directory>
    
    # Disallow web access to directories that don't need it
    <Directory /usr/share/phpmyadmin/templates>
        Require all denied
    </Directory>
    <Directory /usr/share/phpmyadmin/libraries>
        Require all denied
    </Directory>
    <Directory /usr/share/phpmyadmin/setup/lib>
        Require all denied
    </Directory>
    and what (if any) other steps would be required?
    Any per-site configurations?
    Thanks,
     
  18. Jesse Norell

    Jesse Norell Well-Known Member Staff Member Howtoforge Staff

    I hope to test exactly that soon, I'll follow up if there's no answer by then.

    That is a subset of the code in /etc/apache2/conf-available/phpmyadmin.conf on debian 9, probably just "a2enconf phpmyadmin" would have it enabled for you.

    Unknown yet; the other part that comes to mind is making sure php files are handled, but I suppose that strictly has to do with the php interpreter config, not the apache multi-processing module.

    If you want to enable phpmyadmin to run on each vhost you'd need to make sure the phpmyadmin directories are in the open_basedir path, though I think they may be by default. (Checking a server here includes '/usr/share/phpmyadmin:/etc/phpmyadmin:/var/lib/phpmyadmin' and a quick load of https://clientdomain.tld/phpmyadmin/ shows the phpmyadmin login page, so should be working).
     
    unsichtbare likes this.
  19. unsichtbare

    unsichtbare Member HowtoForge Supporter

    Thanks. I have a new site going live this weekend and may plow ahead myself. I'll post here if I discover anything or encounter problems.
     
  20. zicguy

    zicguy Member

    FYI, I solve my issues to make roundcube and phpmyadmin works with mpm_event enabled, and of course, http/2 enabled. I only missed to enable the php7.0-fpm mod... So, to enable http/2 without side effects on my server I had to do the following:
    Code:
    a2enconf php7.0-fpm
    systemctl reload apache2
    a2dismod php7.0
    systemctl restart apache2
    a2dismod mpm_prefork
    a2enmod mpm_event
    systemctl restart apache2
    If it can helps someone... ;)
     

Share This Page