Apache,问题无法启动LSB:Apache2 Web服务器


11

我使用Ubuntu 16.02。当我尝试时sudo service apache2 restart,它说:

Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details.

然后输入:journalctl -xe,然后请求:

- 
-单位apache2.service已开始启动。
1月11日02:30:46 aleksandr-VirtualBox apache2 [8177]:/etc/init.d/apache2:1:/ etc / apache2 / envvars:envvars:找不到
1月11日02:30:46 aleksandr-VirtualBox apache2 [8177]:/etc/init.d/apache2:49:/ etc / apache2 / envvars:envvars:找不到
1月11日02:30:46 aleksandr-VirtualBox apache2 [8177]:/etc/init.d/apache2:1:/ etc / apache2 / envvars:envvars:找不到
1月11日02:30:46 aleksandr-VirtualBox apache2 [8177]:/etc/init.d/apache2:49:/ etc / apache2 / envvars:envvars:找不到
1月11日02:30:46 aleksandr-VirtualBox apache2 [8177]:*启动Apache httpd Web服务器apache2
1月11日02:30:46 aleksandr-VirtualBox apache2 [8177]:*
1月11日02:30:46 aleksandr-VirtualBox apache2 [8177]:* apache2 configtest失败。
1月11日02:30:46 aleksandr-VirtualBox apache2 [8177]:配置测试的输出为:
1月11日02:30:46 aleksandr-VirtualBox apache2 [8177]:/ usr / sbin / apache2ctl:1:/ etc / apache2 / envvars:envvars:找不到
1月11日02:30:46 aleksandr-VirtualBox apache2 [8177]:/ usr / sbin / apache2ctl:49:/ etc / apache2 / envvars:envvars:找不到
1月11日02:30:46 aleksandr-VirtualBox apache2 [8177]:(2)没有这样的文件或目录:AH02291:无法访问目录'/ etc / apache2 / logs /'作为主要错误日志
1月11日02:30:46 aleksandr-VirtualBox apache2 [8177]:AH00014:配置检查失败
1月11日02:30:46 aleksandr-VirtualBox apache2 [8177]:操作'configtest'失败。
1月11日02:30:46 aleksandr-VirtualBox apache2 [8177]:Apache错误日志可能包含更多信息。
1月11日02:30:46 aleksandr-VirtualBox systemd [1]:apache2.service:控制进程已退出,代码=退出状态= 1
1月11日02:30:46 aleksandr-VirtualBox sudo [8171]:pam_unix(sudo:session):用户root会话关闭
1月11日02:30:46 aleksandr-VirtualBox systemd [1]:无法启动LSB:Apache2 Web服务器。
-主题:单元apache2.service失败
-定义依据:systemd
-支持:http://lists.freedesktop.org/mailman/listinfo/systemd-devel
- 
-单元apache2.service失败。
- 
-结果失败。
1月11日02:30:46 aleksandr-VirtualBox systemd [1]:apache2.service:设备进入失败状态。
1月11日02:30:46 aleksandr-VirtualBox systemd [1]:apache2.service:失败,结果为“退出代码”。
1月11日02:33:09 aleksandr-VirtualBox dhclient [792]:在enp0s8上的192.168.56.101到DHCP56.100端口67的DHCPREQUEST(xid = 0x204f076f)
1月11日02:33:09 aleksandr-VirtualBox dhclient [792]:来自192.168.56.100的192.168.56.101的DHCPACK
1月11日02:33:09 aleksandr-VirtualBox NetworkManager [619]:[1484073189.4253]地址192.168.56.101
1月11日02:33:09 aleksandr-VirtualBox NetworkManager [619]:[1484073189.4260]全体会议24(255.255.255.0)
1月11日02:33:09 aleksandr-VirtualBox NetworkManager [619]:[1484073189.4266]服务器标识符192.168.56.100
1月11日02:33:09 aleksandr-VirtualBox NetworkManager [619]:[1484073189.4273]租约时间1200
1月11日02:33:09 aleksandr-VirtualBox NetworkManager [619]:[1484073189.4279] dhcp4(enp0s8):状态更改为绑定->绑定
1月11日02:33:09 aleksandr-VirtualBox dbus [590]:[系统]通过systemd激活:服务名称='org.freedesktop.nm_dispatcher'unit ='dbus-org.freedesktop.nm-dispatcher.service'
1月11日02:33:09 aleksandr-VirtualBox systemd [1]:正在启动网络管理器脚本分派器服务...
-主题:Unit NetworkManager-dispatcher.service已开始启动
-定义依据:systemd
-支持: 
- 
-Unit NetworkManager-dispatcher.service已开始启动。
1月11日02:33:09 aleksandr-VirtualBox dhclient [792]:绑定到192.168.56.101-在559秒内更新。
1月11日02:33:09 aleksandr-VirtualBox dbus [590]:[系统]成功激活服务'org.freedesktop.nm_dispatcher'
1月11日02:33:09 aleksandr-VirtualBox systemd [1]:启动了网络管理器脚本分派器服务。
-主题:Unit NetworkManager-dispatcher.service已完成启动
-定义依据:systemd
-支持: 
- 
-Unit NetworkManager-dispatcher.service已完成启动。
- 
-完成启动结果。
1月11日02:33:09 aleksandr-VirtualBox nm-dispatcher [8205]:要求:1'dhcp4-change'[enp0s8]:新请求(1个脚本)
1月11日02:33:09 aleksandr-VirtualBox nm-dispatcher [8205]:要求:1'dhcp4-change'[enp0s8]:开始运行有序脚本...

systemctl status apache2.service它最有趣的时候:

* apache2.service-LSB:Apache2 Web服务器
   已加载:已加载(/etc/init.d/apache2;错误;供应商预设:已启用)
  插件:/lib/systemd/system/apache2.service.d
           `-apache2-systemd.conf
   活动时间:自2017年11月11日星期三以来失败(结果:退出代码); 33分钟前
     文件:man:systemd-sysv-generator(8)
  进程:8023 ExecStop = / etc / init.d / apache2停止(代码=已退出,状态= 0 /成功)
  进程:2236 ExecReload = / etc / init.d / apache2重新加载(代码=已退出,状态= 0 /成功)
  进程:8177 ExecStart = / etc / init.d / apache2 start(代码=已退出,状态= 1 /失败)

1月11日02:30:46 aleksandr-VirtualBox apache2 [8177]:/ usr / sbin / apache2ctl:1:/ etc / apache2 / envvars:envvars:找不到
1月11日02:30:46 aleksandr-VirtualBox apache2 [8177]:/ usr / sbin / apache2ctl:49:/ etc / apache2 / envvars:envvars:找不到
1月11日02:30:46 aleksandr-VirtualBox apache2 [8177]:(2)没有这样的文件或目录:AH02291:无法访问目录'/ etc / apache2 / logs /'作为主要错误日志
1月11日02:30:46 aleksandr-VirtualBox apache2 [8177]:AH00014:配置检查失败
1月11日02:30:46 aleksandr-VirtualBox apache2 [8177]:操作'configtest'失败。
1月11日02:30:46 aleksandr-VirtualBox apache2 [8177]:Apache错误日志可能包含更多信息。
1月11日02:30:46 aleksandr-VirtualBox systemd [1]:apache2.service:控制进程已退出,代码=退出状态= 1
1月11日02:30:46 aleksandr-VirtualBox systemd [1]:无法启动LSB:Apache2 Web服务器。
1月11日02:30:46 aleksandr-VirtualBox systemd [1]:apache2.service:设备进入失败状态。
1月11日02:30:46 aleksandr-VirtualBox systemd [1]:apache2.service:失败,结果为“退出代码”。

怎么了?中断在哪里?请帮忙!

Answers:


8

有两个错误:


1.由于某种原因,您/etc/apache2/envvars丢失了:

  • 来自journalctl -xe

    Jan 11 02:30:46 aleksandr-VirtualBox apache2[8177]: /etc/init.d/apache2: 1: /etc/apache2/envvars: envvars: not found
    Jan 11 02:30:46 aleksandr-VirtualBox apache2[8177]: /etc/init.d/apache2: 49: /etc/apache2/envvars: envvars: not found
    Jan 11 02:30:46 aleksandr-VirtualBox apache2[8177]: /etc/init.d/apache2: 1: /etc/apache2/envvars: envvars: not found
    Jan 11 02:30:46 aleksandr-VirtualBox apache2[8177]: /etc/init.d/apache2: 49: /etc/apache2/envvars: envvars: not found
    ...        
    Jan 11 02:30:46 aleksandr-VirtualBox apache2[8177]: /usr/sbin/apache2ctl: 1: /etc/apache2/envvars: envvars: not found
    Jan 11 02:30:46 aleksandr-VirtualBox apache2[8177]: /usr/sbin/apache2ctl: 49: /etc/apache2/envvars: envvars: not found
    
  • 来自systemctl status apache2.service

    Jan 11 02:30:46 aleksandr-VirtualBox apache2[8177]: /usr/sbin/apache2ctl: 1: /etc/apache2/envvars: envvars: not found
    Jan 11 02:30:46 aleksandr-VirtualBox apache2[8177]: /usr/sbin/apache2ctl: 49: /etc/apache2/envvars: envvars: not found
    

在我的系统中,此文件具有下一个权限:

$ ls -l /etc/apache2/envvars

-rw-r--r--   1 root root  1782 мар 19  2016 envvars

其内容($ cat /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
# temporary state file location. This might be changed to /run in Wheezy+1
export APACHE_PID_FILE=/var/run/apache2/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'

## If you would like to pass arguments to the web server, add them below
## to the APACHE_ARGUMENTS environment.
#export APACHE_ARGUMENTS=''

## Enable the debug mode for maintainer scripts.
## This will produce a verbose output on package installations of web server mod                                               ules and web application
## installations which interact with Apache
#export APACHE2_MAINTSCRIPT_DEBUG=1

您可以手动创建它:sudo nano /etc/apache2/envvars,将以上内容粘贴到其中,保存ctrl+ o并退出ctrl+ x


2.在您的系统中,该文件夹/etc/apache2/logs也丢失:

  • 来自journalctl -xe

    Jan 11 02:30:46 aleksandr-VirtualBox apache2[8177]: (2)No such file or directory: AH02291: Cannot access directory '/etc/apache2/logs/' for main error log
    
  • 来自systemctl status apache2.service

    Jan 11 02:30:46 aleksandr-VirtualBox apache2[8177]: (2)No such file or directory: AH02291: Cannot access directory '/etc/apache2/logs/' for main error log
    

这不是默认的日志文件夹,它是在您的自定义配置中定义的,必须创建:

$ sudo mkdir /etc/apache2/logs

我照你写的做了。不幸的是,错误仍然存​​在:(所以将继续搜索
A.Verber

@ A.Verber仍然是相同的错误或已更改?
pa4080

1
@ A.Verber我再次看了你的问题。系统中的目录是否/etc/apache2/logs/存在?因为这是第二条错误消息。你可以试试看sudo mkdir /etc/apache2/logs
pa4080

1
是! 制作日志目录后,错误消失了!谢谢
A.Verber

5

我删除了sites-available中的.conf文件,但没有删除enableds-enabled中的link文件。

现在,我删除了启用了站点的所有文件

重新启动apache2服务器(重新启动sudo服务apache2)

为我工作

希望这可以帮助某人:)


帮助过我!thx ..
我摔跤过一次熊。

5

我有同样的问题。我遇到了同样的错误,sudo service apache2 restart然后又跑sudo systemctl status apache2.service了,红线是Failed to start LSB: Apache2 web server.

运行以下命令:

sudo apache2ctl configtest

它将检查错误(我认为是语法错误),然后可以调试错误。


您的解决方案帮助我解决了我的apache2问题,谢谢。
S1awek '19

4

尝试以下命令:

sudo a2dismod mpm_event
sudo a2enmod mpm_prefork

然后重新启动apache2服务。


sudo a2dismod mpm_event sudo a2enmod mpm_prefork
arnauld

0

就我而言,我这样做:

卸载并删除Apache2

sudo service apache2 stop

sudo apt-get purge apache2

sudo apt-get autoremove

whereis apache2

sudo rm -rf /etc/apache2

重新安装apache2

sudo apt-get install apache2

sudo apache2ctl configtest

它为我奔跑

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.