উবুন্টু 14.04-এ অ্যাপাচি 2 এবং লিবাপেচি 2-মোড-ডাব্লুএসজি-পাই 3 ব্যবহার করে অ্যাসারেশন অরার (পাইথন 3.4)


10

উবুন্টু ১৪.০৪-এ, প্যাকেজ লিবাপ্যাচ-মোড-ডাব্লুএসজি-পাই 3 ইনস্টল করে অ্যাপাচি 2 ব্যবহার করা /var/log/apache2/error.log এ ত্রুটি দেয়

পুনরুত্পাদন করার উপায় সোজা:

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 নিম্নলিখিত ত্রুটি দেয়:

[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: 

কীভাবে এটি ত্রুটি-মুক্ত কাজ করবে?

উত্তর:


15

উবুন্টু 14.04 mod_wsgi 3.4 এর সাথে আসে। Https://code.djangoproject.com/ticket/22948# মন্তব্য যোগ্যতা অনুসারে পাইথন ৩.৪ এর জন্য আমাদের Mod_wsgi সংস্করণ ৪.২+ ব্যবহার করা প্রয়োজন।

সর্বশেষতম সংস্করণে Mod_wsgi ইনস্টল করার সর্বোত্তম উপায় হ'ল এটি পাইপের সাথে পাওয়া (ভার্চুয়ালেনভের মধ্যে থাকতে পারে) এবং তারপরে মডিউলটিকে সিস্টেম-ওয়াইডে অ্যাপাচে ইনস্টল করা। আমার ক্ষেত্রে আমি ভার্চুয়ালেনভ সেট আপ ব্যবহার করি /venv_path

1) সমস্যাযুক্ত প্যাকেজ সরান এবং নির্ভরতা ইনস্টল করুন

sudo apt-get remove libapache2-mod-wsgi-py3
sudo apt-get install apache2-dev

2) পিপ দিয়ে ভার্চুয়ালেনভে Mod_wsgi ইনস্টল করুন

. /venv_path/bin/activate
pip install mod_wsgi

3) অ্যাপাচে ইনস্টল করুন (সিস্টেম-ব্যাপী)

sudo /venv_path/bin/mod_wsgi-express install-module
sudo vi /etc/apache2/mods-available/wsgi_express.load /etc/apache2/mods-available/wsgi_express.conf

কন্টেন্ট /etc/apache2/mods-available/wsgi_express.load

LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi-py34.cpython-34m.so

কন্টেন্ট /etc/apache2/mods-available/wsgi_express.conf

WSGIPythonHome /venv_path

4) মডিউল সক্ষম করুন এবং অ্যাপাচি পুনরায় চালু করুন।

sudo a2enmod wsgi_express
sudo service apache2 restart

5) পরীক্ষা করুন যে কোনও ত্রুটি নেই /var/log/apache2/error.log


1
আপনি যে বলে আদেশ একটি virtualenv তৈরি করতে উল্লেখ করতে চাইতে পারেন virtualenv -p python3.4 DIRECTORY, অথবা 3.4+ জন্য, ভাল: pyvenv-3.4 DIRECTORY
nyuszika7h

1
এটি সঠিক ... তবে মোড_উইজি প্রশ্নের উপরে ফোকাস রাখতে আমি এটি উল্লেখ করিনি।
samb

1
আপনি যেহেতু ইতিমধ্যে আপনার উদাহরণটিতে ভার্চুয়ালেনভ ব্যবহার করছেন তাই কেন এটি তৈরি করবেন তাও উল্লেখ করবেন না কেন?
nyuszika7h

এটি cannot open shared object file: No such file or directoryকরার চেষ্টা করার সময় অন্য কেউ যদি ত্রুটি পান ( ), তবে পদক্ষেপ 3 এ সংস্করণটি স্যুইচ করতে ভুলবেন না আমি পাইথন 3.5, 64-বিট ব্যবহার করছিলাম। mod_wsgi-py35.cpython-35m-x86_64-linux-gnu.so। আপনার কোন সংস্করণটি যদি আপনি না জানেন তবে ফোল্ডারে ( /usr/lib/apache2/modules/) যান এবং দেখুন। এই উত্তরটি 32-বিট অজগর 3.4 এর উপর ভিত্তি করে বলে মনে হচ্ছে।
ডিলিট

এই পদ্ধতিটি পাইথন-সংস্করণ-অজোনস্টিক sudo /venv_path/bin/mod_wsgi-express install-moduleএবং 3 ধাপে পাইথন 3.6 দিয়ে আমার জন্য কাজ করেছেন আপনার wsgi_expressফাইলগুলিতে যে পাথগুলি রাখার দরকার তা মুদ্রণ করা হবে
গেভরা

0

কেবল সম্ব দ্বারা সরবরাহিত গৃহীত উত্তরে কিছু যুক্ত করতে চেয়েছিলেন।

মডিউল কনফিগারেশনে আপনার যে কনফিগারটি যুক্ত করতে হবে তা mod_wsgi-express install-moduleহ'ল কমান্ড দ্বারা আউটপুট করা হয়েছে (এটি স্বীকৃত উত্তরে স্পষ্ট ছিল না)।

এছাড়াও, আমার ক্ষেত্রে (এবং মোড_উজি পিপিজি ডকুমেন্টেশন অনুসারে - সম্ভবত গ্রহণযোগ্য উত্তরটি লেখার সময় এমনটি ঘটেনি) আমি কোনও wsgi_express.*ফাইল পাইনি mods-available, তবে কেবলমাত্র wsgi.*, এবং wsgi.loadফাইলটি প্রতিস্থাপনের জন্য এটি যথেষ্ট ছিল চালিয়ে নতুন কনফিগারেশন

mod_wsgi-express install-module > /etc/apache2/mods-available/wsgi.load

অবশ্যই এটি পুরো ফাইলটি ওভাররাইট করে দেবে, সুতরাং আপনার যদি আরও কোনও নির্দেশিকা থাকে সে ক্ষেত্রে নজর রাখুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.