सिस्टम के साथ: Ubuntu 14.04 दीप समानताएं वी एम पर चल Vagranta2ensite: त्रुटि 'साइट ___ मौजूद नहीं है', यहां तक कि .conf फ़ाइल
के साथ सेट अपमैं करने के लिए मेरी पहली गैर तुच्छ खोल स्क्रिप्ट लिख रहा हूँ मेरे मैक लैपटॉप पर एक देव वीएम में नई वेब परियोजनाएं जोड़ें।
- /var/www में एक डिफ़ॉल्ट फ़ोल्डर संरचना बनाएं/
- /etc/apache2/साइटों से उपलब्ध नए डोमेन sed
- के माध्यम से प्लेसहोल्डर की जगह के साथ करने के लिए एक .conf vhost फ़ाइल जोड़ें नई साइट सक्षम करें और पुन: प्रारंभ अपाचे
मैं फोल्डर और अधिक फ़ाइलों की प्रतिलिपि हो गया और sed किया है मेरी index.html और .conf vhost फ़ाइल को अनुकूलित कर खुश लगता है, लेकिन a2ensite/आदि में .conf फ़ाइल को देखने के लिए प्रतीत नहीं होता है/apache2/साइट-उपलब्ध/
मैं साइट को सक्षम करने का प्रयास करने से पहले अपने अस्तित्व के लिए परीक्षण करता हूं और एक डीबग सूची भी प्रिंट करता हूं: ls -al /etc/apache2/sites-available/ | grep $CONFFILE
।
मैंने उबंटू 13 (या 14) के बाद .conf एक्सटेंशन होने के महत्व के बारे में यहां और कहीं और पढ़ा है जो एक बहुत ही आम मुद्दा प्रतीत होता है। मेरी vhost फ़ाइल में .conf एक्सटेंशन है, इसलिए यह एक अलग समस्या की तरह लगता है।
क्या कोई मुझे सही दिशा में इंगित कर सकता है? मैं इस विशेष समस्या के साथ अन्य पोस्टिंग नहीं ढूंढ पाया है।
मेरे भावना है कि मैं a2ensite
आदेश में मेरी $CONFFILE
चर विस्तार में एक त्रुटि मिल गया है क्योंकि त्रुटि .conf विस्तार भले ही निर्देशिका सूची करता दिखाई नहीं देता:
ERROR: Site /etc/apache2/sites-available/example-com-80 does not exist!
संपादित करें:
:नीचे माइकल के सुझाव के अनुसार कमांड लाइन से a2ensite चलाने के बाद, यह विस्तार प्रदर्शित नहीं करता है ठीक पार्स करने के लिए लग रहा था, लेकिन अभी भी
$ sudo a2ensite example-com-80.conf
Enabling site example-com-80.
To activate the new configuration, you need to run:
service apache2 reload
समाप्ति संपादित
संपादित करें: जवाब
पर व्यापक दृष्टिकोण के साथ खोज के बाद पाया जाता है, Ubuntu 14.04 के बजाय a2ensite
Vagrant आदि, मैं a two year old question पाया जहां @ raina77ow अंक बाहर a2ensite
बस चाहता है कि साइट का नाम, पूरा पथ नहीं। sudo a2ensite /etc/apache2/sites-available/$CONFFILE
से sudo a2ensite $CONFFILE
बदलना स्क्रिप्ट कार्य के रूप में कार्य करता है। यह भी बताता है कि कमांड लाइन से a2ensite
चलाने के मेरे पिछले प्रयास क्यों विफल हुए; मैं इसे अंदर/var/www/templates/से चला रहा था और .conf फ़ाइल के पूरे पथ में गुजर रहा था।
अब, एक स्टैक ओवरफ्लो प्रश्न, मुझे यह कैसे संकेत देना चाहिए कि मेरे पास सीमित प्रतिष्ठा का समाधान है? और क्रेडिट ठीक से दे?
ऊपर संपादित देखें समाधान के लिए
example.com साथकंसोल आउटपुट:
$ ./newvhost
New Server Name with Top Level Domain: example.com
Validating: example.com
New DocumentRoot created: /var/www/example
Copying template structure
Creating: example-com-80.conf
-rw-r--r-- 1 root root 811 Feb 17 15:11 example-com-80.conf
Enabling site
ERROR: Site /etc/apache2/sites-available/example-com-80 does not exist!
newvhost स्क्रिप्ट:
OLDIFS=$IFS
IFS="."
printf "New Server Name with Top Level Domain: "
read NEW_SUBDOMAIN NEW_TLD
IFS=$OLDIFS
NEW_FULL_NAME="$NEW_SUBDOMAIN.$NEW_TLD"
echo "Validating: $NEW_FULL_NAME"
if [[ "$NEW_TLD" != "com" && "$NEW_TLD" != "dev" ]] ; then
echo -e "\E[31;1mTLD must be com or dev! \033[0m"
exit 1
fi
if [ -d "/var/www/$NEW_SUBDOMAIN" ]; then
echo -e "\E[31;1mRoot directory /var/www/$NEW_SUBDOMAIN already exists!\033[0m"
exit 1
fi
mkdir /var/www/$NEW_SUBDOMAIN
if [ -d "/var/www/$NEW_SUBDOMAIN" ]; then
echo "New DocumentRoot created: /var/www/$NEW_SUBDOMAIN"
else
echo -e "\E[31;1mUnable to make directory\033[0m"
exit 1
fi
echo "Copying template structure"
cp /var/www/templates/structure/. /var/www/$NEW_SUBDOMAIN/ -R
sed -i "s/TEMPLATE/$NEW_FULL_NAME/g" /var/www/$NEW_SUBDOMAIN/index.html
CONFFILE="$NEW_SUBDOMAIN-$NEW_TLD-80.conf"
echo "Creating: $CONFFILE"
sudo cp /var/www/templates/vhost_template.conf /etc/apache2/sites-available/$CONFFILE
sudo sed -i "s/FULLNAME/$NEW_FULL_NAME/g" /etc/apache2/sites-available/$CONFFILE
sudo sed -i "s/DOMAINNAME/$NEW_SUBDOMAIN/g" /etc/apache2/sites-available/$CONFFILE
if [ -e "/etc/apache2/sites-available/$CONFFILE" ]; then
ls -al /etc/apache2/sites-available/ | grep $CONFFILE # DEGBUG Listing to doubly confirm $CONFFILE exists
echo "Enabling site"
sudo a2ensite /etc/apache2/sites-available/$CONFFILE
sudo apache2ctl graceful
fi
धन्यवाद,
में सुधार के लिए किसी भी अन्य सुझाव लिपि बहुत हैं जब तक स्टैक ओवरफ्लो की शर्तों से परेशान नहीं होता है तब तक आपका स्वागत है।
मैं यह जांचने की कोशिश करता हूं कि 'example-com-80.conf' फ़ाइल स्वयं खराब नहीं है, मैन्युअल रूप से कमांड लाइन' $ sudo a2ensite example-com-80.conf' –
@MichaelColeman से इसे पार्स करने का प्रयास करें, मैंने जोड़ा आपके सुझाव से मूल पोस्ट में कंसोल आउटपुट। साथ ही, एक sym लिंक अब/साइट-सक्षम/ – jslanger
@ raina77ow में एक समाधान था [एक पुराना प्रश्न जो मुझे अभी तक नहीं मिला] में एक समाधान था (http://stackoverflow.com/questions/13035385/a2ensite-from- स्क्रिप्ट -पाथ) – jslanger