Skocz do zawartości

Apache + MOD_WSGI, mod rewrite


sir_baobao

Rekomendowane odpowiedzi

  • sir_baobao changed the title to Apache + MOD_WSGI, mod rewrite
22 godziny temu, sunrise napisał:

Jeżeli zainstalowałeś apache na Fedorze to mod_rewrite nie trzeba instalować, bo już jest zainstalowany znajduje się w pakiecie httpd-core

Natomiast mod_wsgi zainstalujesz poleceniem

sudo dnf install python3-mod_wsgi

 

Tak, zainstalowałem apache. On jest zainstalowany, ale czy on już działa po instalacji apache, czy trzeba coś skonfigurować? Tak samo z tym mod_wsgi. Wcześniej siedziałem na ubuntu, tam było trochę inaczej. Chciałbym zmienić wczytywanie z folderu html na swój inny np. website, tak samo chciałbym mieć plik testowy od modu wsgi w /var/www/mod_wsgi/test_wsgi.py 

Po wpisaniu mojego lokalnego ip (podam przyklad) 

192.168.1.200/wsgi

Ma się wyświetlać działający skrypt z /var/www/mod_wsgi/test_wsgi.py 

Jak to zrobić?

Odnośnik do komentarza
Udostępnij na innych stronach

1 godzinę temu, sir_baobao napisał:

On jest zainstalowany, ale czy on już działa po instalacji apache, czy trzeba coś skonfigurować?

Oczywiście, że trzeba konfigurować, bo przecie to Ty decydujesz co chcesz pozmieniać w url

1 godzinę temu, sir_baobao napisał:

Tak samo z tym mod_wsgi.

Tak samo trzeba konfigurować, nie jest tak jak z php, że wrzucisz plik i działa.

Przykład

Tworzysz plik /etc/httpd/conf.d/test.conf o zawartości

WSGIScriptAlias /test /var/www/test/app.py
WSGIProcessGroup test_wsgi_process
WSGIDaemonProcess test_wsgi_process threads=2

<Directory /var/www/test>
SetHandler wsgi-script
Options ExecCGI
</Directory>

tworzysz katalog /var/www/test

tworzysz plik /var/www/test/app.py o zawartości

def application(environ, start_response):
    status = '200 OK'
    html = b'<html>\n' \
           b'<body>\n' \
           b'<div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;">\n' \
           b'mod_wsgi Test Page\n' \
           b'</div>\n' \
           b'</body>\n' \
           b'</html>\n'
    response_header = [('Content-type', 'text/html')]
    start_response(status, response_header)
    return [html]

Restartujesz apacha poleceniem

systemctl restaqrt httpd

i jeżeli nigdzie nie popełniłeś błędu, to po wejściu na stronę http://localhost/test pokaże Ci się taki obrazek

wsgi.png

Odnośnik do komentarza
Udostępnij na innych stronach

10 minut temu, sunrise napisał:

Oczywiście, że trzeba konfigurować, bo przecie to Ty decydujesz co chcesz pozmieniać w url

Tak samo trzeba konfigurować, nie jest tak jak z php, że wrzucisz plik i działa.

Przykład

Tworzysz plik /etc/httpd/conf.d/test.conf o zawartości

WSGIScriptAlias /test /var/www/test/app.py
WSGIProcessGroup test_wsgi_process
WSGIDaemonProcess test_wsgi_process threads=2

<Directory /var/www/test>
SetHandler wsgi-script
Options ExecCGI
</Directory>

tworzysz katalog /var/www/test

tworzysz plik /var/www/test/app.py o zawartości

def application(environ, start_response):
    status = '200 OK'
    html = b'<html>\n' \
           b'<body>\n' \
           b'<div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;">\n' \
           b'mod_wsgi Test Page\n' \
           b'</div>\n' \
           b'</body>\n' \
           b'</html>\n'
    response_header = [('Content-type', 'text/html')]
    start_response(status, response_header)
    return [html]

Restartujesz apacha poleceniem

systemctl restaqrt httpd

i jeżeli nigdzie nie popełniłeś błędu, to po wejściu na stronę http://localhost/test pokaże Ci się taki obrazek

wsgi.png

Dzięki, wsgi mi już działa. Apropo tego mod_rewrite, to miałeś na myśli że mogę sobie .htaccess wrzucić do folderu i on będzie działał jak mu wpisze regułki? W sensie że nie trzeba go podpinać? Kurcze, wszystko inaczej niż w ubuntu i się gubię :D

Odnośnik do komentarza
Udostępnij na innych stronach

7 minut temu, sir_baobao napisał:

mogę sobie .htaccess wrzucić do folderu i on będzie działał jak mu wpisze regułki?

O ile dobrze pamiętam to nie, bo domyślnie jest "zablokowane" odczytywanie pliku .htaccess, trzeba go odblokować np. tworząc plik /etc/httpd/conf.d/allow_override.conf

<Directory /var/www/html>
        AllowOverride All
        Require all granted
</Directory>

No i oczywiście przeładowanie apache tak aby odczytał nową konfigurację.

Odnośnik do komentarza
Udostępnij na innych stronach

12 minut temu, sunrise napisał:

O ile dobrze pamiętam to nie, bo domyślnie jest "zablokowane" odczytywanie pliku .htaccess, trzeba go odblokować np. tworząc plik /etc/httpd/conf.d/allow_override.conf

<Directory /var/www/html>
        AllowOverride All
        Require all granted
</Directory>

No i oczywiście przeładowanie apache tak aby odczytał nową konfigurację.

W .htaccess standardowo trzeba wpisać:

RewriteEngine On

A potem jakieś swoje regułki?

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...