Ich habe eine Reihe von Websites, die gut mit nginx + php-fastcgi funktionieren und ich habe keine Beschwerden dort! Die einzige Sache, die nicht funktioniert, ist eine PHP-Galerieanwendung namens Gallery3. Leider muss ich Apache mit dieser Anwendung verwenden. Das Problem, das ich habe, ist wie folgt:Apache + Nginx reverse proxy nicht standardmäßig index.php
gallery.wfto.cc - funktioniert nicht (lädt eine unbenannte Datei den PHP-Code von index.php enthält, weil es nicht analysiert zu werden)
Galerie. wfto.cc/ - funktioniert nicht (gleiche)
gallery.wfto.cc/index.php - funktioniert nicht (gleiche)
gallery.wfto.cc/index.php/- Werke.
gallery.wfto.cc:9001 (alle Varianten) - Works.
Ich habe keine Ahnung was los ist. Ich habe die meisten meiner Konfigurationen unten aufgeführt. Die /etc/nginx/conf.d/proxy.conf ist eine ... allgemeine Proxy-Konfiguration, nichts besonderes.
##NGINX CONFIG##
server {
listen 80; ## listen for ipv4
listen [::]:80 default ipv6only=on; ## listen for ipv6
root /var/www/vhosts/wfto.cc/subdomains/gallery;
server_name gallery.wfto.cc;
access_log /var/log/nginx/gallery.wfto.cc.access.log;
location/{
proxy_pass http://127.0.0.1:9001;
include /etc/nginx/conf.d/proxy.conf;
}
}
## APACHE CONFIG ##
<VirtualHost *:9001>
ServerAdmin [email protected]
DocumentRoot /var/www/vhosts/wfto.cc/subdomains/gallery
<IfModule mod_fastcgi.c>
AddHandler php5-fcgi .php
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization
</IfModule>
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/vhosts/wfto.cc/subdomains/gallery/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Sind Sie sicher, dass der nginx-Servereintrag tatsächlich verwendet wird und nicht versehentlich ein anderer (z. B. der Domänenname in der URL falsch geschrieben wurde)? Überprüfen Sie das Zugriffsprotokoll, um sicherzugehen. Einige etwas dumme Dinge zu überprüfen: Starten Sie nginx neu und stellen Sie sicher, dass kein laufender Prozess nach dem Stoppen aktiv ist. Ändern Sie "root" in ein leeres Verzeichnis (wenn es alles an Apache weitergibt, benötigt nginx keinen Zugriff auf den Inhalt). –
Ich änderte den Stamm, um auf ein Null-Verzeichnis (leeres Verzeichnis) zu zeigen, aber das ändert nichts. Dieser Serverblock ist der einzige, der den Datenverkehr in dieser Subdomäne abfängt. – meinemitternacht
Nachdem Sie in ein leeres Verzeichnis gewechselt haben, haben Sie das Zugriffsprotokoll von Apache überprüft, ob Ihr Test tatsächlich überhaupt zu Apache gelangt? Wenn Sie immer noch "das gleiche Ergebnis" erhalten (ich gehe davon aus, dass der Inhalt von index.php heruntergeladen wird), könnte dies auch bedeuten, dass Ihr Browser einfach ein zwischengespeichertes Ergebnis zurückgibt. –