Pada Ubuntu 14.04, menggunakan Apache2 dengan paket libapache2-mod-wsgi-py3 diinstal memberikan kesalahan di /var/log/apache2/error.log
Cara mereproduksi sangat mudah:
sudo apt-get install apache2
sudo service apache2 restart
# /var/log/apache2/error.log is "clean"
sudo apt-get install libapache2-mod-wsgi-py3
sudo service apache2 restart
/var/log/apache2/error.log memberikan kesalahan berikut:
[Mon Jan 05 16:51:53.641332 2015] [:error] [pid 3141:tid 140703516379008] Exception ignored in: <module 'threading' from '/usr/lib/python3.4/threading.py'>
[Mon Jan 05 16:51:53.643563 2015] [:error] [pid 3141:tid 140703516379008] Traceback (most recent call last):
[Mon Jan 05 16:51:53.643633 2015] [:error] [pid 3141:tid 140703516379008] File "/usr/lib/python3.4/threading.py", line 1288, in _shutdown
[Mon Jan 05 16:51:53.644350 2015] [:error] [pid 3141:tid 140703516379008] assert tlock is not None
[Mon Jan 05 16:51:53.643449 2015] [:error] [pid 3140:tid 140703516379008] Exception ignored in: <module 'threading' from '/usr/lib/python3.4/threading.py'>
[Mon Jan 05 16:51:53.644456 2015] [:error] [pid 3140:tid 140703516379008] Traceback (most recent call last):
[Mon Jan 05 16:51:53.644514 2015] [:error] [pid 3140:tid 140703516379008] File "/usr/lib/python3.4/threading.py", line 1288, in _shutdown
[Mon Jan 05 16:51:53.645052 2015] [:error] [pid 3140:tid 140703516379008] assert tlock is not None
[Mon Jan 05 16:51:53.645119 2015] [:error] [pid 3141:tid 140703516379008] AssertionError:
[Mon Jan 05 16:51:53.647513 2015] [:error] [pid 3140:tid 140703516379008] AssertionError:
Bagaimana cara kerjanya bebas kesalahan?
virtualenv -p python3.4 DIRECTORY
, atau untuk 3.4+, lebih baik:pyvenv-3.4 DIRECTORY
.cannot open shared object file: No such file or directory
) ketika mencoba melakukan ini, ingatlah untuk mengganti versi di langkah 3. Saya menggunakan Python 3.5, 64-bit.mod_wsgi-py35.cpython-35m-x86_64-linux-gnu.so
. Jika Anda tidak tahu versi mana yang Anda miliki, buka folder (/usr/lib/apache2/modules/
) dan lihat. Jawaban ini tampaknya didasarkan pada 32-bit python 3.4.sudo /venv_path/bin/mod_wsgi-express install-module
pada langkah 3 akan mencetak jalur yang harus Anda letakkan diwsgi_express
fileHanya ingin menambahkan sesuatu ke jawaban yang diterima yang disediakan oleh samb.
Baris aktual konfigurasi yang perlu Anda tambahkan ke modul konfigurasi adalah yang dihasilkan oleh
mod_wsgi-express install-module
perintah (ini tidak eksplisit dalam jawaban yang diterima).Juga, dalam kasus saya (dan menurut dokumentasi mod_wsgi pkg - mungkin ini tidak terjadi ketika jawaban yang diterima ditulis) Saya tidak mendapatkan
wsgi_express.*
filemods-available
, tetapi hanyawsgi.*
, dan itu sudah cukup untuk menggantiwsgi.load
file dengan konfigurasi baru dengan menjalankanTentu saja, ini akan menimpa seluruh file, jadi waspadalah jika Anda memiliki arahan di dalamnya.
sumber