# php-fcgi-starter not in docroot



## HomerS (12. Apr. 2016)

Moin zusammen,

seit gestern bin ich auf der suche nach einer lösung für dieses Problem.
Vorweg... ich habe in der ispconfig.vhost folgendes auskommentiert, damit das ControlPanel überhaupt öffnet ohne mir einen Fehler 500 anzuzeigen:


```
<IfModule mod_fcgid.c>
    DocumentRoot /var/www/ispconfig/
#    SuexecUserGroup ispconfig ispconfig
    <Directory /var/www/ispconfig/>
```
Gesagt getan... ich bin dann in das CP und habe 2 Seiten erstellt, wobei die 2. überhaupt nicht öffnen möchte sondern mir nur einen 500 an den Kopf haut. Die /var/log/apache2/suexec.log sagt folgendes.
Ich bin mit meinem Latein am Ende.

System Debian Jessie

[2016-04-12 10:34:50]: uid: (10003/ispconfig) gid: (10004/10004) cmd: .php-fcgi-starter
[2016-04-12 10:34:50]: command .php-fcgi-starter not in docroot (10003)


----------



## Till (12. Apr. 2016)

Zitat von HomerS:


> Vorweg... ich habe in der ispconfig.vhost folgendes auskommentiert, damit das ControlPanel überhaupt öffnet ohne mir einen Fehler 500 anzuzeigen:


Dann kann es nicht mehr gehen. Denn ohne die Zeile läuft es unter einem falschen User. Füge die zeile mal wieder ein und prüfe dann ob das suexec Modul im apache an ist.


----------



## Till (12. Apr. 2016)

Zitat von HomerS:


> [2016-04-12 10:34:50]: uid: (10003/ispconfig) gid: (10004/10004) cmd: .php-fcgi-starter
> [2016-04-12 10:34:50]: command .php-fcgi-starter not in docroot (10003)


Hast Du vielleicht abweichend vom prfect server Tutorial Deine webs woanders hin gelegt als in /var/www oder ist /var/www ein symlink der auf ein anderes verzeichnis verweist?


----------



## HomerS (13. Apr. 2016)

Suexec ist eingeschaltet und der Pfad war vorher auch schon bei /var/www


----------



## Till (13. Apr. 2016)

Und welche Anleitung hast Du zur installation verwendet?


----------



## HomerS (13. Apr. 2016)

*The Perfect Server - Debian 8 Jessie (Apache2, BIND, Dovecot, ISPConfig 3)*
howtoforge.com/tutorial/perfect-server-debian-8-jessie-apache-bind-dovecot-ispconfig-3/

Inzwischen laufen die Seiten, aber wenn ich die Zeile 
SuexecUserGroup ispconfig ispconfig in der ispconfig.vhost
nicht auskommentiere, läuft das CP nicht bzw. es gibt nur ein 
*500 Internal Server Error*


----------



## Till (13. Apr. 2016)

Das habe ich gestern auch gerade installiert, läuft alles problemlos. Entweder Du hast irgendwo einen Schritt vergessen oder es gibt ein problem mit Deinem Basis System. Du bist auch wirklich von einem frisch installierten minimal debian 8 gestartet? da war vorher kein anderes control panel installiert oder ein LAMP server oder sowas?


----------



## HomerS (13. Apr. 2016)

Frisch war es nicht. Erneutes Installieren des Betriebssystemes kommt auch nicht infrage, da das Teil mehrere Minecraft server laufen hat. Dem das Teil gehört meinte er hätte Plesk drauf gehabt, aber keine Lizens dafür, als habe ich Plesk entfernt mit dem Uninstall script von plesk.

Wie gesagt, an sich läuft alles ohne Probleme wenn die SuexecUserGroup auskommentiert ist.


----------



## Till (13. Apr. 2016)

Zitat von HomerS:


> Frisch war es nicht. Erneutes Installieren des Betriebssystemes kommt auch nicht infrage, da das Teil mehrere Minecraft server laufen hat. Dem das Teil gehört meinte er hätte Plesk drauf gehabt, aber keine Lizens dafür, als habe ich Plesk entfernt mit dem Uninstall script von plesk.


Dann wird es leider nicht so einfach gehen, Plesk verbiegt das komplette system. Danach läuft kein panel das systempakete von Debain nutzt mehr sauber.



Zitat von HomerS:


> Wie gesagt, an sich läuft alles ohne Probleme wenn die SuexecUserGroup auskommentiert ist.


Das ist aber ein elementarer bestandteil vom apache, das ist für jede website und für ispconfig notwendig, sonst läuft da gernichts und vor allem ist es exterm unsicher ohne suexec.

Dann müssen wir halt versuchen es weiter zu debuggen wenn Du möchtest. Also erstmal muss suxece wieder an sein. Dann ruf mal ispconfig auf und schau ob Du fehler im apache error.log bekommst oder im suexec.log. wenn nichts im apache error.log drin steht dann kannst Du mal versuchen eine ErrorLog Direktive mit einem eigenen log in den ispconfig.vhost einzubauen, damit wir ras finden was plesk mit suexec angestellt hat so dass es nicht mehr geht.


----------



## HomerS (13. Apr. 2016)

*/var/log/apache2/error.log*

```
[Wed Apr 13 11:07:25.736433 2016] [mpm_prefork:notice] [pid 22046] AH00169: caught SIGTERM, shutting down
[ 2016-04-13 11:07:26.9205 24651/7f9a39e4c740 agents/Watchdog/Main.cpp:538 ]: Options: { 'analytics_log_user' => 'nobody', 'default_group' => 'nogroup', 'default_python' => 'python', 'default_ruby' => '/usr/bin/ruby', 'default_user' => 'nobody', 'log_level' => '0', 'max_pool_size' => '6', 'passenger_root' => '/usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini', 'passenger_version' => '4.0.53', 'pool_idle_time' => '300', 'temp_dir' => '/tmp', 'union_station_gateway_address' => 'gateway.unionstationapp.com', 'union_station_gateway_port' => '443', 'user_switching' => 'true', 'web_server_passenger_version' => '4.0.53', 'web_server_pid' => '24648', 'web_server_type' => 'apache', 'web_server_worker_gid' => '33', 'web_server_worker_uid' => '33' }
[ 2016-04-13 11:07:26.9286 24654/7fa1c1f07740 agents/HelperAgent/Main.cpp:650 ]: PassengerHelperAgent online, listening at unix:/tmp/passenger.1.0.24648/generation-0/request
[ 2016-04-13 11:07:26.9459 24659/7f6f9d7bb780 agents/LoggingAgent/Main.cpp:321 ]: PassengerLoggingAgent online, listening at unix:/tmp/passenger.1.0.24648/generation-0/logging
[ 2016-04-13 11:07:26.9461 24651/7f9a39e4c740 agents/Watchdog/Main.cpp:728 ]: All Phusion Passenger agents started!
[Wed Apr 13 11:07:26.947473 2016] [ssl:warn] [pid 24648] AH01906: MEINE-DOMAIN.de:8080:0 server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[Wed Apr 13 11:07:26.947555 2016] [ssl:warn] [pid 24648] AH01909: MEINE-DOMAIN.de:8080:0 server certificate does NOT include an ID which matches the server name
[Wed Apr 13 11:07:26.947766 2016] [suexec:notice] [pid 24648] AH01232: suEXEC mechanism enabled (wrapper: /usr/lib/apache2/suexec)
[Wed Apr 13 11:07:27.013370 2016] [auth_digest:notice] [pid 24671] AH01757: generating secret for digest authentication ...
[Wed Apr 13 11:07:27.017964 2016] [:notice] [pid 24676] FastCGI: process manager initialized (pid 24676)
[ 2016-04-13 11:07:27.0238 24678/7f7d5b8ca740 agents/Watchdog/Main.cpp:538 ]: Options: { 'analytics_log_user' => 'nobody', 'default_group' => 'nogroup', 'default_python' => 'python', 'default_ruby' => '/usr/bin/ruby', 'default_user' => 'nobody', 'log_level' => '0', 'max_pool_size' => '6', 'passenger_root' => '/usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini', 'passenger_version' => '4.0.53', 'pool_idle_time' => '300', 'temp_dir' => '/tmp', 'union_station_gateway_address' => 'gateway.unionstationapp.com', 'union_station_gateway_port' => '443', 'user_switching' => 'true', 'web_server_passenger_version' => '4.0.53', 'web_server_pid' => '24671', 'web_server_type' => 'apache', 'web_server_worker_gid' => '33', 'web_server_worker_uid' => '33' }
[ 2016-04-13 11:07:27.0318 24681/7f3bbbab7740 agents/HelperAgent/Main.cpp:650 ]: PassengerHelperAgent online, listening at unix:/tmp/passenger.1.0.24671/generation-0/request
[ 2016-04-13 11:07:27.0498 24689/7f4bbd0ca780 agents/LoggingAgent/Main.cpp:321 ]: PassengerLoggingAgent online, listening at unix:/tmp/passenger.1.0.24671/generation-0/logging
[ 2016-04-13 11:07:27.0502 24678/7f7d5b8ca740 agents/Watchdog/Main.cpp:728 ]: All Phusion Passenger agents started!
[Wed Apr 13 11:07:27.110706 2016] [ssl:warn] [pid 24671] AH01906: MEINE-DOMAIN.de:8080:0 server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[Wed Apr 13 11:07:27.110743 2016] [ssl:warn] [pid 24671] AH01909: MEINE-DOMAIN.de:8080:0 server certificate does NOT include an ID which matches the server name
[Wed Apr 13 11:07:27.117912 2016] [mpm_prefork:notice] [pid 24671] AH00163: Apache/2.4.10 (Debian) mod_fastcgi/mod_fastcgi-SNAP-0910052141 mod_fcgid/2.3.9 Phusion_Passenger/4.0.53 OpenSSL/1.0.1k configured -- resuming normal operations
[Wed Apr 13 11:07:27.117971 2016] [core:notice] [pid 24671] AH00094: Command line: '/usr/sbin/apache2'
[Wed Apr 13 11:07:35.672060 2016] [fcgid:warn] [pid 24698] (104)Connection reset by peer: [client 92.212.35.130:54947] mod_fcgid: error reading data from FastCGI server
[Wed Apr 13 11:07:35.672153 2016] [core:error] [pid 24698] [client 92.212.35.130:54947] End of script output before headers: index.php
```
*/var/log/apache2/suexec.log*

```
[2016-04-13 11:07:35]: uid: (10003/ispconfig) gid: (10004/10004) cmd: .php-fcgi-starter
[2016-04-13 11:07:35]: command .php-fcgi-starter not in docroot (10003)
```


----------



## Till (13. Apr. 2016)

Hmm, das docroot eines apache unter debian 8 ist /var/www/, ispconfig liegt unter  /var/www/ispconfig/ und auch der php fcgi starter liegt in /var/www/php..., also auch im docroot, die config ist daher ok und konsistent. das einzige was ich mir noch denken kann ist dass plesk den apache ausgetauscht hat so dass er ein falsches docroot hat. Du könntest mal versuchen den apache und suexec neu zu installieren um sicherzustellen dass Du den original apache von debian hast:

apt-get install --reinstall apache2 apache2.2-common apache2-mpm-prefork apache2-suexec


----------



## HomerS (13. Apr. 2016)

```
#  apt-get install --reinstall apache2 apache2.2-common apache2-mpm-prefork apache2-suexec
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden NEUEN Pakete werden installiert:
  apache2-suexec
0 aktualisiert, 1 neu installiert, 3 erneut installiert, 0 zu entfernen und 81 nicht aktualisiert.
Es müssen noch 0 B von 333 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 23,6 kB Plattenplatz zusätzlich benutzt.
(Lese Datenbank ... 90271 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../apache2_2.4.10-10+deb8u4_amd64.deb ...
Entpacken von apache2 (2.4.10-10+deb8u4) über (2.4.10-10+deb8u4) ...
Vormals nicht ausgewähltes Paket apache2-suexec wird gewählt.
Vorbereitung zum Entpacken von .../apache2-suexec_2.4.10-10+deb8u4_amd64.deb ...
Entpacken von apache2-suexec (2.4.10-10+deb8u4) ...
Vorbereitung zum Entpacken von .../apache2-mpm-prefork_2.4.10-10+deb8u4_amd64.deb ...
Entpacken von apache2-mpm-prefork (2.4.10-10+deb8u4) über (2.4.10-10+deb8u4) ...
Vorbereitung zum Entpacken von .../apache2.2-common_2.4.10-10+deb8u4_amd64.deb ...
Entpacken von apache2.2-common (2.4.10-10+deb8u4) über (2.4.10-10+deb8u4) ...
Trigger für systemd (215-17+deb8u3) werden verarbeitet ...
Trigger für man-db (2.7.0.2-5) werden verarbeitet ...
apache2 (2.4.10-10+deb8u4) wird eingerichtet ...
apache2-suexec (2.4.10-10+deb8u4) wird eingerichtet ...
apache2-mpm-prefork (2.4.10-10+deb8u4) wird eingerichtet ...
apache2.2-common (2.4.10-10+deb8u4) wird eingerichtet ...
root@RedstoneWorld:/etc/apache2# service apache2 restart
```
*Erledigt aber leider keine änderung. Die Meldungen im error.log und suexec.log sind die gleichen... 
Muss noch hinzufügen das ich die suexec-custom installiert hatte (also gestern). *


----------



## florian030 (13. Apr. 2016)

suexec-custom kannst Du nehmen, dass muss die aber auch auf /var/www zeigen. Steht dort ein anderes doc-root, dann geht das nicht. Das ist in suexec nicht definierbar, sondern fester Bestandteil.


----------



## HomerS (13. Apr. 2016)

Was ich auch ganz interessant finde ist, dass ein suexec -V mit nur ein Kommando nicht gefunden ausgibt.
Was ist nur nicht in Ordnung? kann ja nur irgendwo an suexec liegen...


----------



## HomerS (14. Apr. 2016)

Wenn ich die Suexec Gruppe auskommentiert hab läuft ja alles soweit.
Allerdings wirft die suexec.log die gleichen meldungen nur mit anderen benutzern aus.
PHP-Fastcgi läuft nicht bei dem geben die seiten die 404er fehler aus.
Wenn ich aber MOD-PHP oder CGI  einschalte läuft es normal


----------



## Till (14. Apr. 2016)

Der Punkt ist dass Du versuchen musst Suexec wieder zum Laufen zu bringen und die Modifikation die Plesk da gemacht hat rückgängig zu machen. Ohne Suexec wird weder ispconfig noch die darauf gehosteten websites richtig laufen. Zudem wäre es noch sehr unsicher, denn suexec sorgt dafür dass die php prozesse unter den richtigen usern laufen, also user und gruppe ispconfig für das ispconfig nterface und web* user and client* gruppe beim jeweiligen web.




Zitat von HomerS:


> Wenn ich aber MOD-PHP oder CGI einschalte läuft es normal


Dann läuft PHP unter einem falschen Nutzer und kann nicht in die website schreiben.


----------



## HomerS (14. Apr. 2016)

Inzwischen bekomme ich eine Fehlermeldung wenn ich suexec-custom installieren möchte:


```
update-alternatives: Warnung: Neuinstallation der Alternative /usr/lib/apache2/suexec-pristine ist erzwungen, weil Linkgruppe suexec defekt ist
update-alternatives: Warnung: /usr/lib/apache2/suexec wird nicht durch einen Link ersetzt
```


----------



## Till (18. Apr. 2016)

Hmm, vielleicht ist /usr/lib/apache2/suexec ein binary von plesk und debian kanne s nicht austauschen oder reparieren. Vielleicht geht es ja mit:

apt-get remove --purge apache2-suexec

und dann prüfen ob suexec binary weg ist, dann ein

apt-get install apache2-suexec


----------



## HomerS (18. Apr. 2016)

Ich volldödel hab die mod_suexec.so aus dem ordner /usr/lib/apache2/modules gelöscht >.<
Wat nu


----------



## Till (18. Apr. 2016)

Versuch mal ein:

apt-get install --reinstall apache2-suexec

und schau mal, ob sie dann wieder da ist.


----------



## HomerS (18. Apr. 2016)

nöpe ... so ein mist


----------



## HomerS (22. Apr. 2016)

Habe die suexec.so wieder da...

Die Permissions haben irgendwie nicht so gestimmt. habe folgendes gemacht, danach gehts:


Permissions und Besitzer in /var/www/php-fcgi-scripts/ispconfig

chmod 755
chown ispconfig:ispconfig

------------------------
Kann als Erledigt markiert werden bzw. gelöst...
Danke für eure Hilfe


----------



## sandrix (3. Mai 2021)

Finally we solved this issue:
just uninstall apache2-suexec-*
go to /usr/lib/apache2
remove "suexec" file
then reinstall /usr/lib/apache2/suexec-pristine

after that, you have a symbolic link called "suexec" that point to "/etc/alternatives/suexec", that is a link again, that point to "/etc/alternatives/suexec/suexec-pristine"

.. and all is running!


----------

