Nginx Installation · 3 min read · Feb 04, 2026
Installation von Nginx mit PHP5 (und PHP-FPM) und MySQL-Unterstützung auf Fedora 14 - Seite 2
4 Installation von PHP5
Wir können PHP5 in nginx über PHP-FPM zum Laufen bringen (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 beschäftigte Websites). Es gibt kein php-fpm-Paket in den offiziellen Fedora 14-Repositories, aber glücklicherweise bietet das Remi-Repository ein solches Paket.
Um das Remi-Repository zu aktivieren, führen Sie aus:
rpm -ivh http://rpms.famillecollet.com/remi-release-14.rpmÖffnen Sie als Nächstes /etc/yum.repos.d/remi.repo…
vi /etc/yum.repos.d/remi.repo… und ändern Sie enabled auf 1 und gpgcheck auf 0 im [remi]-Abschnitt (aktivieren Sie nicht den [remi-test]-Abschnitt!):
| [remi] name=Les RPM de remi pour Fedora $releasever - $basearch #baseurl=http://rpms.famillecollet.com/fedora/$releasever/remi/$basearch/ mirrorlist=http://rpms.famillecollet.com/fedora/$releasever/remi/mirror enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi failovermethod=priority [remi-test] name=Les RPM de remi en test pour Fedora $releasever - $basearch #baseurl=http://rpms.famillecollet.com/fedora/$releasever/test/$basearch/ mirrorlist=http://rpms.famillecollet.com/fedora/$releasever/test/mirror enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi failovermethod=priority |
Jetzt können wir php-fpm zusammen mit php-cli und einigen PHP5-Modulen wie php-mysql installieren, die Sie benötigen, wenn Sie MySQL aus Ihren PHP-Skripten verwenden möchten:
yum install php-fpm php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidyÖffnen Sie dann /etc/php.ini und entfernen Sie das Kommentarzeichen bei der Zeile cgi.fix_pathinfo=1:
vi /etc/php.ini| [...] ; cgi.fix_pathinfo bietet *echte* PATH_INFO/PATH_TRANSLATED-Unterstützung für CGI. PHP's ; vorheriges Verhalten war, PATH_TRANSLATED auf SCRIPT_FILENAME zu setzen und nicht zu verstehen, ; was PATH_INFO ist. Für weitere Informationen zu PATH_INFO siehe die CGI-Spezifikationen. Das Setzen ; dieses Wertes auf 1 bewirkt, dass PHP CGI seine Pfade an die Spezifikation anpasst. Ein Wert ; von null bewirkt, dass PHP sich wie zuvor verhält. Standard ist 1. Sie sollten Ihre Skripte ; so anpassen, dass sie SCRIPT_FILENAME anstelle von PATH_TRANSLATED verwenden. ; http://www.php.net/manual/en/ini.core.php#ini.cgi.fix-pathinfo cgi.fix_pathinfo=1 [...] |
Erstellen Sie als Nächstes die Systemstartlinks für php-fpm und starten Sie es:
chkconfig --levels 235 php-fpm on
/etc/init.d/php-fpm startPHP-FPM ist ein Daemon-Prozess (mit dem Init-Skript /etc/init.d/php-fpm), der einen FastCGI-Server auf Port 9000 ausführt.
5 Konfiguration von nginx
Die nginx-Konfiguration befindet sich in /etc/nginx/nginx.conf, die wir jetzt öffnen:
vi /etc/nginx/nginx.confDie Konfiguration ist leicht verständlich (Sie können hier mehr darüber erfahren: http://wiki.codemongers.com/NginxFullExample und hier: http://wiki.codemongers.com/NginxFullExample2)
Zuerst (das ist optional) können Sie die Anzahl der Worker-Prozesse erhöhen und den keepalive_timeout auf einen angemessenen Wert setzen:
| [...] worker_processes 5; [...] keepalive_timeout 2; [...] |
Die virtuellen Hosts sind in server {}-Containern definiert. Lassen Sie uns den Standard-vhost wie folgt ändern:
| [...] server { listen 80; server_name _; #charset koi8-r; #access_log logs/host.access.log main; location / { root /usr/share/nginx/html; index index.php index.html index.htm; } error_page 404 /404.html; location = /404.html { root /usr/share/nginx/html; } # leiten Sie Serverfehlerseiten zur statischen Seite /50x.html um # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # leiten Sie die PHP-Skripte an Apache weiter, der auf 127.0.0.1:80 hört # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # leiten Sie die PHP-Skripte an den FastCGI-Server weiter, der auf 127.0.0.1:9000 hört # location ~ \.php$ { root /usr/share/nginx/html; try_files $uri =404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name; include fastcgi_params; } # verweigern Sie den Zugriff auf .htaccess-Dateien, wenn das Dokumentenverzeichnis von Apache # mit dem von nginx übereinstimmt # location ~ /\.ht { deny all; } } [...] |
servername ; macht dies zu einem Standard-Catchall-vhost (natürlich können Sie hier auch einen Hostnamen wie www.example.com angeben).
Im location /-Teil habe ich index.php zur Indexzeile hinzugefügt. root /usr/share/nginx/html; bedeutet, dass das Dokumentenverzeichnis das Verzeichnis /usr/share/nginx/html ist.
Der wichtige Teil für PHP ist die location ~ .php$ {}-Stanza. Kommentieren Sie sie aus, um sie zu aktivieren. Ändern Sie die root-Zeile auf das Dokumentenverzeichnis der Website (z. B. root /usr/share/nginx/html;). Bitte stellen Sie sicher, dass Sie die fastcgi_param-Zeile auf fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name; ändern, da der PHP-Interpreter sonst das PHP-Skript, das Sie in Ihrem Browser aufrufen, nicht finden kann.
Speichern Sie nun die Datei und starten Sie nginx neu:
/etc/init.d/nginx restartErstellen Sie nun die folgende PHP-Datei im Dokumentenstamm /usr/share/nginx/html…
vi /usr/share/nginx/html/info.php| |
Jetzt rufen wir diese Datei in einem Browser auf (z. B. http://192.168.0.100/info.php):

Wie Sie sehen, funktioniert PHP5, und es funktioniert über FPM/FastCGI, wie in der Zeile Server-API angezeigt. Wenn Sie weiter nach unten scrollen, sehen Sie alle Module, die bereits in PHP5 aktiviert sind, einschließlich des MySQL-Moduls:

6 Links
- nginx: http://nginx.net/
- nginx Wiki: http://wiki.codemongers.com/Main
- PHP: http://www.php.net/
- PHP-FPM: http://php-fpm.org/
- MySQL: http://www.mysql.com/
- Fedora: http://fedoraproject.org/
Über den Autor
Falko Timme ist der Eigentümer von Timme Hosting (ultra-schnelles nginx-Webhosting). Er ist der Hauptbetreuer von HowtoForge (seit 2005) und einer der Hauptentwickler von ISPConfig (seit 2000). Er hat auch zum O’Reilly-Buch “Linux System Administration” beigetragen.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.