A2ensite (000-default.conf&& default-ssl.conf এর উপর দিয়ে যাওয়ার সময়) সমস্ত সাইটকে কীভাবে সক্ষম করবেন?


11

আমি অ্যাপাচি 2 সহ উবুন্টু সার্ভার 16.04.2 ব্যবহার করি, যার উপরে আমি আমার ব্যক্তিগত ওয়েবসাইটগুলি সঞ্চয় করি।

/etc/apache2/sites-available(এর পাশাপাশি 000-default.confএবং ssl-default.conf) এর অধীনে আমার সমস্ত কনফাইব ফাইল সক্ষম করতে আমি গিয়ে /var/www/htmlমৃত্যুদণ্ড কার্যকর করেছি a2ensite

আমাকে তখন বলা হয়েছিল:

Your choices are: 
000-default default-ssl domain.tld1 domain.tld2 domain.tld3 domain.tld4 
Which site(s) do you want to enable (wildcards ok)?

আমি তখন Ctrl+ Cঅন্য কিছু চালানো লক্ষ্য করেছিলাম ।

আমি নির্দিষ্ট সাইটকে লক্ষ্য না করেই সমস্ত সাইট কনফার্মগুলি স্বয়ংক্রিয়ভাবে সক্ষম করার জন্য একটি উপায় খুঁজছি I আমি কেবল একটি কমান্ড চালাতে চাই যা আমি নিজেরাই যুক্ত করা সমস্ত সাইট কনফকে সক্ষম করে তুলি।

উত্তর:


18

পাশাপাশি আপনার কনফিগার ডিরেক্টরিতে সন্ধান করুন।

find /etc/apache2/sites-available/ -type f -and -not -name "*default*" -exec a2ensite {} \;

এটি আপনার সমস্ত কনফিগারেশন ফাইলগুলির সন্ধান করে যা তাদের নামে "ডিফল্ট" নেই এবং এগুলি সক্রিয় করে।


1
আপনার *.confএক্সটেনশনযুক্ত ফাইলগুলিও অনুসন্ধান করা উচিত । অন্যথায় a2ensite অভিযোগ করবে যে সাইটের অস্তিত্ব নেই
ড্যান

@ কনফারেক্ট ডিরেক্টরিতে অনুসন্ধান করায় যেহেতু প্রয়োজন নেই ড্যান।
জিয়াজিস

আমি অনুমান করি যে এই পদ্ধতিটি নীতিগতভাবে, এনগিনেক্স এসব্লকস তৈরি করার সময়ও খুব ভাল, এবং কেবল অ্যাপাচি ভোস্টগুলির পক্ষে নয়।

8

আপনাকে নেভিগেট করতে হবে /etc/apache2/sites-availableএবং তারপরে কমান্ডটি চালাতে হবে:

sudo a2ensite *

এটি ডিরেক্টরিতে সমস্ত সাইট সক্ষম করবে। (ফাইলগুলি xxx.conf এর মতো কিছু হওয়া উচিত)

এবং তারপরে অ্যাপাচি ব্যবহার করে পুনরায় লোড করুন sudo service apache2 reload

সুতরাং আপনার কমান্ড ক্রমটি এর মতো হওয়া উচিত:

cd /etc/apache2/sites-available
sudo a2ensite *
sudo service apache2 reload

এটি default-ssl.confEnabling site default-ssl.

dpkg -Sকনফিগারেশন ফাইলটি কোনও প্যাকেজ থেকে এসেছে কিনা তা আপনি দেখতে ব্যবহার করতে পারেন।
মুরু

1

আমাদের বর্তমান অবস্থান কী তা বিবেচনা না করে, কমান্ডটি এতে sudo a2ensite "*.conf"থাকা সমস্ত কনফিগারেশন ফাইল সক্ষম করার চেষ্টা করবে /etc/apache2/sites-available/

পরবর্তী আমরা a2dissite 000-default.conf default-ssl.confডিফল্ট অ্যাপাচি কনফিগারেশন অক্ষম করতে ব্যবহার systemctl restart apache2.serviceকরতে পারি এবং তারপরে আমরা এটি পুনরায় চালু করতে ব্যবহার করতে পারি।

আমরা এগুলি একটি একক কমান্ডের মতো চালাতে পারি:

sudo bash -c "a2ensite '*.conf' && a2dissite 000-default.conf default-ssl.conf && systemctl restart apache2.service"

আরও কিছু, আমরা বাশের একটি ফাংশনের মাধ্যমে একটি কাস্টম কমান্ড তৈরি করতে পারি:

function a2ensites {
        sudo bash -c "a2ensite '*.conf' && a2dissite 000-default default-ssl && systemctl restart apache2.service"
}
export -f a2ensites

এখন আমাদের কাছে কমান্ড রয়েছে , এই কাজটি করার জন্য ডিজাইন করা হয়েছে। এই আদেশটি স্থায়ী করতে, আমাদের অবশ্যই উপরের লাইনগুলি ফাইলের নীচে এবং তারপরে রেখে দিতে হবে। পরবর্তী সহজ স্ক্রিপ্ট এই কাজটি সম্পাদন করবে:a2ensites~/.bashrcsource

 printf "\nfunction a2ensites { \n\tsudo bash -c \"a2ensite '*.conf' && a2dissite 000-default.conf default-ssl.conf && systemctl restart apache2.service\" \n}\nexport -f a2ensites\n" | tee -a $HOME/.bashrc; source $HOME/.bashrc

প্রথম লাইনটি সত্য নয়। *আগে এটি প্রেরণ করা পরার ওয়াইল্ডকার্ড সম্প্রসারিত হচ্ছে a2ensiteআমার ক্ষেত্রে কমান্ড। তবে এটি কাজ করে sudo a2ensite "*.conf"
ড্যান

হাই, @ ড্যান, আমার ক্ষেত্রে (উবুন্টু ১.0.০৪.২) এটি উদ্ধৃতি ছাড়াই সঠিকভাবে কাজ করে। তবে আমি উত্তর আপডেট করেছি। a2ensite '*.conf'আপনার সিস্টেমে সঠিকভাবে কাজ করে কিনা তা আপনি পরীক্ষা করতে পারেন ?
pa4080

1
হ্যাঁ এটি কাজ করে, আমি উবুন্টু 17.04 বিটিডাব্লুতে আছি।
ড্যান

0

এক্সিকিউটিং a2ensite /var/www/html/*/অ্যাপাচি প্রতিটি সাইট কনফকে সক্ষম করবে যা সাইটের ডির মতো একই নামে রয়েছে conf

পার্শ্ব প্রতিক্রিয়া হিসাবে, এটি নিম্নলিখিত ডায়াল্ট থেকে পূর্বাভাস অনুযায়ী সাইট কিরফ ফাইলগুলির সাথে মেলে না এমন সাইট ডায়ারগুলিও মিলানোর চেষ্টা করবে, তবে আমি মনে করি এটি নিরাপদে উপেক্ষা করা যেতে পারে:

ERROR: Site /var/www/html/domain.tld1 does not exist!
ERROR: Site /var/www/html/domain.tld2 does not exist!
ERROR: Site /var/www/html/nice_directory does not exist!
ERROR: Site /var/www/html/nice_file does not exist!

কনফিড ফাইলগুলি সক্ষম করার পরে আপনার সম্ভবত অ্যাপাচি পুনরায় চালু করতে হবে:

systemctl restart apache2.service

1
আমি নিশ্চিত নই, তবে ওয়েব সাইটের ফোল্ডারে কেন আপনার সাইটের কনফিগারেশন রয়েছে? /etc/apache2/sites-availableআপনার সাইটের কনফিগারেশনের জন্য ফোল্ডারটি ব্যবহার করার চেষ্টা করুন । একবার আপনি এ 2ensite এর মাধ্যমে সক্ষম করুন, সেগুলি স্বয়ংক্রিয়ভাবে লিঙ্ক হয়ে যায় /etc/apache2/sites-enabled। আপনি এখনই যা করছেন তা বেশ অদ্ভুত এবং আপনার ওয়েবসভারটিতে অ্যাক্সেস থাকা প্রত্যেকেরাই আপনার কনফিগারেশনগুলি সন্ধান করতে পারে?
জিয়াজিস

হাই @ জিয়াজিস আমি সত্যিই বুঝতে পারছি না, আপনি আমাকে কেন জিজ্ঞাসা করলেন "আপনার ওয়েবসভারটিতে অ্যাক্সেস রয়েছে এমন সবাই আপনার কনফিগারেশনগুলিতে নজর রাখতে পারে?" আমি একমাত্র সার্ভারটি ব্যবহার করি; আমি না থাকলে সাধারণত অন্যান্য ব্যবহারকারীদের ডকুমেন্ট রুটে অ্যাক্সেস থাকত না। যাইহোক, আপনি দয়া করে কেন এটি জিজ্ঞাসা করতে পারেন এবং ঠিক কী আপনি ভুল বলে মনে করেন?

ভাল আমি নিশ্চিত না আপনি কী জন্য এই ওয়েবসারভারটি ব্যবহার করছেন। তবে যদি এটি কোনও লাইভ সিস্টেম হয় যা কোনও অ্যাক্সেস সহ তৃতীয় পক্ষের কাছে পৌঁছানো যায় তবে আপনি চাইবেন না যে আপনার কনফিগারেশন ফাইলগুলি এতে থাকা উচিত /var/www/htmlকারণ এটি default.htmlসাইটটির ডকুমেন্টরুট । সুতরাং আপনার ক্ষেত্রে আপনি কনফিগারেশনগুলি চালাচ্ছেন বলে মনে হচ্ছে ... এটি খোলামেলা মুখের সাথে খাওয়ার মতো, এটি করবেন না ;-)।
জিয়াজিস

আমি বুঝতে পারছি না। আপনি কি মনে করেন যে আমি কনফিড ফাইলগুলি নথির মূলের মধ্যে রেখেছি? কারণ আমি করিনি। আপনি আমাকে সেখানে রাখার পরামর্শ দিচ্ছেন? আমি এটি এড়াতে চাই ... আমি কেবল তাদের 000 টি-ডিফল্ট এবং ডিফল্ট-এসএসএল নয় এমন সক্ষম করতে চাই। বিটিডাব্লু, আমি আমার ব্যক্তিগত ওয়েবসাইটগুলি সঞ্চয় করতে ওয়েবসভারটি ব্যবহার করি।

আহ, আমি দেখতে পেয়েছি - আপনি আপনার সমস্ত রুট ডিরেক্টরীগুলি আপনার কনফিগার ফাইলগুলির মতোই নামকরণ করেছেন। এবং এখানে আমি ভেবেছিলাম আপনি নিজের অ্যাপাচি 2 কনফিগারেশনটি /var/www/htmlআপনার কনফিগার ফোল্ডার হিসাবে পরিবর্তন করেছেন । এনভিএম তখন। আপনার আসলে যা প্রয়োজন তা কেবল একটিfind ./ -type f -and -not -name "*default*" -exec a2ensite {} \;
জিয়াজিস

0

ফাইলের নামে নিম্নলিখিত লাইনগুলি অনুলিপি করুন apache_enable.sh

cd /etc/apache2/sites-available/
a2ensite *
service apache2 reload

এবং apache_enable.shroot ব্যবহারকারী ব্যবহার করে স্ক্রিপ্টটি রিড + এক্সিকিউটেড কমান্ড দেয় এবং চালিত করে


0

ডিফল্ট কনফিগারেশনগুলিকে অন্য ফোল্ডারে সরান এবং তারপরে * আপনার ইচ্ছা মতো আপনার জন্য কাজ করা উচিত।

"সাইটগুলি উপলভ্য" ফোল্ডারে যান কারণ এটি কেবল এই ফোল্ডারে কাজ করে।

সিডি / ইত্যাদি / অ্যাপাচি 2 / সাইট-উপলব্ধ /

sudo a2ensite *

প্রমাণিত


আফাইক, আপনি যখন ডকুমেন্ট রুটটি / ভার্ / www / এইচটিএমএল হয় তখন আপনি সিস্টেমের যে কোনও জায়গা থেকে এটি করতে পারতেন?

গুরুত্বপূর্ণ অংশটি হ'ল / ইত্যাদি / অ্যাপাচি 2_অর_অর / সাইট-উপলব্ধ ফোল্ডার। নথির মূলটি তখন সেই কনফিগারেশনে লিঙ্কযুক্ত। আপনি / ইউএসআর / শেয়ার / এইচটিএলএম এ আপনার রুট রাখতে পারেন এবং এটি কনফ ফাইলটিতে না লিখলে কিছুই পরিবর্তন হবে না। আমি আমার সার্ভারে যে কোনও জায়গায় থাকতে পারি, যতক্ষণ না কনফিড ফাইলগুলি সাইট-উপলভ্য ফোল্ডারে থাকে তবে এ 2ensite এর কাজ করবে।
ক্যারোবেল

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