Puncte:0

Împiedicați Apache2 să execute CGI în Static Directory

drapel cn

Rulez un server web Apache 2 care rulează pe Ubuntu 20.04 LTS. Am un handler CGI Python activat pentru /var/www/html directorul, care este DocumentRoot. Mă întreb cum să exclud un anumit director de la rularea CGI pentru fișierele Python.
Aici, în configurația mea CGI:

<Directory "/var/www/html">
    Options +ExecCGI
    AddHandler cgi-script .py
        <IfModule mod_rewrite.c>
                RewriteEngine On
                RewriteCond %{REQUEST_FILENAME} !-d
                RewriteCond %{REQUEST_FILENAME}\.py -f
                RewriteRule ^(.*)$ $1.py
        </IfModule>
</Directory>

<Directory "/var/www/html/static/cdn">
        DirectoryIndex disabled
        Options +Indexes -ExecCGI
        AllowOverride None
        Require all granted
</Directory>

În /static/cdn director, vreau .py fișierele să fie servite la fel ca orice alt fișier static, în loc să fie executate ca CGI. Aici este un copac al cdn director:

.
âââ checkForUpdates.exe
âââ checkForUpdates.py
âââ findLogErrors
    âââ botCriteria.json
    âââ cleanup.json
    âââ findLogErrors.exe
    âââ version.json

1 director, 6 fișiere

Eu pot sa vezi indexurile directorului în browserul web, așa cum se dorește. Pot vedea sau descărca orice fișier din acest director, cu excepția checkForUpdates.py. Serverul nu încearcă să-l execute ca CGI, dă un 403. Permisiunile pe checkForUpdates.py sunt aceleași cu celelalte fișiere:

nbroyles@webserver:/var/www/html/static/cdn$ ls -altr
total 15548
-rwxrwxr-x 1 www-data web 15901526 17 noiembrie 11:37 checkForUpdates.exe
drwxrwxr-x 7 www-data web 4096 Nov 19 11:13 ..
drwxrwxr-x 2 www-data web 4096 Dec 23 09:41 findLogErrors
drwxrwxr-x 3 www-data web 4096 Dec 23 09:49 .
-rwxrwxr-x 1 www-data web 2072 23 decembrie 09:49 checkForUpdates.py

Cum pot vedea .py fișier la fel ca oricare dintre .json sau .executabil fisiere? Sunt sigur că îmi lipsește ceva simplu din configurația mea. Orice ajutor este foarte apreciat!

Puncte:1
drapel jp

Trebuie să adaugi SetHandler handler implicit în <Directory "/var/www/html/static/cdn">

Noah Broyles avatar
drapel cn
Acesta funcționează pentru a afișa fișierul Python, dar acum indecșii nu se afișează.
drapel jp
Apoi schimbați-l în `SetHandler default-handler .py`
Noah Broyles avatar
drapel cn
`apachectl configtest` arată că `SetHandler acceptă un argument, un nume de handler care suprascrie orice alt handler configurat`, dar l-am schimbat în `AddHandler` și totul este bine. Mulțumesc!

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.