सवाल Apache2 कॉन्फ़िगरेशन चर परिभाषित नहीं है


मैंने उबंटू 13.10 पर apache2 स्थापित किया। अगर मैं इसे पुनरारंभ करने का प्रयास करता हूं

sudo /etc/init.d/apache2 restart

मुझे यह संदेश मिलता है:

एएच 00558: apache2: 127.0.1.1 का उपयोग कर सर्वर के पूर्णतः योग्य डोमेन नाम को विश्वसनीय रूप से निर्धारित नहीं कर सका। इस संदेश को दबाने के लिए वैश्विक स्तर पर 'सर्वरनाम' निर्देश सेट करें

तो मैंने पढ़ा कि मुझे अपना संपादन करना चाहिए httpd.conf फ़ाइल। लेकिन, क्योंकि मैं इसे नहीं ढूंढ सकता /etc/apache2/ फ़ोल्डर, मैंने इस आदेश का उपयोग करके इसे खोजने का प्रयास किया:

/usr/sbin/apache2 -V

लेकिन मुझे जो उत्पादन मिलता है वह यह है:

[Fri Nov 29 17:35:43.942472 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOCK_DIR} is not defined
[Fri Nov 29 17:35:43.942560 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_PID_FILE} is not defined
[Fri Nov 29 17:35:43.942602 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_RUN_USER} is not defined
[Fri Nov 29 17:35:43.942613 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_RUN_GROUP} is not defined
[Fri Nov 29 17:35:43.942627 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Fri Nov 29 17:35:43.947913 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Fri Nov 29 17:35:43.948051 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Fri Nov 29 17:35:43.948075 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOG_DIR} is not defined

AH00526: Syntax error on line 74 of /etc/apache2/apache2.conf:
Invalid Mutex directory in argument file:${APACHE_LOCK_DIR}

लाइन 74 का /etc/apache2/apache2.conf क्या यह:

Mutex file:${APACHE_LOCK_DIR} default

मैंने मेरी तरफ देखा /etc/apache2/envvar फ़ाइल, लेकिन मुझे नहीं पता कि इसके साथ क्या करना है।

मुझे क्या करना चाहिए?


54
2017-11-29 16:49


मूल


आपकी envvars फ़ाइल में क्या है? - etagenklo


जवाब:


[Fri Nov 29 17:35:43.942472 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOCK_DIR} is not defined

यह संदेश प्रदर्शित होता है क्योंकि आपने सीधे apache2 बाइनरी निष्पादित की है। उबंटू / डेबियन में अपाचे कॉन्फ़िगरेशन envvar फ़ाइल पर निर्भर करता है जो केवल सक्रिय होता है अगर आप init स्क्रिप्ट या apachectl के साथ apache शुरू करते हैं।

आपकी मूल समस्या यह है कि आपकी मशीन के लिए आपके पास कोई उचित होस्टनाम (fqdn) नहीं है। यदि आप इसे बदल नहीं सकते हैं, तो बदलें ServerName में चर /etc/apache2/apache2.conf सेवा मेरे localhost या आपके पसंदीदा एफक्यूडीएन।


51
2017-11-29 17:50



आप init स्क्रिप्ट के बारे में सही हैं। फिर मैंने जोड़ा ServerName localhost सेवा मेरे apache2.conf (इसलिये httpd.conf हमेशा उबंटू पर प्रयोग नहीं किया जाता है) और अब सबकुछ काम करता है जैसा इसे करना चाहिए। क्या आप कृपया अपने उत्तरों में विवरण जोड़ सकते हैं, ताकि मैं इसे स्वीकार कर सकूं? - Kurt Bourbaki
के साथ शुरू apache2ctl मेरे लिए काम नहीं किया, मुझे करना था सेवा का प्रयोग करें: sudo service apache2 restart - Édouard Lopez
लेकिन उन्होंने क्यों तोड़ दिया apache2 पहली जगह में आदेश? - reinierpost
यह समाधान केवल हल करता है AH00558: apache2: Could not reliably determine the server's fully qualified domain name लेकिन यह हल नहीं करता है Config variable ${APACHE_LOCK_DIR} is not defined। - Vladimir Vukanac
मेरे लिए भी मैं एक ही मुद्दा देखता हूं। - nepsdotin


इस तरह इसे चलाने से अपने envvars स्रोत:

source /etc/apache2/envvars

और फिर

/usr/sbin/apache2 -V

आपको मिलना चाहिये:

el@apollo:/home/el$ apache2 -V
Server version: Apache/2.4.7 (Ubuntu)
Server built:   Apr  3 2014 12:20:28
Server's Module Magic Number: 20120211:27
Server loaded:  APR 1.5.1-dev, APR-UTIL 1.5.3
Compiled using: APR 1.5.1-dev, APR-UTIL 1.5.3
Architecture:   64-bit
Server MPM:     prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/etc/apache2"
 -D SUEXEC_BIN="/usr/lib/apache2/suexec"
 -D DEFAULT_PIDLOG="/var/run/apache2.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="mime.types"
 -D SERVER_CONFIG_FILE="apache2.conf"

72
2018-06-28 10:51



/etc/apache2/envvarsअस्तित्व में नहीं है - Mark Richman
फ़ाइल मेरे उबंटू सिस्टम पर मौजूद है, लेकिन खोल इसे शेल स्क्रिप्ट के रूप में नहीं पहचानता है, इसलिए मुझे इसकी आवश्यकता है: स्रोत / आदि / apache2 / envvars; apache2 -V - Ben Crowell
यह स्वीकार्य उत्तर होना चाहिए !! धन्यवाद! - VaTo
बस उपयोग कर सकते हैं apachectl -V मैन्युअल रूप से पर्यावरण चर में लोड करने के बजाय। - Sam Sehnert
यदि अभी भी काम नहीं कर रहा है, तो कोशिश करें source /etc/apache2/envvars && sudo -E apache2 -V या के रूप में लॉगिन करें root और उपरोक्त प्रति जवाब करो। एक नियमित उपयोगकर्ता को apache2 env को सोर्स करना, जिसे सूडो का उपयोग करने की आवश्यकता है, w / o "-E" काम नहीं करेगा। नियमित उपयोगकर्ता परमिट अन्य समस्याओं के बीच प्रमाण पत्र निजी फ़ोल्डर नहीं पढ़ सकते हैं। आपको एक त्रुटि मिलेगी। आपको रूट खाते के तहत पूरी तरह से sudo -E या चलाने की आवश्यकता है। - bshea


अपनी जाँच /etc/apache2/envvars APACHE_LOCK_DIR के लिए। मेरे उबंटू 12.04 में, यह है /var/lock/apache2$SUFFIX, एसयूएफएफएक्स सामान्य रूप से खाली होने के नाते।

जांचें कि क्या निर्देशिका मौजूद है और लिखने योग्य है।

हो सकता है कि envvars फ़ाइल सही ढंग से sourced नहीं है? यदि आप एक नज़र डालें /etc/init.d/apache2 आप देख सकते हैं कि यह सोर्स किया गया है।

मेरा (डिफ़ॉल्ट) /etc/apache2/envvars:

# envvars - default environment variables for apache2ctl

# this won't be correct after changing uid
unset HOME

# for supporting multiple apache2 instances
if [ "${APACHE_CONFDIR##/etc/apache2-}" != "${APACHE_CONFDIR}" ] ; then
    SUFFIX="-${APACHE_CONFDIR##/etc/apache2-}"
else
    SUFFIX=
fi

# Since there is no sane way to get the parsed apache2 config in scripts, some
# settings are defined via environment variables and then used in apache2ctl,
# /etc/init.d/apache2, /etc/logrotate.d/apache2, etc.
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
export APACHE_PID_FILE=/var/run/apache2$SUFFIX.pid
export APACHE_RUN_DIR=/var/run/apache2$SUFFIX
export APACHE_LOCK_DIR=/var/lock/apache2$SUFFIX
# Only /var/log/apache2 is handled by /etc/logrotate.d/apache2.
export APACHE_LOG_DIR=/var/log/apache2$SUFFIX

## The locale used by some modules like mod_dav
export LANG=C
## Uncomment the following line to use the system default locale instead:
#. /etc/default/locale

export LANG

## The command to get the status for 'apache2ctl status'.
## Some packages providing 'www-browser' need '--dump' instead of '-dump'.
#export APACHE_LYNX='www-browser -dump'

## If you need a higher file descriptor limit, uncomment and adjust the
## following line (default is 8192):
#APACHE_ULIMIT_MAX_FILES='ulimit -n 65536'

अगर कुछ भी काम नहीं करता है तो मैं पैकेज को पुनर्स्थापित करने का प्रयास करूंगा।


7
2017-11-29 17:49





जैसा कि अन्य ने कहा है, आपको सीधे इसे चलाने से पहले अपने पर्यावरण को लोड करना होगा (स्रोत) एक और विकल्प का उपयोग करना है: apache2ctl जैसे

sudo apache2ctl -S 

मेरे मेजबान डंप करने के लिए


2
2018-02-24 22:38





टी एल; डॉ; आपके पास पहले से मौजूद अपाचे का उपयोग करके आपको apache2 शुरू करना चाहिए:

sudo /etc/init.d/apache2 {start|stop|restart}

विस्तृत:

एएच 00558: apache2: 127.0.1.1 का उपयोग कर सर्वर के पूर्णतः योग्य डोमेन नाम को विश्वसनीय रूप से निर्धारित नहीं कर सका। इस संदेश को दबाने के लिए वैश्विक स्तर पर 'सर्वरनाम' निर्देश सेट करें

इस संदेश का अर्थ है कि आपको अपना सर्वर नाम / डोमेन नाम परिभाषित करने की आवश्यकता है। स्थानीयहोस्ट / उत्पादन के परीक्षण के लिए ऐसा करना आवश्यक नहीं है, आपको इसके बारे में चिंता करने की आवश्यकता नहीं है।

जब आप इसे दूसरे तरीके से चलाने का प्रयास करते हैं, केवल इसका उपयोग करते हैं apache2, आपको उन त्रुटि संदेशों को प्राप्त किया जाएगा जो पहले कहा गया था: जब आप डिफ़ॉल्ट स्क्रिप्ट का उपयोग शुरू करते हैं तो पर्यावरण चर परिभाषित किए जाते हैं init.d


2
2018-06-02 11:07





शायद यह आपकी समस्या का समाधान करेगा

sudo bash -c '. /etc/apache2/envvars ; apache2'

-1
2018-04-13 14:44



पहले पढ़ें, वास्तव में यह लाइन पहले ही प्रदान की गई थी, और यह भी समझाया गया था, यह सही जवाब क्यों नहीं है। - asdmin


आपको से DocumentRoot को अपडेट करने की आवश्यकता है /var/www/html सेवा मेरे /var/www

फ़ाइल संपादित करें /etc/apache2/sites-available/000-default.conf निम्नलिखित नुसार

DocumentRoot /var/www

-2
2018-05-12 10:31





यह मेरे लिए काम करता है

sudo -u root bash -c "source /etc/apache2/envvars; apache2 -V"

-2
2018-06-06 08:15



प्रश्न में, एक समस्या थी (सर्वर नाम के बारे में एक त्रुटि संदेश) और एक असफल डीबग विधि (जो पर्यावरण चर को सोर्सिंग के कारण नहीं होती है)। आपका उत्तर डीबग विधि को संबोधित करता है, न कि सवाल। - asdmin