Untuk mengkonfigurasi Apache untuk bekerja dengan python menggunakan mod_wsgi, ikuti langkah -langkah ini:
Pasang mod_wsgi:
Pertama, anda perlu memasang mod_wsgi. Kaedah pemasangan boleh berbeza -beza bergantung kepada sistem operasi anda. Sebagai contoh, di Ubuntu, anda boleh memasangnya menggunakan arahan berikut:
<code>sudo apt-get install libapache2-mod-wsgi</code>
Dayakan Modul Mod_WSGI:
Selepas pemasangan, anda perlu mengaktifkan modul. Di Ubuntu, anda boleh melakukan ini dengan menjalankan:
<code>sudo a2enmod wsgi</code>
Buat skrip WSGI:
Buat skrip WSGI yang akan bertindak sebagai titik masuk untuk aplikasi Python anda. Sebagai contoh, anda boleh membuat fail bernama myapp.wsgi
dengan kandungan berikut:
<code class="python">import sys sys.path.insert(0, '/path/to/your/application') from yourapplication import app as application</code>
Konfigurasikan Apache:
Edit fail konfigurasi Apache anda (biasanya terletak di /etc/apache2/sites-available/
) untuk memasukkan skrip WSGI. Tambahkan arahan berikut:
<code><virtualhost> ServerName www.yourdomain.com DocumentRoot /path/to/your/application WSGIScriptAlias / /path/to/your/myapp.wsgi <directory> <files> Require all granted </files> </directory> Alias /static/ /path/to/your/static/files/ <directory> Require all granted </directory> </virtualhost></code>
Mulakan semula Apache:
Setelah membuat perubahan pada konfigurasi, mulakan semula Apache untuk menerapkannya:
<code>sudo systemctl restart apache2</code>
Dengan mengikuti langkah -langkah ini, anda sepatutnya mempunyai Apache yang dikonfigurasikan untuk bekerja dengan Python menggunakan mod_wsgi.
Kesalahan biasa apabila menubuhkan mod_wsgi dengan apache dan python termasuk:
Importerror: Tiada modul bernama 'Yourmodule':
Kesalahan ini berlaku jika Python tidak dapat mencari modul yang anda cuba import. Pastikan laluan python ditetapkan dengan betul dalam skrip WSGI anda. Anda boleh menyemak laluan python dengan menambahkan pernyataan cetak dalam skrip WSGI:
<code class="python">import sys print(sys.path)</code>
Laraskan sys.path
dengan sewajarnya untuk memasukkan direktori yang mengandungi modul anda.
www-data
di Ubuntu) telah membaca dan melaksanakan kebenaran pada fail dan direktori yang terlibat./var/log/apache2/error.log
. Log ini boleh memberikan maklumat yang lebih terperinci mengenai penyebab kesilapan.WSGIScriptAlias
menunjuk ke laluan yang betul dari skrip WSGI anda dan bahawa fail itu wujud dan boleh dibaca oleh Apache.Dengan menangani kesilapan biasa ini dan memeriksa log ralat Apache, anda boleh menyelesaikan masalah kebanyakan isu yang berkaitan dengan menubuhkan mod_wsgi dengan Apache dan Python.
Ya, anda boleh menggunakan mod_wsgi untuk menggunakan pelbagai aplikasi web python pada pelayan Apache yang sama. Inilah cara melakukannya:
Buat skrip WSGI yang berasingan:
Buat skrip WSGI yang berasingan untuk setiap aplikasi. Sebagai contoh, anda mungkin mempunyai app1.wsgi
dan app2.wsgi
:
<code class="python"># app1.wsgi import sys sys.path.insert(0, '/path/to/app1') from app1 import app as application # app2.wsgi import sys sys.path.insert(0, '/path/to/app2') from app2 import app as application</code>
Konfigurasikan Apache:
Ubah suai konfigurasi Apache untuk mengendalikan pelbagai aplikasi. Anda boleh menggunakan pelbagai blok VirtualHost
atau arahan Location
dalam satu VirtualHost
tunggal. Inilah contoh menggunakan arahan Location
:
<code><virtualhost> ServerName www.example.com WSGIDaemonProcess app1 processes=2 threads=15 WSGIDaemonProcess app2 processes=2 threads=15 WSGIProcessGroup app1 WSGIApplicationGroup %{GLOBAL} WSGIScriptAlias /app1 /path/to/app1/app1.wsgi <directory> <files> Require all granted </files> </directory> WSGIProcessGroup app2 WSGIApplicationGroup %{GLOBAL} WSGIScriptAlias /app2 /path/to/app2/app2.wsgi <directory> <files> Require all granted </files> </directory> Alias /app1/static/ /path/to/app1/static/ <directory> Require all granted </directory> Alias /app2/static/ /path/to/app2/static/ <directory> Require all granted </directory> </virtualhost></code>
Mulakan semula Apache:
Setelah mengkonfigurasi Apache, mulakan semula untuk menerapkan perubahan:
<code>sudo systemctl restart apache2</code>
Dengan mengikuti langkah -langkah ini, anda boleh menggunakan pelbagai aplikasi web python pada pelayan Apache yang sama menggunakan mod_wsgi.
Menggunakan mod_wsgi menawarkan beberapa manfaat prestasi berbanding dengan kaedah lain untuk menjalankan python di Apache:
Ringkasnya, integrasi ketat Mod_WSGI dengan Apache, sokongan untuk mod daemon, dan keupayaan untuk menguruskan proses dan benang dengan cekap menjadikannya penyelesaian berprestasi tinggi untuk menjalankan aplikasi web python di Apache.
Atas ialah kandungan terperinci Bagaimana saya mengkonfigurasi Apache untuk bekerja dengan python menggunakan mod_wsgi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!