Ankündigung

Einklappen
Keine Ankündigung bisher.

phpMyAdmin und Roundcube unter FPM - HTTP2 mit mod_Event

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    phpMyAdmin und Roundcube unter FPM - HTTP2 mit mod_Event

    phpMyAdmin und Roundcube unter FPM ohne PHP Modul mit HTTP2. Das war heute die Tagesaufgabe und es hat geklappt. Normalerweise arbeiten phpMyAdmin und Roundcube unter mod_php. Da ich auf HTTP2 umgestellt habe und der Apache unter MPM_event läuft, musste mod_php weichen. Es gibt keine Option, das PHP kann als Modul nicht mehr laufen!

    Das Problem ist, das Roundcube und phpMyAdmin als Modul laufen wollen. Das sieht dann etwa so aus in der Apache Konfiguration:

    Code:
    # phpMyAdmin default Apache configuration
    
    Alias /phpmyadmin /usr/share/phpmyadmin
    
    <Directory /usr/share/phpmyadmin>
        Options SymLinksIfOwnerMatch
        DirectoryIndex index.php
    
        <IfModule mod_php5.c>
            <IfModule mod_mime.c>
                AddType application/x-httpd-php .php
            </IfModule>
            <FilesMatch ".+\.php$">
                SetHandler application/x-httpd-php
            </FilesMatch>
    
            php_value include_path .
            php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
            php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
            php_admin_value mbstring.func_overload 0
        </IfModule>
        <IfModule mod_php.c>
            <IfModule mod_mime.c>
                AddType application/x-httpd-php .php
            </IfModule>
            <FilesMatch ".+\.php$">
                SetHandler application/x-httpd-php
            </FilesMatch>
    
            php_value include_path .
            php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
            php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
            php_admin_value mbstring.func_overload 0
        </IfModule>
    
    </Directory>
    
    # Authorize for setup
    <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>
    Da wir .. hoffentlich schon auf den MPM_Event umgestellt haben, geht das natürlich nicht mehr.

    Deswegen muss das erstmal aus der Apache Konfiguration raus. Das geht mit folgenden Befehlen:
    Code:
    a2disconf roundcube
    a2disconf phpmyadmin
    Die Konfigurationen sind nun raus, phpMyAdmin und Roundcube gehen natürlich immer noch nicht. Dazu müssen wir die VHost Datei anpassen und folgendes ergänzen, optimal mit SSL gesichert und auf den Hostnamen wäre optimal.

    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>
    
    
    
    
    
    Alias /webmail /var/lib/roundcube
    
    <Directory /var/lib/roundcube/>
      Options +FollowSymLinks
      # This is needed to parse /var/lib/roundcube/.htaccess. See its
      # content before setting AllowOverride to None.
      AllowOverride All
      <IfVersion >= 2.3>
        Require all granted
      </IfVersion>
      <IfVersion < 2.3>
        Order allow,deny
        Allow from all
      </IfVersion>
    </Directory>
    
    # Protecting basic directories:
    <Directory /var/lib/roundcube/config>
            Options -FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/lib/roundcube/temp>
            Options -FollowSymLinks
            AllowOverride None
            <IfVersion >= 2.3>
              Require all denied
            </IfVersion>
            <IfVersion < 2.3>
              Order allow,deny
              Deny from all
            </IfVersion>
    </Directory>
    
    <Directory /var/lib/roundcube/logs>
            Options -FollowSymLinks
            AllowOverride None
            <IfVersion >= 2.3>
              Require all denied
            </IfVersion>
            <IfVersion < 2.3>
              Order allow,deny
              Deny from all
            </IfVersion>
    </Directory>
    Damit geht es theoretisch schon. Doch es gibt so einige Fallstricke. Wenn HTTP2 schon läuft, sollte man sicher sein das auch FPM in der Konfiguration läuft. Da habe ich sehr lange für gebraucht, das zu raffen, es ist notwendig das

    Code:
    a2enconf php7.2-fpm
    ausgeführt wird und auch läuft. ACHTUNG: Das gilt nur für PHP 7.2!

    Danach noch den Apachen neu starten über:

    Code:
    service apache2 restart
    Wie HTTP2 aktiviert wird, steht hier: https://seo-nw.de/forum/hosting-foru...-04-aktivieren

    Viel Spass. Es sollte funktionieren und auch mit HTTP2 laufen.

    wenn etwas möglich erscheint mach ich das, wenn das nicht klappt gehts ans unmögliche und ansonsten das undenkbare.
    Ich denke, also BING ich :)


    Support 24h Bereitschaft 0163 2161604 - NUR Für Kunden von SEO NW! Faires Hosting - Alternative Suchmaschinen

    #2
    Das Problem mit phpmyadmin als Paket ist, dass es sein Abhängigkeiten auflöst und automatisch mod_php installiert. Das tut es auch, wenn vorher fpm schon aktiv war. Es braucht aber KEIN mod_php, es braucht nur irgendein PHP. Ist nur zu doof zu merken, dass schon eines da ist.

    Daher auch das Durcheinander mit Configs etc. Liegt alles schlicht nur daran, dass FPM deaktiviert wurde.

    Die Config von phpmyadmin muss m auch nicht deaktivieren, sondern nur FP aktivieren. Die Config fragt nur ab, ob das Modul da ist "<IfModule mod_php5.c>", mehr nicht. Wenn es nicht da ist, dann ist es nicht da. Die Config also bis auf den Auth übeflüssig.

    Kommentar

    Lädt...
    X

    Das Rechtliche
    Impressum | Widerruf | Datenschutz | Disclaimer | Links