NGINX Direktiven für Joomla in ISPConfig anpassen

NetRocker

New Member
Hallo,

mein System ist:

Debian 10
ISP Config 3.1.15p3
nginx/1.14.2
5.5.5-10.3.22-MariaDB-0+deb10u1
7.3.15-4+0~20200224.55+debian10~1.gbpbea824
Joomla 3.9.16


Mein Problem ist:

Hallo,

ich würde gerne meinen /images Ordner auf ein anderes Server Laufwerk verschieben.

Leider lassen die Einstellungen im Media Manager nur Unterverzeichnisse im Stammverzeichnis zu. Deshalb habe ich den /images Ordner auf das gewünschte Laufwerk verschoben , Verzeichnisrechte angepasst und dann einen Symlink im Stammverzeichnis erstellt.

Der Inhalt des /images Ordner wird auf der Webseite problemlos angezeigt, aber der MediaManager bemängelt: "JFolder: :folder: Der Pfad ist kein Verzeichnis! Pfad: /var/www/clients/client1/web2/web/images"

Hat jemand einen Tipp für mich wie ich das lösen kann?

VG Tom

Wir sind in dem anderen Forum zu dem vorläufigen Erkenntnis gekommen, das es wohl an der .htaccess +Options FollowSymlinks liegen könnte.

Die Joomla .htaccess beinhaltet:


Code:
## No directory listings
<IfModule autoindex>
  IndexIgnore *
</IfModule>

## Suppress mime type detection in browsers for unknown types
<IfModule mod_headers.c>
Header always set X-Content-Type-Options "nosniff"
</IfModule>

## Can be commented out if causes errors, see notes above.
Options +FollowSymlinks
Options -Indexes

## Mod_rewrite in use.

RewriteEngine On

## Begin - Rewrite rules to block out some common exploits.
# If you experience problems on your site then comment out the operations listed
# below by adding a # to the beginning of the line.
# This attempts to block the most common type of exploit `attempts` on Joomla!
#
# Block any script trying to base64_encode data within the URL.
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
# Block any script that includes a <script> tag in URL.
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
# Block any script trying to set a PHP GLOBALS variable via URL.
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block any script trying to modify a _REQUEST variable via URL.
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Return 403 Forbidden header and show the content of the root home page
RewriteRule .* index.php [F]
#
## End - Rewrite rules to block out some common exploits.

## Begin - Custom redirects
#
# If you need to redirect some pages, or set a canonical non-www to
# www redirect (or vice versa), place that code here. Ensure those
# redirects use the correct RewriteRule syntax and the [R=301,L] flags.
#
## End - Custom redirects

##
# Uncomment the following line if your webserver's URL
# is not directly related to physical file paths.
# Update Your Joomla! Directory (just / for root).
##

# RewriteBase /

## Begin - Joomla! core SEF Section.
#
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#
# If the requested path and file is not /index.php and the request
# has not already been internally rewritten to the index.php script
RewriteCond %{REQUEST_URI} !^/index\.php
# and the requested path and file doesn't directly match a physical file
RewriteCond %{REQUEST_FILENAME} !-f
# and the requested path and file doesn't directly match a physical folder
RewriteCond %{REQUEST_FILENAME} !-d
# internally rewrite the request to the index.php script
RewriteRule .* index.php [L]
#
## End - Joomla! core SEF Section.

und mein Eintrag in den ISPConfig nginx Direktiven lautet:


Code:
location / {
    try_files $uri $uri/ /index.php?$args;
    }
location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
         return 403;
         error_page 403 /403_error.html;
    }
client_max_body_size 100M;

Damit betreibe ich meine anderen Joomla Seiten ohne Probleme.

Ich bekam dann folgenden Tipp:

Code:
http {    disable_symlinks off;
}

Aber leider erreiche ich damit auch nicht mein Ziel.

Für Tipps zur Lösung meines Problems wäre ich sehr dankbar.

VG Tom
 

Anhänge

  • images_001.jpg
    images_001.jpg
    424,6 KB · Aufrufe: 312
  • images_002.jpg
    images_002.jpg
    253,4 KB · Aufrufe: 313
  • images_003.jpg
    images_003.jpg
    56,2 KB · Aufrufe: 328
  • images_004.jpg
    images_004.jpg
    116,7 KB · Aufrufe: 365

Till

Administrator
Wir sind in dem anderen Forum zu dem vorläufigen Erkenntnis gekommen, das es wohl an der .htaccess +Options FollowSymlinks liegen könnte.

Das bezweifle ich mal aus verschiedenen Gründen, zum einen ist .htaccess eine Aapache Config Datei, die der nginx weder liest noch versteht. dann ist follow symlinks eine apache direktive, der Fehler den Du beschreibst wird aber mit Sicherheit von PHP generiert, und einen PHP prozess interessiert grundsätzlich, auch auf einem apache server, eine follow symlinks Direktive nicht.

Was bekommst Dud enn als Ergebnis wenn Du als root folgendes aufrufst:

ls -la /var/www/clients/client1/web2/web/images
 

NetRocker

New Member
Hallo Till,

vielen Dank für Deine schnelle Antwort.

Offensichtlich habe ich mich nicht klar genug ausgedrückt.

Die htaccess ist die von Joomla mitgelieferte htaccess.txt mit den empfohlenen Einstellung bei einem Apache Webserver, welche ich nginx natürlich nicht verwende.

Die nginx Direktiven, welche ich verwende


Code:
location / {
    try_files $uri $uri/ /index.php?$args;
    }
location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
         return 403;
         error_page 403 /403_error.html;
    }
client_max_body_size 100M;

sind die von der Joomla Truppe empfohlenen, die von Timme Hosting empfohlenen haben bei mir nicht funktioniert.

Das Ergebnis für ls -la /var/www/clients/client1/web2/web/images
ist

Code:
root@server:~# ls -la /var/www/clients/client1/web2/web/images
lrwxrwxrwx 1 web2 client1 30 Mar 15 19:47 /var/www/clients/client1/web2/web/images -> /media/sdb1/xxxx.eu/images
root@server:~#

VG Tom
 

Anhänge

  • images_005.jpg
    images_005.jpg
    51,6 KB · Aufrufe: 324
Zuletzt bearbeitet:

Till

Administrator
Der Ordner /media/sdb1/xxxx.eu/images existiert und gehört dem user web2 und der Gruppe client1 und Du hast den Ordner auch zum open_basedir Pfad auf dem Optionen Reiter der website in ISPConfig eingefügt?
 

Werbung

Top