PHP, Apache, Fedora · 4 min read · Dec 27, 2025

PHP5-FPM Mit Apache 2.4 (+ mod_proxy_fcgi Modul) Auf Fedora 18 Verwenden

PHP5-FPM Mit Apache 2.4 (+ mod_proxy_fcgi Modul) Auf Fedora 18 Verwenden

Version 1.0
Autor: Falko Timme
Folge mir auf Twitter

Dieses Tutorial zeigt, wie Sie einen Apache 2.4-Webserver auf einem Fedora 18-Server mit PHP5 (über PHP-FPM) und MySQL-Unterstützung installieren können. PHP-FPM (FastCGI Process Manager) ist eine alternative PHP-FastCGI-Implementierung mit einigen zusätzlichen Funktionen, die für Websites jeder Größe nützlich sind, insbesondere für stärker frequentierte Seiten. Auf Apache 2.4 benötigen wir das mod_proxy_fcgi-Modul von Apache, um es zum Laufen zu bringen.

Ich gebe keine Garantie, dass dies bei Ihnen funktioniert!

1 Vorbemerkung

In diesem Tutorial verwende ich den Hostnamen server1.example.com mit der IP-Adresse 192.168.0.100. Diese Einstellungen können bei Ihnen abweichen, daher müssen Sie sie gegebenenfalls anpassen.

2 MySQL 5 installieren

Um MySQL zu installieren, machen wir Folgendes:

yum install mysql mysql-server

Dann erstellen wir die Systemstartlinks für MySQL (damit MySQL automatisch startet, wenn das System bootet) und starten den MySQL-Server:

systemctl enable mysqld.service   
systemctl start mysqld.service

Setzen Sie Passwörter für das MySQL-Root-Konto:

mysql_secure_installation

[root@server1 ~]# mysql_secure_installation

HINWEIS: DAS AUSFÜHREN ALLER TEILE DIESER SCRIPTES WIRD FÜR ALLE MySQL
SERVER IM PRODUKTIONSEINSATZ EMPFOHLEN! BITTE LESEN SIE JEDEN SCHRITT SORGFÄLTIG!

Um sich bei MySQL anzumelden, um es zu sichern, benötigen wir das aktuelle
Passwort für den Root-Benutzer. Wenn Sie MySQL gerade installiert haben und
noch kein Root-Passwort festgelegt haben, ist das Passwort leer,
also sollten Sie hier einfach die Eingabetaste drücken.

Geben Sie das aktuelle Passwort für root ein (drücken Sie Enter für keines):
OK, Passwort erfolgreich verwendet, weiter…

Das Festlegen des Root-Passworts stellt sicher, dass niemand
auf den MySQL-Root-Benutzer ohne die entsprechende Autorisierung zugreifen kann.

Root-Passwort festlegen? [Y/n] <– ENTER
Neues Passwort: <– yourrootsqlpassword
Neues Passwort erneut eingeben: <– yourrootsqlpassword
Passwort erfolgreich aktualisiert!
Privilegientabellen werden neu geladen..
… Erfolg!

Standardmäßig hat eine MySQL-Installation einen anonymen Benutzer,
der es jedem ermöglicht, sich bei MySQL anzumelden, ohne ein
Benutzerkonto erstellen zu müssen. Dies ist nur für Tests gedacht,
und um die Installation etwas reibungsloser zu gestalten.
Sie sollten sie entfernen, bevor Sie in eine
Produktionsumgebung wechseln.

Anonyme Benutzer entfernen? [Y/n] <– ENTER
… Erfolg!

Normalerweise sollte root nur von ‘localhost’ aus
verbunden werden dürfen. Dies stellt sicher, dass
niemand das Root-Passwort über das Netzwerk erraten kann.

Root-Login aus der Ferne verbieten? [Y/n] <– ENTER
… Erfolg!

Standardmäßig kommt MySQL mit einer Datenbank namens ‘test’,
die jeder zugreifen kann. Dies ist ebenfalls nur für Tests gedacht,
und sollte entfernt werden, bevor Sie in eine
Produktionsumgebung wechseln.

Testdatenbank und Zugriff darauf entfernen? [Y/n] <– ENTER

  • Testdatenbank wird gelöscht…
    … Erfolg!
  • Berechtigungen für die Testdatenbank werden entfernt…
    … Erfolg!

Das Neuladen der Berechtigungstabellen stellt sicher, dass
alle bisher vorgenommenen Änderungen sofort wirksam werden.

Berechtigungstabellen jetzt neu laden? [Y/n] <– ENTER
… Erfolg!

Aufräumen…

Alles erledigt! Wenn Sie alle oben genannten Schritte abgeschlossen haben,
sollte Ihre MySQL-Installation jetzt sicher sein.

Danke, dass Sie MySQL verwenden!

[root@server1 ~]#

3 Apache2 installieren

Apache2 ist als Fedora-Paket verfügbar, daher können wir es wie folgt installieren:

yum install httpd

Dies ist Apache Version 2.4, die nicht mit dem mod_fastcgi-Modul funktioniert, das in Apache 2.2 für PHP-FPM verwendet wurde (siehe PHP5-FPM Mit Apache2 Auf Fedora 17); wir werden daher das mod_proxy_fcgi-Modul verwenden.

Jetzt konfigurieren Sie Ihr System, um Apache beim Booten zu starten…

systemctl enable httpd.service

… und starten Sie Apache:

systemctl start httpd.service

Richten Sie jetzt Ihren Browser auf http://192.168.0.100, und Sie sollten die Platzhalterseite von Apache2 sehen:

Das Standard-Dokumentenverzeichnis von Apache ist /var/www/html auf Fedora, und die Konfigurationsdatei ist /etc/httpd/conf/httpd.conf. Zusätzliche Konfigurationen werden im Verzeichnis /etc/httpd/conf.d/ gespeichert.

4 PHP5 installieren

Wir können PHP5 in Apache2 über PHP-FPM und das mod_proxy_fcgi-Modul von Apache zum Laufen bringen. Das mod_proxy_fcgi-Modul sollte bereits installiert und aktiviert sein:

ls -l /usr/lib64/httpd/modules/mod_proxy*
[root@server1 modules]# ls -l /usr/lib64/httpd/modules/mod_proxy*  
-rwxr-xr-x 1 root root 52128 Okt 26 16:15 /usr/lib64/httpd/modules/mod_proxy_ajp.so  
-rwxr-xr-x 1 root root 39984 Okt 26 16:15 /usr/lib64/httpd/modules/mod_proxy_balancer.so  
-rwxr-xr-x 1 root root 19400 Okt 26 16:15 /usr/lib64/httpd/modules/mod_proxy_connect.so  
-rwxr-xr-x 1 root root 11192 Okt 26 16:15 /usr/lib64/httpd/modules/mod_proxy_express.so  
-rwxr-xr-x 1 root root 19368 Okt 26 16:15 /usr/lib64/httpd/modules/mod_proxy_fcgi.so  
-rwxr-xr-x 1 root root 11152 Okt 26 16:15 /usr/lib64/httpd/modules/mod_proxy_fdpass.so  
-rwxr-xr-x 1 root root 44184 Okt 26 16:15 /usr/lib64/httpd/modules/mod_proxy_ftp.so  
-rwxr-xr-x 1 root root 39968 Okt 26 16:15 /usr/lib64/httpd/modules/mod_proxy_http.so  
-rwxr-xr-x 1 root root 19464 Okt 26 16:15 /usr/lib64/httpd/modules/mod_proxy_scgi.so  
-rwxr-xr-x 1 root root 98016 Okt 26 16:15 /usr/lib64/httpd/modules/mod_proxy.so  
[root@server1 modules]#
cat /etc/httpd/conf.modules.d/00-proxy.conf

| [...] # Diese Datei konfiguriert alle Proxy-Module: LoadModule proxy_module modules/mod_proxy.so LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_express_module modules/mod_proxy_express.so LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so LoadModule proxy_fdpass_module modules/mod_proxy_fdpass.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_scgi_module modules/mod_proxy_scgi.so [...] |

Wir können PHP-FPM wie folgt installieren:

yum install php-fpm

Öffnen Sie dann /etc/php.ini:

vi /etc/php.ini

Um Fehler wie

[08-Aug-2011 18:07:08] PHP Warning: phpinfo(): Es ist nicht sicher, sich auf die Zeitzoneneinstellungen des Systems zu verlassen. Sie sind *verpflichtet*, die Einstellung date.timezone oder die Funktion date_default_timezone_set() zu verwenden. Falls Sie eine dieser Methoden verwendet haben und immer noch diese Warnung erhalten, haben Sie wahrscheinlich den Zeitzonenbezeichner falsch geschrieben. Wir haben 'Europe/Berlin' für 'CEST/2.0/DST' stattdessen in /usr/share/nginx/html/info.php in Zeile 2 ausgewählt

… in /var/log/php-fpm/www-error.log, wenn Sie ein PHP-Skript in Ihrem Browser aufrufen, sollten Sie date.timezone in /etc/php.ini festlegen:

| [...] [Date] ; Definiert die Standardzeitzone, die von den Datumsfunktionen verwendet wird ; http://php.net/date.timezone date.timezone = "Europe/Berlin" [...] |

Sie können die korrekte Zeitzone für Ihr System ermitteln, indem Sie Folgendes ausführen:

cat /etc/sysconfig/clock
[root@server1 ~]# cat /etc/sysconfig/clock  
ZONE="Europe/Berlin"  
[root@server1 ~]#

Erstellen Sie als Nächstes die Systemstartlinks für php-fpm und starten Sie es:

systemctl enable php-fpm.service  
systemctl start php-fpm.service

PHP-FPM ist ein Daemon-Prozess (mit dem Init-Skript /etc/init.d/php-fpm), der einen FastCGI-Server auf Port 9000 ausführt.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.