Jump to content

Apache + MOD_WSGI, mod rewrite


sir_baobao
 Share

Recommended Posts

  • 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ć?

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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ę.

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...