php7.0-fpm funktioniert nicht

php7.0-fpm funktioniert nicht

Ich habe Apache auf einem Ubuntu 16.04-Rechner installiert php7.0und mysqlbekomme die Antwort „php läuft nicht“. Hier ist meine vhost-Konfiguration:

<VirtualHost *:80>
  ServerAdmin [email protected]
  ServerName www.example.com
  DocumentRoot /var/www/sites/www.example.com/httpdocs
  ScriptAlias "cgi-bin" "/var/www/sites/wwww.example.com/cgi-bin"

  ErrorLog ${APACHE_LOG_DIR}/www.example.com.error_log

  LogLevel debug

  CustomLog ${APACHE_LOG_DIR}/www.example.com.log combined

    <IfModule mod_fastcgi.c>

    AddHandler php7-fcgi .php
    Action php7-fcgi /php7-fcgi virtual
    Alias /php7-fcgi-kermit /usr/lib/cgi-bin/php7-fcgi-kermit
    FastCgiExternalServer /usr/lib/cgi-bin/php7-fcgi-kermit -socket /run/php/php7.0-fpm.kermit.sock -pass-header Authorization

    <Directory "/usr/lib/cgi-bin">
    Require all granted
    </Directory>
    </IfModule>

  <IfModule mod_fastcgi.c>
    <FilesMatch ".+\.ph(p[345]?|t|tml)$">
      SetHandler php7-fcgi-kermit
    </FilesMatch>
  </IfModule>

</VirtualHost>

Wenn ich versuche, auf die Site zu gehen, wird das PHP nicht analysiert, sondern auf dem Bildschirm gedruckt.

Hat jemand eine Idee?

Ich habe den ganzen anderen FPM-Kram entfernt, der mit Apache 2.2 funktionierte, und habe diese Zeile zur conf hinzugefügt

ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/var/run/php/php7.0-fpm.kermit.sock|fcgi://localhost/var/www/sites/www.example.com/httpdocs  

Jetzt erhalte ich den folgenden Fehler in den Fehlerprotokollen

[Mi 21. März 13:04:35.539499 2018] [proxy:error] [pid 26569] (13)Berechtigung verweigert: AH02454: FCGI: Verbindungsversuch zum Unix-Domain-Socket /var/run/php/php7.0-fpm.kermit.sock (localhost) fehlgeschlagen

Die Berechtigungen für den Socket scheinen korrekt zu sein

srw-rw----  1 kermit   kermit     0 Mar 21 13:00 php7.0-fpm.kermit.sock=  

Ich weiß allerdings nicht, woher das =-Zeichen kommt

Antwort1

Wenn Sie PHP-FPM verwenden, sollten Sie die Verwendung von in Betracht ziehen mod_proxy_fcgi, das neu in Apache 2.4 verfügbar ist und genau für diese Art von Anwendungsfall gedacht ist. DasApache-Wiki-Eintrag für PHP-FPMbietet einige gute Hinweise für den Einstieg.

Dermod_proxy_fcgiDokumentationenthält auch spezifische Beispiele für die Einrichtung von PHP-FPM und diePHP-Dokumentationenthält auch hilfreiche Informationen.

Antwort2

Ihre Socket-Berechtigungen sind falsch: „srw-rw---- 1 kermit kermit 0 Mar 21 13:00 php7.0-fpm.kermit.sock“

Sie sagen, Apache läuft mit WWW-Daten.

Sie müssen entweder www-data zu Kermit hinzufügen oder die Socket-Berechtigungen in der php-fpm-Poolkonfiguration in etwas wie kermit:www-data ändern.

Antwort3

Ich konnte dies beheben, indem ich die Gruppe in www-data änderte, zusammen mit einigen anderen Änderungen, die in späteren Versionen von Apache-22 und 24 auftraten

verwandte Informationen