অ্যাপাচি শুরু করতে ব্যর্থ হয়েছে, ঠিকানা ইতিমধ্যে ব্যবহৃত (তবে সত্যই নয়)


58

আমি উবুন্টু 12.04 চালিত একটি ভিএম সেটআপ করার চেষ্টা করছি। 80 টি পোর্ট ব্যবহার করে আমার দুটি ভার্চুয়াল হোস্ট কনফিগার করা আছে, তবে অ্যাপাচি শুরু হবে না।

আমি এই ত্রুটি পেয়েছি:
(98) Address already in use: make_sock: could not bind to address 0.0.0.0:80

ফলাফলগুলি netstat -tulpnদেখায় যে কিছুই 80 পোর্ট ব্যবহার করছে না What সম্ভবত এটির কারণ কী হতে পারে?


আপনি কি এটি মূল হিসাবে শুরু করছেন? ডিফল্টরূপে শুধুমাত্র root নিচে 1024. পোর্ট খুলতে পারে
onse

হ্যাঁ আমি. এটি এক পর্যায়ে চলছিল যখন আমার কেবলমাত্র একটি ভার্চুয়াল হোস্ট কনফিগার করা হয়েছিল, সুতরাং আমি অন্য ভার্চুয়াল হোস্টটিকে সমস্যা সমাধানের চেষ্টা করার জন্য সরিয়েছি, তবে এটির সাথে ভাগ্যও নেই।
গুনার বার্নস

আপনার হোস্টের 80 পোর্ট চলমান কিছু আছে এবং আপনি অতিথির জন্য ব্রিজড মোডে আছেন? আমি জানি না যে এটি এমনটি করবে তবে এটি সম্ভবত সম্ভাব্য বলে মনে হচ্ছে
রোবটহুমানস

আপনি কি অ্যাপাচি ব্যর্থ হওয়া শুরু করার পরামর্শগুলি চেষ্টা করেছেন (০.০.০.০.০৮৮ ঠিকানায় বাঁধতে পারেননি) ? এবং এছাড়াও আউটপুট অন্তর্ভুক্ত করুন grep -ri listen /etc/apacheএবং sudo netstat -ntlp | grep 80
জার্মটভিডিজক

2
grep -ri listen /etc/apache2ফলাফল / ইত্যাদি httpd.conf: শুনুন 443 sudo netstat -ntlp | grep 80কিছুই আউটপুট।
গুনার বার্নস

উত্তর:


38

আপনি Listen 80.conf ফাইলগুলিতে দুবার ঘোষণা করছেন না তা নিশ্চিত করুন ।

উদাহরণস্বরূপ, আপনি এটি উভয় ports.confএবং সরাইনে থাকতে পারে sites-enabled/www.conf

এটি জানতে, ব্যবহার করুন: grep -ri listen /etc/apache2

Listen 80শুধু একটি জায়গায় রাখুন ।


19

আমি যেভাবে এই সমস্যাটি সমাধান করেছি তার উত্তর দিয়েছি। ভবিষ্যতে কারও জন্য সহায়ক হতে পারে।

চেষ্টা netstat -ltnp | grep :80

এটি কিছু ফিরে আসবে

tcp6 0 0 ::: 80 ::: * তালিকাভুক্ত 1047 / অ্যাপাচি 2

তারপরে দৌড়াও

sudo kill -9 1047

যেখানে 1047 হ'ল প্রোগ্রামের পিড 80 বন্দর চলমান You আপনি যে পিডটি পেয়েছিলেন তা প্রতিস্থাপন করতে পারেন netstat


বাহ! ... এবং আমি ইনমোশনহোস্টিংয়ে টিকিট প্রেরণের 48 ঘন্টা পরে উত্তরটির জন্য অপেক্ষা করছি। আপনাকে ধন্যবাদ
আমজো 24'18

2
এটার মানে কি? আমি পিআইডি বা নাম পাচ্ছি না। tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN -
অ্যারন ফ্র্যাঙ্ক

@ অ্যারোনফ্র্যাঙ্ক আপনি কি উইন্ডোটি সর্বাধিক করার পরে টার্মিনালে এই কমান্ডটি চালানোর চেষ্টা করতে পারেন?
বেনামি প্লাটিপাস

2
@ অ্যারোনফ্র্যাঙ্ক এটি সুডো দিয়ে চালান। আপনার দেখার অনুমতি থাকতে পারে না।
অদ্বৈত এস

13

আমার যখন এই সমস্যা হয়েছিল তখন এটি পরিণত হয়েছিল কারণ আমার অ্যাপাচি বুট থেকে শুরু করতে পারেনি কারণ আমার একটি এসএসএল সাইট রয়েছে যাতে শংসাপত্রের জন্য পাসওয়ার্ড প্রবেশ করতে হবে।

এটি আপনার চালানোর জন্য কেস কিনা তা বলার একটি ভাল উপায় ps -ef | grep apache: এটি যদি এমন প্রক্রিয়াগুলি দেখায় যা দেখে মনে হয় /bin/bash /usr/share/apache2/ask-for-passphrase mysite.com:443 RSAতবে এটি কোনও টার্মিনালে পাসওয়ার্ড প্রবেশের অপেক্ষায় রয়েছে যা আপনি কখনই দেখতে পাবেন না।

প্রথমত, আমি হ্যাং প্রক্রিয়াটি মেরেছি ( kill -HUP/ usr / sbin / apache2 প্রক্রিয়াটির জন্য প্রসেস আইডিতে একটি প্রেরণ অন্য ব্যক্তিকেও মারার জন্য যথেষ্ট হওয়া উচিত, তবে ps -ef | grep apacheনিশ্চিত হওয়ার জন্য আরও একটি কাজ করুন)।

তারপরে একটি এসএসএল পাসওয়ার্ড ফাইল তৈরি করার জন্য আমি এই পোস্টে থাকা নির্দেশাবলী অনুসরণ করেছি যাতে প্রবেশের জন্য পাসওয়ার্ডের প্রয়োজন হয় না। তারপরে একটি ভাল service apache2 startকাজ করা হয়েছে, এবং অ্যাবাচি পুনরায় বুটের পরে সঠিকভাবে শুরু হয়েছিল।


11

অ্যাপাচি 2 উবুন্টু 12.10 শুরু করার সময় আমি একটি ত্রুটি ইনস্টল এ এই ত্রুটিটি পেয়েছি।

এটি অ্যাপাচি 2-তে একটি বাগ। এটি পটভূমিতে স্তব্ধ হয়ে যায়। সফটওয়্যারগুলিতে বাগগুলি থাকতে পারে যেখানে আমার ওয়াকথ্রুটি এখানে।

আমি পেয়েছি ত্রুটি এখানে:

el@titan:~$ sudo service apache2 start
 * Starting web server apache2               
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
Action 'start' failed.
The Apache error log may have more information.
                                                                         [fail]

ঠিকানা ইতিমধ্যে ব্যবহারে আছে? এটি ব্যবহার করে কি হতে পারে? এটা দেখ:

el@titan:~$ grep -ri listen /etc/apache2
/etc/apache2/apache2.conf:#   supposed to determine listening ports for incoming connections, and which
/etc/apache2/apache2.conf:# Include list of ports to listen on and which to use for name based vhosts
/etc/apache2/ports.conf:Listen 80
/etc/apache2/ports.conf:    Listen 443
/etc/apache2/ports.conf:    Listen 443

তার মানে অ্যাপাচি 2 অ্যাপাচি 2 কে শুরু হতে বাধা দিচ্ছে। উদ্ভট। এটি নিশ্চিত করবে:

el@titan:~$ ps -ef | grep apache2
root      1146   954  0 15:51 ?        00:00:00 /bin/sh /etc/rc2.d/S91apache2 start
root      1172  1146  0 15:51 ?        00:00:00 /bin/sh /usr/sbin/apache2ctl start
root      1181  1172  0 15:51 ?        00:00:00 /usr/sbin/apache2 -k start
root      1193  1181  0 15:51 ?        00:00:00 /bin/bash /usr/share/apache2/ask-for-passphrase 127.0.1.1:443 RSA
el        5439  5326  0 16:23 pts/2    00:00:00 grep --color=auto apache2

হ্যাঁ, এক্ষেত্রে অ্যাপাচি 2 চলছে, আমি একই বন্দরে দ্বিতীয়বার অ্যাপাচি 2 শুরু করার চেষ্টা করছিলাম।

আমাকে কী বিভ্রান্ত করছে তা হ'ল যে serviceপ্রতিবেদনগুলি অ্যাপাচি 2 চলছে না:

el@titan:~$ sudo service apache2 status
Apache2 is NOT running.

এবং যখন আপনি এর স্থিতির জন্য apache2ctl অনুসন্ধান করেন, তখন এটি স্তব্ধ হয়ে যায়।

root@titan:~# /usr/sbin/apache2ctl status
**hangs until Ctrl-C is pressed.

সুতরাং উবুন্টু মনে হয় বুটআপে অ্যাপাচি 2 পরিচালনা করতে সমস্যা হচ্ছে। অ্যাপাচি 2 বন্ধ করার সময়:

root@titan:~# /usr/sbin/apache2ctl stop
httpd (no pid file) not running

বড় একটা ক্লু! আপনি অ্যাপাচি 2 বন্ধ করার চেষ্টা করেছেন এবং এটি প্রক্রিয়া আইডি হারিয়েছে! সুতরাং উবুন্টু অ্যাপাচি 2 থামাতে পারে না কারণ এটি কোথায় তা জানে না!

আপনি ভাবেন যে একটি রিবুট এটি ঠিক করে দেবে, তবে এটি হ'ল না কারণ অ্যাপাচি 2 বুট থেকে শুরু হয়ে যায়। অ্যাপাচি 2-র জন্য স্বাভাবিক বুট প্রক্রিয়াটি সঠিকভাবে কাজ করছে না।

কিভাবে এটি ঠিক করবেন?

psকমান্ড আউটপুট বিশ্লেষণ করে আমি এটি ঠিক করতে সক্ষম হয়েছি । লক্ষ্য করুন যে psকমান্ডটি আমাদের জানায় যে সেই প্রক্রিয়াটি "/etc/rc2.d/S91apache2 start" দ্বারা শুরু হয়েছিল।

এটি আপত্তিকর প্রোগ্রাম যা একটি দ্রুত কিক প্রয়োজন।

/etc/rc2.d/S91apache2কম্পিউটার শুরু হওয়ার সাথে সাথে আপনার জন্য অ্যাপাচি 2 শুরু করতে ব্যবহৃত প্রতীকী লিঙ্কটি। কিছু কারণে মনে হচ্ছে এটি অ্যাপাচি 2 শুরু হবে এবং তারপরে স্তব্ধ হয়ে যাবে। সুতরাং এটি না করতে আমাদের এটি বলতে হবে।

সুতরাং যে একবার দেখুন /etc/rc2.d/S91apache2

el@titan:/etc/rc2.d$ ls -l
lrwxrwxrwx   1 root root    17 Nov  7 21:45 S91apache2 -> ../init.d/apache2*

এটি একটি প্রতীকী লিঙ্ক যা আমরা এটি সেখানে থাকতে চাই না। অ্যাপাচি 2 কে বুট শুরু হতে আটকাতে এটি করুন:

root@titan:~# sudo update-rc.d -f apache2 remove
 Removing any system startup links for /etc/init.d/apache2 ...
   /etc/rc0.d/K09apache2
   /etc/rc1.d/K09apache2
   /etc/rc2.d/S91apache2
   /etc/rc3.d/S91apache2
   /etc/rc4.d/S91apache2
   /etc/rc5.d/S91apache2
   /etc/rc6.d/K09apache2

অ্যাপাচি 2 শুরু এবং হ্যাং হয় না তা নিশ্চিত করতে কম্পিউটারটি পুনরায় বুট করুন। ঠিক আছে ভালো. এখন আপনি অ্যাপাচি 2টিকে আগের মতো করে ফেলাতে পারেন তবে এটি আবার ব্যর্থ হবে।

root@titan:~$ sudo update-rc.d apache2 defaults     //(don't do this)
 Adding system startup for /etc/init.d/apache2 ...
   /etc/rc0.d/K20apache2 -> ../init.d/apache2
   /etc/rc1.d/K20apache2 -> ../init.d/apache2
   /etc/rc6.d/K20apache2 -> ../init.d/apache2
   /etc/rc2.d/S20apache2 -> ../init.d/apache2
   /etc/rc3.d/S20apache2 -> ../init.d/apache2
   /etc/rc4.d/S20apache2 -> ../init.d/apache2
   /etc/rc5.d/S20apache2 -> ../init.d/apache2

পরিবর্তে, অ্যাপাচি 2 এর মতো শুরু করুন:

sudo service apache2 start

এবং অ্যাপাচি 2 আবার পৃষ্ঠাগুলি পরিবেশন করছে। অ্যাপাচি 2 / উবুন্টু 12.10 সহ কিছু গুরুতর ত্রুটি রয়েছে বলে মনে হচ্ছে যা অ্যাপাচি 2 শুরু করে এবং স্তব্ধ হয়ে যায়। আমি মনে করি এটি ঠিকঠাক, অ্যাপাচি 2 এবং উবুন্টুর আরও নতুন সংস্করণ পাওয়া এবং সেরাটির জন্য আশা করা।


আপনার টিপস পড়তে এবং ব্যবহার করে উপভোগ করেছেন! 'আপনি যেভাবে এটি ডিবাগ করেছেন' লেখার জন্য ধন্যবাদ!
রাম

10

আমার AWS ইসি 2 সার্ভারে আমার একটি এনগিনেক্স সার্ভার শুনছিল, আমি ইসি 2 তৈরি করার সময় এটি কনফিগার করা হয়েছে বলে মনে করি, ইতিমধ্যে আমি ইতিমধ্যে ব্যবহারের ত্রুটিতে ঠিকানা পেয়েছিলাম। তাই আমি পরিষেবাটি বন্ধ করে দিয়ে অ্যাপাচি 2 পরিষেবা শুরু করেছি:

sudo service nginx stop
sudo service apache2 start

অসংখ্য ধন্যবাদ! সব চেষ্টা করার পরেও এটি আমার জন্য কাজ করেছিল।
বিবেক

4

আমি এটি খুঁজে বের করেছি। আমার httpd.conf এবং পোর্টস কনফ উভয় ক্ষেত্রে আমার সদৃশ শোনার 80 টি কমান্ড ছিল

এছাড়াও, ভার্চুয়ালাইজ করা হচ্ছে এমন সার্ভারটির জন্য কনফিগার ফাইলটি অনুলিপি করার ক্ষেত্রে, আমি ত্রুটিযুক্ত লগ ডিরেক্টরিটি পরিবর্তন করা হয়েছে তা লক্ষ্য করতে অবহেলা করেছি। ত্রুটিযুক্ত লগটি সন্ধান করে আমি লক্ষ্য করেছি যে mime.typesকনফিগার ফাইলের জন্য ডিরেক্টরিটি আমার httpd.confফাইলে ভুল ছিল । আমি সেই প্যারামিটারটি আপডেট করেছি এবং সার্ভারটি ঠিকঠাক শুরু হয়েছে।


3
Listen 80আমার httpd.confএবংports.conf
গুনার বার্নেস

2

এর অর্থ আপনার পোর্ট 80 ইতিমধ্যে ব্যবহৃত হচ্ছে, হয় অ্যাপাচি 2 (যা আমি প্রস্তাব দিই না) সম্পাদনা করে পরিবর্তন করুন:

/etc/apache2/ports.conf

অথবা 80 পোর্টে চলমান অ্যাপ্লিকেশনটি বন্ধ করুন:

netstat -antp | grep 80

80 বন্দরে কী চলছে তা সন্ধান করতে।


netstat -antp | grep 80আউটপুট পাশাপাশি কিছু।
গুনার বার্নেস

আপনি কি নেটস্ট্যাট -্যান্টপ এর আউটপুট কপি এবং পেস্ট করতে পারেন? গ্রেপ 80?
ডিলান ডডস

আক্ষরিকভাবে কোনও আউটপুট নেই।
গুনার বার্নেস

এইচএমএম এটি বিজোড়, পোর্টটি 81 এ পরিবর্তন করার চেষ্টা করুন যদি এটি বন্দরটি অবরুদ্ধ না হয় তবে অন্য একটি ত্রুটি আপনি /var/log/apache2/error.log এ অ্যাপাচি 2 ত্রুটি পরীক্ষা করতে পারেন
ডিলান ডডস

2

যে কারও জন্য কেবল একটি ইঙ্গিত, সম্ভবত তিনি নেট নেটওয়ার্কগুলির সাথে ভার্চুয়ালবক্স চালাচ্ছেন। আমি দেখতে পেয়েছি, আমার অতিথি এবং হোস্টের মধ্যে একটি নেট রুল থাকার কারণে বন্দরটি আবদ্ধ করে রাখা হয়েছে


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