Vraag Apache2-configuratievariabele is niet gedefinieerd


Ik heb apache2 geïnstalleerd op ubuntu 13.10. Als ik probeer het opnieuw op te starten met

sudo /etc/init.d/apache2 restart

Ik krijg dit bericht:

AH00558: apache2: Kon de volledig gekwalificeerde domeinnaam van de server niet betrouwbaar vaststellen met behulp van 127.0.1.1. Stel de 'ServerName'-richtlijn globaal in om dit bericht te onderdrukken

Dus ik las dat ik mijn moest bewerken httpd.conf het dossier. Maar omdat ik het niet kan vinden /etc/apache2/ map, probeerde ik het te lokaliseren met behulp van deze opdracht:

/usr/sbin/apache2 -V

Maar de uitvoer die ik krijg is dit:

[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}

Regel 74 van /etc/apache2/apache2.conf is dit:

Mutex file:${APACHE_LOCK_DIR} default

Ik keek naar mijn /etc/apache2/envvar bestand, maar ik weet niet wat ik ermee moet doen.

Wat moet ik doen?


54
2017-11-29 16:49


oorsprong


Wat zit er in je envvars-bestand? - etagenklo


antwoorden:


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

dit bericht wordt weergegeven omdat u het binaire bestand apache2 direct hebt uitgevoerd. In Ubuntu / Debian vertrouwt de apache-config op het envvar-bestand dat alleen is geactiveerd als je apache start met het init-script of apachectl.

uw oorspronkelijke probleem is dat u geen juiste hostnaam (fqdn) voor uw machine hebt. als je het niet kunt veranderen, verander dan de ServerName variabele in /etc/apache2/apache2.conf naar localhost of uw gewenste FQDN.


51
2017-11-29 17:50



Je hebt gelijk over het init-script. Toen voegde ik eraan toe ServerName localhost naar apache2.conf (omdat httpd.conf wordt niet altijd gebruikt op Ubuntu) en nu werkt alles zoals het hoort. Kunt u details aan uw antwoorden toevoegen, zodat ik het als geaccepteerd kan markeren? - Kurt Bourbaki
beginnend met apache2ctl werkte niet voor mij, ik moest wel gebruik de service: sudo service apache2 restart - Édouard Lopez
Maar waarom hebben ze de apache2 commando in de eerste plaats? - reinierpost
Deze oplossing lost alleen op AH00558: apache2: Could not reliably determine the server's fully qualified domain name maar het lost niet op Config variable ${APACHE_LOCK_DIR} is not defined. - Vladimir Vukanac
voor mij zie ik ook hetzelfde probleem. - nepsdotin


Bron uw envvars door het als volgt uit te voeren:

source /etc/apache2/envvars

en dan

/usr/sbin/apache2 -V

Je zou moeten krijgen:

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 bestaat niet - Mark Richman
Het bestand bestaat op mijn ubuntu-systeem, maar de shell herkent het niet als een shellscript, dus ik heb dit nodig: source / etc / apache2 / envvars; apache2 -V - Ben Crowell
Dit zou het geaccepteerde antwoord moeten zijn !! Bedankt! - VaTo
Kon gewoon gebruiken apachectl -V in plaats van het handmatig laden van de omgevingsvariabelen. - Sam Sehnert
Probeer het als het nog steeds niet werkt source /etc/apache2/envvars && sudo -E apache2 -V of log in als root en doen per antwoord hierboven. Sourcing van de apache2 env naar een gewone gebruiker die dan sudo moet gebruiken, werkt niet zonder "-E". Reguliere gebruikerspermissies kunnen onder andere problemen met de privémap van een certificaat niet lezen. U krijgt een foutmelding. U moet su-su of volledig onder root-account uitvoeren. - bshea


Controleer je /etc/apache2/envvars voor de APACHE_LOCK_DIR. In mijn Ubuntu 12.04 is dit /var/lock/apache2$SUFFIX, omdat SUFFIX normaal gesproken leeg is.

Controleer of de map bestaat en beschrijfbaar is.

Kan het zijn dat het bestand envvars niet correct is aangekocht? Als je er naar kijkt /etc/init.d/apache2 je kunt zien dat het afkomstig is.

Mijn (standaard) /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'

Als niets werkt, zou ik proberen het pakket (de pakketten) opnieuw te installeren.


7
2017-11-29 17:49





Zoals eerder gezegd, moet u uw omgeving laden (bron) voordat u deze rechtstreeks uitvoert Een andere optie is om te gebruiken: apache2ctl bijv.

sudo apache2ctl -S 

om mijn hosts te dumpen


2
2018-02-24 22:38





TL; DR; Start apache2 met wat je al hebt:

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

Gedetailleerd:

AH00558: apache2: Kon de volledig gekwalificeerde domeinnaam van de server niet betrouwbaar vaststellen met behulp van 127.0.1.1. Stel de 'ServerName'-richtlijn globaal in om dit bericht te onderdrukken

Dit bericht betekent dat u uw servernaam / domeinnaam moet definiëren. Het is niet essentieel om het voor een localhost te doen of om de productie te testen, je hoeft je er geen zorgen over te maken.

Wanneer u het op de andere manier probeert uit te voeren, alleen gebruiken apache2, u krijgt deze foutmeldingen vanwege wat eerder is gezegd: de omgevingsvariabelen worden gedefinieerd wanneer u het standaardscript gaat gebruiken init.d.


2
2018-06-02 11:07





Misschien lost dit uw probleem op

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

-1
2018-04-13 14:44



lees eerst, precies deze regel werd al verstrekt, en er werd ook uitgelegd, waarom het geen goed antwoord is. - asdmin


U moet de DocumentRoot bijwerken vanaf /var/www/html naar /var/www

Bewerk het bestand /etc/apache2/sites-available/000-default.conf als volgt

DocumentRoot /var/www

-2
2018-05-12 10:31