Apache2 কনফিগার ভেরিয়েবল সংজ্ঞায়িত করা হয় না


65

আমি উবুন্টু 13.10 এ অ্যাপাচি 2 ইনস্টল করেছি। যদি আমি এটি ব্যবহার করে এটি পুনরায় চালু করার চেষ্টা করি

sudo /etc/init.d/apache2 restart

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

AH00558: 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ফাইলটি একবার দেখেছি তবে এটি দিয়ে কী করব তা আমি জানি না।

আমার কি করা উচিৎ?


আপনার এনভ্যাভার্স ফাইলটিতে কী আছে?
etagenklo

উত্তর:


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

এই বার্তাটি প্রদর্শিত হয় কারণ আপনি সরাসরি অ্যাপাচি 2 বাইনারি কার্যকর করেছেন। উবুন্টু / ডেবিয়ানে অ্যাপাচি কনফিগারেশন এনভ্বর ফাইলের উপর নির্ভর করে যা কেবলমাত্র সক্রিয়।

আপনি যদি init স্ক্রিপ্ট বা অ্যাপাচিেক্টল দিয়ে অ্যাপাচি শুরু করেন।

আপনার আসল সমস্যাটি হ'ল আপনার মেশিনের জন্য সঠিক হোস্টনাম (fqdn) নেই।

আপনি তা পরিবর্তন করতে না পারেন, পরিবর্তন ServerNameমধ্যে পরিবর্তনশীল /etc/apache2/apache2.confকরতে localhostঅথবা আপনার prefered FQDN।


1
আপনি init স্ক্রিপ্ট সম্পর্কে ঠিক বলেছেন। তারপর আমি যোগ ServerName localhostকরতে apache2.conf(কারণ httpd.confসবসময় উবুন্টু তে ব্যবহার করা হয় না) এবং সবকিছু এখন এটি করা উচিত হিসাবে কাজ করে। আপনি কি দয়া করে আপনার উত্তরগুলিতে বিশদ যুক্ত করতে পারেন, যাতে আমি এটি গ্রহণযোগ্য হিসাবে পতাকাঙ্কিত করতে পারি?
কর্ট বাউরবাাকি

1
apache2ctlআমার পক্ষে কাজ না করে দিয়ে শুরু করে আমাকে পরিষেবাটি ব্যবহার করতে হয়েছিল :sudo service apache2 restart
ouডার্ড লোপেজ

তবে কেন তারা apache2প্রথমে কমান্ডটি ভেঙে ফেলল?
পুনরায় পোস্টার

2
এই সমাধানগুলি কেবল সমাধান করে AH00558: apache2: Could not reliably determine the server's fully qualified domain nameতবে এটি সমাধান করে না Config variable ${APACHE_LOCK_DIR} is not defined
ভ্লাদিমির ভুকানাক

আমার জন্যও আমি একই সমস্যাটি দেখতে পাচ্ছি।
indianwebdevil

84

আপনার এনভরদের এটিকে এভাবে চালিত করে উত্স করুন:

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"

/etc/apache2/envvarsবিদ্যমান নেই
মার্ক রিচম্যান

6
ফাইলটি আমার উবুন্টু সিস্টেমে বিদ্যমান আছে, তবে শেল এটিকে শেল স্ক্রিপ্ট হিসাবে স্বীকৃতি দেয় না, সুতরাং আমার এটি প্রয়োজন: উত্স / ইত্যাদি / অ্যাপাচি 2 / এনভায়ার্স; apache2 -V
বেন ক্রোয়েল

6
apachectl -Vম্যানুয়ালি পরিবেশের ভেরিয়েবলগুলি লোড করার পরিবর্তে কেবল ব্যবহার করতে পারি ।
স্যাম শেহনার্ট

এখনও যদি কাজ না করে থাকে তবে উপরের উত্তর অনুসারে source /etc/apache2/envvars && sudo -E apache2 -Vলগইন করুন বা চেষ্টা করুন rootdo নিয়মিত ব্যবহারকারীর কাছে অ্যাপাচি 2 এনভিটি স্রোটিং করা তারপরে সুডো ব্যবহার করা দরকার ডাব্লু / ও "-ই" কাজ করবে না। নিয়মিত ব্যবহারকারীর পার্মস অন্যান্য সমস্যার মধ্যে শংসাপত্রের ব্যক্তিগত ফোল্ডারটি পড়তে পারে না। আপনি একটি ত্রুটি পাবেন। আপনার sudo -E বা সম্পূর্ণরূপে রুট অ্যাকাউন্টের অধীনে চালানো দরকার।
bshea

এটি অ্যাচিচি ডকার ফোরগ্রাউন্ড সেন্টিমিটার হিসাবে চালানোর জন্য খুব দরকারী। উদাCMD . /etc/apache2/envvars; /usr/sbin/apache2 -DFOREGROUND
অ্যালাস্টার ম্যাককর্মাক

7

আপনার /etc/apache2/envvarsAPachE_LOCK_DIR এর জন্য পরীক্ষা করুন । আমার উবুন্টু ১২.০৪-এ, এটি /var/lock/apache2$SUFFIXসাধারণত SUFFIX খালি।

ডিরেক্টরিটি বিদ্যমান এবং লিখিতযোগ্য কিনা তা পরীক্ষা করুন।

এটা কি envvars ফাইল সঠিকভাবে উত্সাহিত করা যায় না? আপনার যদি একবার নজর থাকে তবে /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'

যদি কিছু না কাজ করে তবে আমি প্যাকেজগুলি পুনরায় ইনস্টল করার চেষ্টা করব।


2

অন্যরা যেমন বলেছে, আপনার পরিবেশটি সরাসরি চালানোর আগে আপনার উত্সটি লোড করতে হবে (উত্স) অন্য বিকল্পটি হ'ল: apache2ctlযেমন

sudo apache2ctl -S

আমার হোস্টদের ডাম্প করতে


2

টি এল; ডিআর; আপনার ইতিমধ্যে যা আছে তা ব্যবহার করে আপনার অ্যাপাচি 2 শুরু করা উচিত:

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

বিশদ:

AH00558: apache2: 127.0.1.1 ব্যবহার করে সার্ভারের সম্পূর্ণরূপে যোগ্যতাসম্পন্ন ডোমেন নামটি বিশ্বস্তভাবে নির্ধারণ করা যায়নি। এই বার্তাটি দমন করতে বিশ্বব্যাপী 'সার্ভারনাম' নির্দেশিকা সেট করুন

এই বার্তাটির অর্থ হল আপনার সার্ভারের নাম / ডোমেন নাম নির্ধারণ করা দরকার। লোকালহোস্ট / উত্পাদনের পরীক্ষার জন্য এটি করা অপরিহার্য নয়, আপনার এটি নিয়ে চিন্তা করার দরকার নেই।

আপনি যখন অন্যভাবে এটি চালানোর চেষ্টা করেন, কেবলমাত্র ব্যবহার apache2করেই, আপনি আগে যা বলা হয়েছিল তার কারণে আপনি এই ত্রুটি বার্তাগুলি পাবেন: আপনি যখন ডিফল্ট স্ক্রিপ্টটি ব্যবহার শুরু করেন তখন পরিবেশের পরিবর্তনগুলি সংজ্ঞায়িত হয় init.d


-1

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

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

1
প্রথমে পড়ুন, ঠিক এই লাইনটি ইতিমধ্যে সরবরাহ করা হয়েছিল, এবং এটিও ব্যাখ্যা করা হয়েছিল, কেন এটি সঠিক উত্তর নয়।
এসডমিন

-2

আপনাকে ডকুমেন্টরুটটি আপডেট /var/www/htmlকরতে হবে/var/www

ফাইল সম্পাদনা /etc/apache2/sites-available/000-default.conf নিম্নরূপ

DocumentRoot /var/www

-2

এটি আমার পক্ষে কাজ করে

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

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