웹사이트 검색

Ubuntu 22.04에서 Apache 및 mod_wsgi로 Python 스크립트를 실행하는 방법


이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • Ubuntu 22.04(Jammy Jellyfish)
  • Ubuntu 20.04(Focal Fossa)

이 페이지에서

  1. 전제 조건
  2. 시작하기\n
  3. Python 프로그래밍 언어 설치\n
  4. Apache 웹 서버 및 mod_wsgi 모듈 설치
  5. Apache의 WSGI 모듈 구성
  6. Python 3 WSGI 스크립트 테스트
  7. 가상 머신으로 다운로드
    1. VM에 대한 로그인 정보\n

    Apache 모듈 mod_wsgi는 Python 기반 웹 애플리케이션을 호스팅하기 위한 인터페이스를 제공합니다. 고성능 솔루션을 제공하므로 전문 호스팅 시스템에 적합한 선택이지만 소규모 사이트에서도 똑같이 잘 작동합니다. mod_wsgi를 사용하면 Django, Web.py, Werkzug, Chery.py, TurboGears 및 Flask와 같은 Python 프레임워크로 작성된 애플리케이션을 쉽게 배포할 수 있습니다.

    이 튜토리얼에서는 Ubuntu 22.04 LTS에서 Apache 웹 서버를 사용하여 mod_wsgi를 설치하고 구성하는 방법을 보여줍니다. 이 가이드는 Hitesh Jethva의 Ubuntu 20.04용 Apache WSGI 가이드의 업데이트된 버전입니다.

    전제 조건

    • Ubuntu 22.04 서버 또는 데스크탑
    • 이 소프트웨어를 설치하고 구성하려면 시스템 관리자여야 하며 루트 또는 sudo 권한이 있어야 합니다.\n

    시작하기

    시작하기 전에 시스템을 최신 버전으로 업데이트하는 것이 좋습니다. 다음 명령을 사용하여 시스템을 업데이트할 수 있습니다.

    sudo apt update -y
    sudo apt upgrade -y

    시스템을 업데이트한 후 시스템을 다시 시작하여 변경 사항을 적용하십시오.

    Python 프로그래밍 언어 설치

    기본적으로 Python은 Ubuntu 22.04에 사전 설치되어 제공됩니다. Python이 아직 설치되지 않은 경우 다음 명령으로 설치할 수 있습니다.

    sudo apt install python3 libexpat1 -y

    아래 스크린샷은 Python이 이미 설치된 경우 명령의 출력을 보여줍니다.

    이제 다음 단계를 진행하십시오.

    Apache 웹 서버 및 mod_wsgi 모듈 설치

    이 단계에서는 Apache 웹 서버와 mod_wsgi Python 모듈을 설치합니다. 다음 명령을 실행하여 두 애플리케이션을 모두 설치합니다. 종속 소프트웨어 패키지는 자동으로 설치됩니다.

    sudo apt install apache2 apache2-utils ssl-cert libapache2-mod-wsgi-py3 -y

    모든 패키지가 설치되면 다음 단계로 진행할 수 있습니다.

    Apache의 WSGI 모듈 구성

    다음으로 WSGI Apache 모듈을 통해 제공할 Apache 기본 웹 루트 디렉터리 내에 새 Python 스크립트를 생성해야 합니다. 여기에서는 데모 목적으로 작은 Hello World 스크립트를 사용합니다.

    다음 명령을 사용하여 Python 스크립트를 만들 수 있습니다.

    sudo nano /var/www/html/wsgitest.py

    다음 줄을 추가합니다.

    def application(environ, start_response):
        status = '200 OK'
        output = b'Hello Howtoforge!\n'
        response_headers = [('Content-type', 'text/plain'),
                            ('Content-Length', str(len(output)))]
        start_response(status, response_headers)
        return [output]

    파일을 저장하고 닫습니다. 그런 다음 다음 명령을 사용하여 파일의 소유권을 www-data로 변경합니다.

    sudo chown www-data:www-data /var/www/html/wsgitest.py
    sudo chmod 775 /var/www/html/wsgitest.py

    다음으로 HTTP 프로토콜을 통해 이 파일을 제공하도록 Apache 가상 호스트 구성 파일을 편집합니다.

    sudo nano /etc/apache2/sites-enabled/000-default.conf

    다음 줄을 추가합니다.

    WSGIScriptAlias /wsgi /var/www/html/wsgitest.py
    

    라인 직전

    </VirtualHost>

    완전한 가상 호스트 파일은 다음과 같습니다.

    
            # The ServerName directive sets the request scheme, hostname and port that
            # the server uses to identify itself. This is used when creating
            # redirection URLs. In the context of virtual hosts, the ServerName
            # specifies what hostname must appear in the request's Host: header to
            # match this virtual host. For the default virtual host (this file) this
            # value is not decisive as it is used as a last resort host regardless.
            # However, you must set it for any further virtual host explicitly.
            #ServerName www.example.com
    
            ServerAdmin 
            DocumentRoot /var/www/html
    
            # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
            # error, crit, alert, emerg.
            # It is also possible to configure the loglevel for particular
            # modules, e.g.
            #LogLevel info ssl:warn
    
            ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log combined
    
            # For most configuration files from conf-available/, which are
            # enabled or disabled at a global level, it is possible to
            # include a line for only one particular virtual host. For example the
            # following line enables the CGI configuration for this host only
            # after it has been globally disabled with "a2disconf".
            #Include conf-available/serve-cgi-bin.conf
    
            WSGIScriptAlias /wsgi /var/www/html/wsgitest.py
    
    
    
    # vim: syntax=apache ts=4 sw=4 sts=4 sr noet

    텍스트 편집기에서 변경 사항을 저장하고 편집기를 닫습니다. 다음 단계는 Apache 웹 서버를 다시 시작하여 변경 사항을 적용하는 것입니다.

    systemctl restart apache2

    Python 3 WSGI 스크립트 테스트

    이제 Apache HTTP 서버는 HTTP 프로토콜을 통해 Python 파일을 제공하도록 구성되었습니다.

    웹 브라우저를 열고 URL http://your-server-ip/wsgi를 입력합니다. your-server-ip를 서버의 IP 주소로 바꿉니다. "Hello Howtoforge!"라는 문구가 적힌 흰색 페이지가 나타납니다.

    이제 mod_wsgi를 사용하여 Python 애플리케이션을 실행하도록 적절하게 구성된 Apache 웹 서버가 있습니다. 다음 단계는 Python 웹 애플리케이션을 /var/www/html/ 디렉토리에 배포하고 /etc/apache2/sites-enabled/000-default.conf 파일의 WSGIScriptAlias 줄을 애플리케이션의 시작 스크립트와 일치하도록 변경하는 것입니다. . 그런 다음 Apache를 다시 시작하여 구성 변경 사항을 적용합니다.

    가상 머신으로 다운로드

    이 설정은 howtoforge 가입자를 위해 ova/ovf 형식(VMWare 및 Virtualbox와 호환 가능)의 가상 머신 다운로드로 사용할 수 있습니다.

    VM에 대한 로그인 세부 정보

    • 사용자 관리자의 비밀번호는 howtoforge입니다. 관리자 사용자에게는 sudo 권한이 있습니다.\n

    최초 로그인 시 모든 비밀번호를 변경하시기 바랍니다.

    • VM의 IP 주소는 192.168.0.100입니다.