ในคำถามก่อนหน้านี้ ฉันถามวิธีทำให้ mod_wsgi ใช้ Python เวอร์ชันเฉพาะ หลังจากได้คำตอบจากคำถามนั้น ฉันได้สร้างสภาพแวดล้อมเสมือน Python 3.9 และทำให้ WSGI ใช้งาน อย่างไรก็ตาม ตอนนี้แอป Flask ของฉันไม่ทำงานเลย - ฉันเพิ่งได้รับการกำหนดค่าหน้า 404 สำหรับส่วนที่เหลือของไซต์ของฉัน ฉันไม่พบข้อผิดพลาดเมื่อรีสตาร์ท Apache2 และบันทึกข้อผิดพลาดของ Apache ว่างเปล่าเมื่อฉันไปที่ไซต์ ฉันคิดว่าข้อผิดพลาดต้องเกิดจากสภาพแวดล้อมเสมือนจริงของฉัน เนื่องจากฉันได้สร้างแอป Flask ทดสอบก่อนหน้านี้ก่อนที่จะใช้รูปแบบการกำหนดค่าเดียวกัน
สภาพแวดล้อมเสมือนจริงของฉันตั้งอยู่ใน เส้นทาง/ถึง/ของฉัน/แอป/venv/
.
เส้นทาง/to/my/app/runner.wsgi
:
นำเข้าระบบ
# ทำให้บางสิ่งปรากฏขึ้นในบันทึกข้อผิดพลาดหากมีการเรียกใช้ WSGI เลย
เพิ่ม ValueError()
PROJECT_DIR = os.path.dirname(os.path.realpath(__file__))
sys.path.insert(0, PROJECT_DIR)
จากแอปนำเข้า my_app เป็นแอปพลิเคชัน
เป็นส่วนหนึ่งของ /etc/apache2/sites-available/000-default-le-ssl.conf
:
WSGIDaemonProcess ผู้ใช้ myapp=www-data group=www-data threads=4 python-home=/path/to/my/app/venv/
WSGIScriptAlias /my-app/ path/to/my/app/runner.wsgi
/etc/apache2/mods-available/wsgi.load
LoadModule wsgi_module "/path/to/my/app/venv/lib/python3.9/site-packages/mod_wsgi/server/mod_wsgi-py39.cpython-39-x86_64-linux-gnu.so"
WSGIPythonHome "เส้นทาง/ถึง/ของฉัน/แอป/venv"
ระบบปฏิบัติการ: Ubuntu 18.04.5 LTS