Saya mencoba mengatur MOD_WSGI di kotak Ubuntu saya. Saya telah menemukan langkah-langkah yang mengatakan bahwa saya perlu melakukan langkah-langkah berikut yang saya temukan di http://ubuntuforums.org/showthread.php?t=833766
- sudo apt-get install libapache2-mod-wsgi
- sudo a2enmod mod-wsgi
- sudo /etc/init.d/apache2 restart
- sudo gedit / etc / apache2 / sites-available / default dan perbarui Direktori
<Directory /var/www/> Options Indexes FollowSymLinks MultiViews ExecCGI AddHandler cgi-script .cgi AddHandler wsgi-script .wsgi AllowOverride None Order allow,deny allow from all </Directory>
- sudo /etc/init.d/apache2 restart
Dibuat test.wsgi dengan
def application(environ, start_response): status = '200 OK' output = 'Hello World!' response_headers = [('Content-type', 'text/plain'), ('Content-Length', str(len(output)))] start_response(status, response_headers) return [output]
Langkah 2 gagal karena dikatakan tidak dapat menemukan mod-wsgi meskipun apt-get menemukannya. Jika saya melanjutkan langkah-langkah aplikasi python hanya menunjukkan sebagai teks biasa di browser.
Adakah yang salah saya lakukan?
EDIT: Hasil untuk pertanyaan yang diajukan
automatedtester@ubuntu:~$ dpkg -l libapache2-mod-wsgi
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Description
+++-======================================-======================================-============================================================================================
ii libapache2-mod-wsgi 2.5-1 Python WSGI adapter module for Apache
automatedtester@ubuntu:~$ dpkg -s libapache2-mod-wsgi
Package: libapache2-mod-wsgi
Status: install ok installed
Priority: optional
Section: python
Installed-Size: 376
Maintainer: Ubuntu MOTU Developers <[email protected]>
Architecture: i386
Source: mod-wsgi
Version: 2.5-1
Depends: apache2, apache2.2-common, libc6 (>= 2.4), libpython2.6 (>= 2.6), python (>= 2.5), python (<< 2.7)
Suggests: apache2-mpm-worker | apache2-mpm-event
Conffiles:
/etc/apache2/mods-available/wsgi.load 06d2b4d2c95b28720f324bd650b7cbd6
/etc/apache2/mods-available/wsgi.conf 408487581dfe024e8475d2fbf993a15c
Description: Python WSGI adapter module for Apache
The mod_wsgi adapter is an Apache module that provides a WSGI (Web Server
Gateway Interface, a standard interface between web server software and
web applications written in Python) compliant interface for hosting Python
based web applications within Apache. The adapter provides significantly
better performance than using existing WSGI adapters for mod_python or CGI.
Original-Maintainer: Debian Python Modules Team <[email protected]>
Homepage: http://www.modwsgi.org/
automatedtester@ubuntu:~$ sudo a2enmod libapache2-mod-wsgi
ERROR: Module libapache2-mod-wsgi does not exist!
automatedtester@ubuntu:~$ sudo a2enmod mod-wsgi
ERROR: Module mod-wsgi does not exist!
EDIT LEBIH LANJUT UNTUK RMYATE
automatedtester@ubuntu:~$ apache2ctl -t -D DUMP_MODULES
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
Loaded Modules:
core_module (static)
log_config_module (static)
logio_module (static)
mpm_worker_module (static)
http_module (static)
so_module (static)
alias_module (shared)
auth_basic_module (shared)
authn_file_module (shared)
authz_default_module (shared)
authz_groupfile_module (shared)
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
cgid_module (shared)
deflate_module (shared)
dir_module (shared)
env_module (shared)
mime_module (shared)
negotiation_module (shared)
python_module (shared)
setenvif_module (shared)
status_module (shared)
Syntax OK
automatedtester@ubuntu:~$
ubuntu
apache-2.2
python
mod-wsgi
AutomaticTester
sumber
sumber
Jawaban:
Saya telah menemukan bahwa ini adalah bug yang dikenal dengan paket apt-get mod_wsgi yang berumur lebih dari setahun! Detail di http://www.mail-archive.com/[email protected]/msg1147225.html . Paket apt-get tidak memiliki file wsgi.load sehingga perlu dibuat dengan melakukan langkah-langkah di tautan di atas.
Terima kasih untuk semua yang telah membantu!
sumber
Lihat apakah modul tersebut benar-benar dimuat dengan:
sumber
Sejauh yang saya bisa lihat, Anda belum memuat modul mod_wsgi ke dalam
httpd.conf
.Saya pertama kali mencoba menambahkan file wsgi ke
mods-enabled
direktori Apache.Kemudian restart Apache dan itu akan berfungsi.
sumber
Pertama konfirmasikan bahwa modul WSGI sebenarnya diinstal:
Ini akan memberi Anda keluaran termasuk nama, versi, dll. - cari huruf di sebelah kiri nama, ini menunjukkan status paket saat ini. Untuk memeriksanya secara manual, lihat di / etc / apache2 / mods-available / dan Anda harus melihat wsgi.conf dan wsgi.load . Jika ini ada, mereka harus memiliki symlink yang sesuai di / etc / apache2 / mods enabled / .
Jika salah satu set tidak ada, mulailah dengan memperbaikinya terlebih dahulu - Anda tidak dapat menafsirkan kode python melalui apache jika apache tidak dapat menemukan penerjemah. Selain itu, skrip test.py Anda tidak akan berfungsi karena arahan AddHandler yang telah Anda konfigurasi - arahan itu memberi tahu apache untuk meneruskan file dari ekstensi tertentu ke penangan yang relevan. Buat skrip test.wsgi Anda atau ubah direktif AddHandler .
sumber
Apakah Anda menambahkan baris LoadModule untuk benar-benar menyebabkan mod_wsgi dimuat? Apa pesan kesalahan aktual dan dari mana asalnya? Lihat:
http://code.google.com/p/modwsgi/wiki/QuickInstallationGuide
untuk instruksi level rendah. Karena Anda menggunakan paket biner, Anda dapat melewati kompilasi, tetapi Anda masih harus membuat mod_wsgi dimuat. Di mana / bagaimana Anda dapat melakukan ini akan ditentukan pada tingkat tertentu oleh distribusi Linux Anda. Berdasarkan panduan itu Anda seharusnya menjalankan:
Apakah kamu benar-benar melakukan itu?
EDIT
Membaca pertanyaan Anda lagi sudah jelas. Anda mengatakan bahwa file dengan ekstensi .wsgi ditangani oleh mod_wsgi tetapi kemudian Anda memberi file tersebut ekstensi .py. Gunakan .wsgi sebagai gantinya.
sumber
Anda dapat melihat sintaks python Anda terlebih dahulu. Periksa apakah Anda benar-benar memiliki 4 spasi setelah definisi fungsi. Periksa file python dengan menjalankannya terlebih dahulu melalui terminal
maka jika tidak ada kesalahan muncul, jalankan melalui browser web.
http: // localhost / wsgi /
dan omong-omong, Anda sepertinya melewatkan sesuatu untuk konfigurasi apache / file virtualhost Anda. Letakkan ini di dalam tag
Omong-omong, apt tidak memiliki masalah saat memasang modul wsgi. Saya telah mengujinya sekarang dan telah berhasil menjalankan skrip python di browser web saya.
sumber
Tidak yakin apakah ini relevan, tetapi setelah dijalankan:
... file-file berikut ini tidak ada:
Menginstal ulang sepertinya tidak menggantikan file yang hilang. Aneh! Namun,
purge
sepertinya dilakukan trik:sumber