AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 558283
Accepted
Kurt Bourbaki
Kurt Bourbaki
Asked: 2013-11-30 08:49:38 +0800 CST2013-11-30 08:49:38 +0800 CST 2013-11-30 08:49:38 +0800 CST

未定义 Apache2 配置变量

  • 772

我在 ubuntu 13.10 上安装了 apache2。如果我尝试使用重新启动它

sudo /etc/init.d/apache2 restart

我收到这条消息:

AH00558:apache2:无法可靠地确定服务器的完全限定域名,使用 127.0.1.1。全局设置“ServerName”指令以禁止显示此消息

所以我读到我应该编辑我的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文件,但我不知道如何处理它。

我应该怎么办?

apache-2.2
  • 8 8 个回答
  • 223267 Views

8 个回答

  • Voted
  1. nadavkav
    2014-06-29T02:51:32+08:002014-06-29T02:51:32+08:00

    通过像这样运行它来获取您的环境变量:

    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"
    
    • 104
  2. Best Answer
    ah83
    2013-11-30T09:50:29+08:002013-11-30T09:50:29+08:00
    [Fri Nov 29 17:35:43.942472 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOCK_DIR} is not defined
    

    显示此消息是因为您直接执行了 apache2 二进制文件。在 Ubuntu/Debian 中,apache 配置依赖于仅激活的 envvar 文件。

    如果您使用 init 脚本或 apachectl 启动 apache。

    您最初的问题是您的机器没有正确的主机名(fqdn)。

    如果您无法更改它,请将ServerName变量更改/etc/apache2/apache2.conf为localhost您喜欢的 FQDN。

    • 69
  3. erny
    2013-11-30T09:49:40+08:002013-11-30T09:49:40+08:00

    检查您/etc/apache2/envvars的 APACHE_LOCK_DIR。在我的 Ubuntu 12.04 中,这是/var/lock/apache2$SUFFIXSUFFIX 通常为空。

    检查目录是否存在且可写。

    可能是 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'
    

    如果没有任何效果,我会尝试重新安装软件包。

    • 7
  4. amd
    2015-02-25T14:38:13+08:002015-02-25T14:38:13+08:00

    正如其他人所说,您必须在直接运行之前加载(源)您的环境另一个选项是使用: apache2ctl例如

    sudo apache2ctl -S

    转储我的主机

    • 3
  5. George
    2016-06-03T03:07:02+08:002016-06-03T03:07:02+08:00

    TL;博士; 您应该使用已有的启动 apache2:

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

    详细的:

    AH00558:apache2:无法可靠地确定服务器的完全限定域名,使用 127.0.1.1。全局设置“ServerName”指令以禁止显示此消息

    此消息意味着您需要定义您的服务器名称/域名。对于本地主机/生产测试来说,这不是必需的,您不必担心。

    当您尝试以另一种方式运行它时,仅使用apache2,您将收到这些错误消息,因为之前说过:环境变量是在您开始使用默认脚本时定义的init.d。

    • 2
  6. Lihnjo
    2016-06-07T00:15:54+08:002016-06-07T00:15:54+08:00

    这对我有用

    sudo -u root bash -c "source /etc/apache2/envvars; apache2 -V"
    
    • 0
  7. Eugen Konkov
    2016-04-14T06:44:22+08:002016-04-14T06:44:22+08:00

    也许这会解决你的问题

    sudo bash -c '. /etc/apache2/envvars ; apache2'
    
    • -1
  8. user219404
    2014-05-13T02:31:02+08:002014-05-13T02:31:02+08:00

    您需要将 DocumentRoot 从更新/var/www/html为/var/www

    编辑文件/etc/apache2/sites-available/000-default.conf如下

    DocumentRoot /var/www
    
    • -2

相关问题

  • Apache Django Mod_Wsgi - 自动重新加载应用程序

  • Apache:对多个虚拟主机使用相同的目录指令

  • Apache 上的子域不工作 - 找不到服务器

  • PHP 作为 CGI 还是 Apache 模块?

  • 避免将某些丢失的文件记录到 Apache2 错误日志中

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve