# phpMyAdmin + FastCGI + Apache MPM Worker



## GTB (7. März 2012)

Hi,

ich setze gerade einen neuen Server auf und stehe vor dem Problem, dass der Server mit dem MPM Worker arbeiten muss.

Dabei läuft PHP ja als FastCGI. Das ist genau das was ich will, aber da funktioniert PMA nicht so wie es soll.

http://www.domain.tld/phpmyadmin

da kommt dann nur der berühmt berüchtigte Download Dialog.

Es gibt aber eine Lösung dafür:

1. im Ordner /etc/apache2/conf.d den Link von PMA entfernen

2. in ISPConfig in den Apache Direktiven muss das hier eingetragen werden:


```
Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
    AddHandler fcgid-script .php .php3 .php4 .php5
    FCGIWrapper /var/www/php-fcgi-scripts/[KUNDEN_ID]/.php-fcgi-starter .php
    Options +ExecCGI
    DirectoryIndex index.php
</Directory>

# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/libraries>
    Order Deny,Allow
    Deny from All
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
    Order Deny,Allow
    Deny from All
</Directory>
```
Allerdings möchte ich das für die Domains automatisch hinterlegt haben.

Jetzt auch meine Frage:

wo füge ist die Vorlage in ISPConfig in der ich das einfügen kann, damit auch die [KUNDEN_ID] im Pfad zum Wrapper ersetzt wird ?


Danke.


----------



## Till (7. März 2012)

Du musst die /usr/local/ispconfig/server/conf/vhost.conf.master datei ändern anstatt es in das apache Direktiven Feld einzufügen.


----------



## GTB (7. März 2012)

Hi Till,

danke für die Antwort.


Kann ich auch ncoh auf die Variable zurückgreifen die ich unter Interface Config für phpMyAdmin angebe ?

dann wäre das perfekt für mich.

Danke.


----------



## Till (8. März 2012)

> Kann ich auch ncoh auf die Variable zurückgreifen die ich unter Interface Config für phpMyAdmin angebe ?


Die steht nicht zur Verfügung.


----------



## GTB (8. März 2012)

Hi Till,

wo wird diese Angabe verarbeitet und welche Config wird damit erstellt ?

Vielleicht lässt sich ja auf diesem Weg was machen.

Danke.


----------



## Till (8. März 2012)

> wo wird diese Angabe verarbeitet und welche Config wird damit erstellt ?


Die onfiguration die Du gepostet hast gehört in die vhost.conf. master und kann auch nur dort umgesetzt werden. Ein Platzhalter [KUNDEN_ID] macht in der apache Config keinen Sinn denn ein Kunde ist ein virtuelles Konstrukt in der MySQL DB von ISPConfig für das es keine Entsprechung auf Linux Konfigurationsebene gib. Ein Kunde ist ldiglich die Adresslistensammlung sowie ein Speicherfeld für Limits die in ISPConfig überprüft werden.

Schau Dir also mal die vhost.conf.master an, dort findest Du alle notwendigen und vor allem richtigen Variablen für die phpmyadmin Konfiguration insbesondere auch den korrekten Pfad zum fcgi Startr script der Webseite.


----------



## GTB (8. März 2012)

das habe ich schon verstanden.

Ich wollte nur noch wissen, wo die Eingabe für den Pfad zu PMA verarbeitet wird.

Wird damit die /etc/phpmyadmin/apache.conf neu geschrieben ?

oder wo wird der Alias für PMA dann gemacht ?

Gruss


----------



## Till (8. März 2012)

> Ich wollte nur noch wissen, wo die Eingabe für den Pfad zu PMA verarbeitet wird.


Damit wird ein Link im Interface eingeblendet, mehr nicht. Die dazu korrespondierende Konfiguration wird nicht von ISPConfig erstellt soenderm vom phpmyadmin paket der Linux Distribution.

Du kannst übrigens phpmyadmin ganz einfach per mod_php laufen lassen auch wenn die Webseiten über fastcgi laufen, dazu editierst Du die apache phpmyadmin.conf datei und fügst folgendes ein:


```
<Directory /usr/share/phpmyadmin>
  Options FollowSymLinks
  <IfModule mod_php5.c>
    AddType application/x-httpd-php .php
    php_value include_path .
    php_admin_value upload_tmp_dir /tmp
    php_admin_value open_basedir /usr/share/phpmyadmin:/etc/phpmyadmin
    php_flag register_globals off
  </IfModule>
```
Denn wenn Du fastcgi für die Webseiten einsetzt dann sollte auch immer suexec an sein und suexec funktioniert aber nicht für Seiten die in /usr/share liegen, daher nimmt man dafür den Ansatz mit mod_php und nicht die Konfiguration die Du oben beschrieben hast.


----------



## GTB (8. März 2012)

mod_php ist bei mir aber nicht installiert, da ich den MPM-Worker installiert habe, und der kann kein mod_php

Deshalb auch mein Lösungsweg.

Gruss


----------



## Till (8. März 2012)

Dann geht aber auch kein Suexec was das setup unsicherer macht da alle Scripte unter dem apache User laufen. Das kann man machen wenn der Server nicht mehr als eine Webseite hostet, bei mehreren Webseiten würde ich das aber nicht empfehlen. Wenn Dir apache zu langsam ist, dann nimm lieber gleich nginx.


----------



## GTB (8. März 2012)

nginx kann aber keine htaccess Dateien verarbeiten, die aber für die Seiten die darauf laufen notwendig sind.

Gruss


----------



## Till (8. März 2012)

Auf nginx läuft an sich jedes cms, denn dass was die .htaccess Dateien bewirken gibt es auch in nginx, die Regeln heißen nur anders und stehen im custom nginx Direktiven Feld.


----------

