Mengkonfigurasi Apache dengan mod_wsgi melibatkan beberapa langkah:
Pasang pakej yang diperlukan: Mulailah dengan memasang Apache sendiri, bersama -sama dengan modul mod_wsgi
Apache dan Python. Perintah yang tepat bergantung pada sistem operasi anda. Untuk sistem Debian/Ubuntu, biasanya anda menggunakan:
<code class="bash">sudo apt update sudo apt install apache2 libapache2-mod-wsgi-py3 python3-pip</code>
Laraskan python3-pip
dan nombor versi (misalnya, python3.9-pip
) seperti yang diperlukan untuk pemasangan python anda. Pada sistem lain (seperti CentOS/RHEL, macOS dengan homebrew, dll.), Gunakan arahan pengurus pakej yang sesuai.
Buat aplikasi WSGI: Anda memerlukan fail python (misalnya, my_wsgi_app.py
) yang mentakrifkan aplikasi WSGI. Ini adalah objek yang boleh dipanggil yang akan digunakan Apache untuk mengendalikan permintaan. Contoh mudah:
<code class="python">def application(environ, start_response): status = '200 OK' output = b"Hello, World!\n" response_headers = [('Content-type', 'text/plain'), ('Content-Length', str(len(output)))] start_response(status, response_headers) return [output]</code>
Konfigurasikan Apache: Anda perlu mengkonfigurasi Apache untuk memuatkan mod_wsgi
dan arahkannya ke aplikasi WSGI anda. Ini dilakukan dengan mengedit fail konfigurasi Apache anda (biasanya terletak di /etc/apache2/apache2.conf
atau /etc/apache2/sites-available/000-default.conf
, atau lokasi yang sama bergantung kepada sistem anda). Tambahkan atau ubah suai perkara berikut dalam blok <virtualhost></virtualhost>
:
<code class="apache"><virtualhost> ServerName your_domain_or_ip WSGIScriptAlias / /path/to/your/my_wsgi_app.py <directory> <files my_wsgi_app.py> Require all granted </files> </directory> </virtualhost></code>
Menggantikan /path/to/your/
dengan laluan sebenar ke fail my_wsgi_app.py
anda dan your_domain_or_ip
dengan nama domain pelayan atau alamat IP anda. Yang Require all granted
membolehkan akses kepada skrip; Untuk pengeluaran, anda memerlukan keselamatan yang lebih mantap (lihat di bawah).
Mulakan semula Apache: Setelah menyimpan fail konfigurasi Apache, mulakan semula Apache untuk memohon perubahan:
<code class="bash">sudo systemctl restart apache2</code>
Perangkap biasa termasuk:
WSGIScriptAlias
atau <directory></directory>
akan menghalang Apache daripada mencari aplikasi WSGI anda. Gunakan laluan mutlak untuk mengelakkan kekaburan.mod_wsgi
) disusun dengan versi python yang sama yang digunakan oleh aplikasi anda. Versi pencampuran boleh menyebabkan kemalangan atau tingkah laku yang tidak dijangka.<virtualhost></virtualhost>
yang berbeza atau menggunakan arahan Apache yang lain untuk mengelakkan konflik.with
pernyataan) untuk menutup fail dan sumber lain dengan betul.Penambahbaikan prestasi dapat dicapai melalui beberapa strategi:
WSGIDaemonProcess
). Ini dengan ketara mengurangkan overhead penciptaan proses dan meningkatkan respons. Konfigurasikan ini dalam fail konfigurasi Apache anda, menentukan bilangan proses dan benang.redis
atau memcached
.asyncio
untuk meningkatkan kesesuaian dan throughput.Mengamankan permohonan anda melibatkan beberapa langkah penting:
.htaccess
, Allow
dan Deny
arahan) untuk menghadkan akses kepada direktori dan fail tertentu. Elakkan mendedahkan fail atau direktori sensitif terus ke web.Ingatlah untuk menggantikan nilai letak (laluan, nama domain) dengan butiran konfigurasi sebenar anda. Sentiasa menguji perubahan anda dengan teliti dalam persekitaran pementasan sebelum menggunakan pengeluaran.
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!