অ্যাপাচি 2 শুরু করার সময় কেন আমি "অনুমতি প্রত্যাখ্যান করা: মেক_সক: ঠিকানাটির সাথে বাঁধাই করতে পারিনি"?


25

আমি এটি ব্যবহার বন্ধ করতে পারি

/etc/init.d/apache2 stop

তবে যখন আমি আবার এটি ব্যবহার করে শুরু করতে চাই:

/etc/init.d/apache2 start

আমি এই ত্রুটি পেয়েছি:

Starting web server apache2                                                  /usr/sbin/apache2ctl: 87: ulimit: error setting limit (Operation not permitted)
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
(13)Permission denied: make_sock: could not bind to address [::]:80
(13)Permission denied: 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]

উত্তর:


50

আপনি যে ত্রুটিগুলি পেয়েছেন সে সম্পর্কে কিছু শব্দ যা আশাবাদী ভবিষ্যতে একইরকম পরিস্থিতি থেকে আপনাকে রক্ষা করবে।

লিনাক্সে 0 থেকে 1024 বন্দরগুলি সিস্টেম ব্যবহারের জন্য সংরক্ষিত। এর অর্থ হ'ল এটির ব্যবহার করতে গেলে আপনার অবশ্যই পরিবর্তন করার অধিকার থাকতে হবে - বেসিক সিস্টেম সেটিংস অ্যাক্সেস করুন। মূল ব্যবহারকারীর এ জাতীয় সুবিধাগুলি রয়েছে এবং প্রকৃতপক্ষে 0 - 1024 রেঞ্জের একটি বন্দর ব্যবহার করতে পারে।

আপনার সমস্যার মতো আপনি দেখতে পাচ্ছেন, অ্যাপাচি 2 প্রতিক্রিয়াটির মাধ্যমে সিস্টেম সমস্যার মূলটি নির্দেশ করে ([...] ব্লাহ ব্লাহ 80 এ সম্বোধনের জন্য আবদ্ধ হতে পারে না ):

(13)Permission denied: make_sock: could not bind to address [::]:80
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80

যখন অ্যাপাচি 2 এইচটিএম ডেমন শুরু হয়, এটি 80 পোর্টটি আবদ্ধ করার চেষ্টা করে কারণ এটি HTTP দেখুন ব্যবহারের জন্য পূর্বনির্ধারিত বন্দর , যা সিস্টেম নির্ধারিত পোর্টগুলির মধ্যে একটি পোর্ট এবং যেমন এটি কেবল রুট দ্বারা অ্যাক্সেস করা যায়।

আপনি রুট বিশেষাধিকার ছাড়াই সাধারণ ব্যবহারকারী হিসাবে স্টার্ট কমান্ডটি কার্যকর করেছেন এবং এটি ব্যর্থতার দিকে পরিচালিত করেছেন।

সহজ কথায়:

আপনি:

হাই অ্যাপাচি 2 আমি কংঠাপ এবং আমি আপনাকে শুরু করতে বলছি ( /etc/init.d/apache2 start)

apache2:

ঠিক আছে. আমি শুরু করছি (ওয়েব সার্ভার অ্যাপাচি 2 শুরু করছি)

সিস্টেম, সংযোগগুলি ব্যবহার করতে এবং শুনতে আমাকে 80 পোর্ট দিন port

পদ্ধতি:

ঠিক আছে. এক মুহুর্ত যাচাই করার জন্য ...

আহ ... দুঃখিত অ্যাপাচি 2 তবে আমি আপনাকে 80 বন্দর দিয়ে চালাতে দিতে পারি না, এটি ব্যক্তিগত ব্যবহারের জন্য।

এবং এটি বেঁধে দেওয়ার জন্য আপনার যথাযথ অধিকার নেই। ( Operation not permitted)

apache2:

ওহ, কংঠাপ আমি শুরু করতে ব্যর্থ হয়েছি, সিস্টেমটি আমাকে এটি করতে দেয়নি ( (13)Permission denied:[...])

উপসংহার

এই সমস্যার মূলত দুটি সমাধান রয়েছে:

  1. রুট সুবিধার্থে অ্যাপাচি 2 এইচটিটিপি ডিমন চালান sudo:

    sudo service apache2 start
    

    বা:

    sudo /etc/init.d/apache2 start
    
  2. থেকে ডিফল্ট পোর্ট পরিবর্তন 80চেয়ে কিছু বেশী করার 1024বলো 2000, 2500, 9000, ইত্যাদি সাধারণত বন্দর চালানোর জন্য এমন পরিস্থিতি যখন8080

    sudo vi /etc/apache2/ports.conf
    

    সন্ধান করুন বা না থাকলে সেখানে যোগ করুন:

    Listen 8080
    

    বা আপনার পছন্দসই অন্য কোনও বন্দর যেমন বন্দর > 1024এবং নির্বাচিত বন্দর অন্য কোনও প্রক্রিয়া দ্বারা ব্যবহৃত হয় না


4
সত্যিই দুর্দান্ত ব্যাখ্যা !!!
শিল্পী

দুর্দান্ত ব্যাখ্যা, ভাল বুঝেছি!
মাভিরাবাওয়া টিম

দুর্দান্ত ব্যাখ্যা। কেন serviceপছন্দসই পদ্ধতি ব্যবহার করছেন?
ফাঁকা 20

তারা আপস্টার্ট নির্দেশিকা, এই প্রশ্নটি দেখুন এবং জবাব জিজ্ঞাসা করুন এবং জিজ্ঞাসা করুন জিজ্ঞাসুবন্টু / কি । মনে রাখবেন এই পরিষেবাগুলি (ডেমন) হ্যান্ডলিং (কখন এবং কীভাবে স্টপ-স্টপ করবেন) এর প্রশ্নটি এবং আমার উত্তরটিও অনুমতি সমস্যাগুলি মোকাবেলা করে।
স্টিফ কে

অপ্রয়োজনীয় শব্দচয়ন। উত্তর সমস্যার সমাধান করে না।
রেজগি

7

অ্যাপাচি সার্ভার শুরু / বন্ধ / পুনঃসূচনা করার কমান্ডগুলি নিম্নলিখিত:

  • শুরুতেই:

    sudo /etc/init.d/apache2 start
    
  • থামতে:

    sudo /etc/init.d/apache2 stop
    
  • নতুন করে শুরু:

    sudo /etc/init.d/apache2 restart
    

পুনর্সূচনা কম্পিউটার পর, এটা সব কমান্ড আপনার প্রস্তাবিত ঠিক বলে মনে হয় কিন্তু আমি পুনরায় চালু করার সময় এই বার্তা পেয়েছিলাম ... ওয়েব সার্ভার apache2 apache2 পুনরায় আরম্ভ করুন: নির্ভরযোগ্যভাবে নির্ধারণ করা যায়নি সার্ভার সম্পূর্ণরূপে নির্ধারিত একটি ডোমেইনের নাম, servername জন্য 127.0.1.1 ব্যবহার
Artisan

1
@ কংঠাপ: এটি কোনও ত্রুটি নয়। আমি নিশ্চিত যে এই বার্তার জন্য ওয়েবটি ব্যাখ্যায় পূর্ণ।
আন্ড্রেয়া কারবেলিনি

হ্যাঁ, @ আন্দ্রে কার্বেলিনী সঠিক। এটি কোনও ত্রুটি নয়, কারণ এটি বলছে যে আপনার আইপিতে কোনও মেইল ​​জিওএমএইচ.কমের জন্য কোনও সম্পূর্ণ যোগ্যতাযুক্ত ডোমেন নাম নেই।
সৌরভ কুমার

4

কমান্ড জারি করে সেলিনাক্স বন্দরের প্রসঙ্গটি পরীক্ষা করুন

semanage port -l | grep http

এটি যদি http_port_t তালিকায় উপস্থিত থাকে তবে এটি ঠিক আছে, অন্যথায় আপনার পোর্টটি যুক্ত করুন

semanage port -a -t http_port_t -p tcp 80

বা এমন কিছু যা আপনি বরাদ্দ করতে চান।


1

এটি একটি সেলিনাক্স ত্রুটি, বা কমপক্ষে এটি আমার ক্ষেত্রে ছিল। হয় বুলিয়ান পরিবর্তন করুন, সেলিনাক্স অক্ষম করুন, বা অনুমতি সহকারে সেট করুন setenforce 0

বুলিয়ান পরিবর্তনের জন্য আপনাকে চালানো দরকার getenforce -a | grep http, এবং "HTTP সংযোগের অনুমতি দিন" অনুসন্ধান করুন। এটিকে অনুলিপি করুন এবং "অন" প্রতিস্থাপন করুন যেখানে তালিকা বলছে "- বন্ধ"


উবুন্টু সেলআনাক্স না করে অ্যাপআরমার ব্যবহার করে, সুতরাং আপনার উত্তরটি উবুন্টুর কাছে অপ্রাসঙ্গিক।
এসএক্সএক্স 1

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