添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
细心的荒野  ·  SQL SERVER ...·  1 年前    · 
深情的小摩托  ·  在IntelliJ IDEA ...·  1 年前    · 

在Windows子系统上为Linux安装Apache

30 人关注

刚刚更新到最新的Windows 10版本(build 14316),我立即开始玩WSL,即Windows Subsystem for Linux,它应该是在Windows上运行Ubuntu的安装。

也许我正在尝试不可能的事情,试图在上面安装Apache,但是,谁来解释一下为什么这不可能。

无论如何,在安装过程中(sudo apt-get install apache2),在下载并正确安装了依赖项后,我收到了以下错误信息。

initctl: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: No such file or directory
runlevel:/var/run/utmp: No such file or directory
 * Starting web server apache2                                                 *
 * The apache2 configtest failed.
Output of config test was:
mktemp: failed to create directory via template '/var/lock/apache2.XXXXXXXXXX': No such file or directory
chmod: missing operand after '755'
Try 'chmod --help' for more information.
invoke-rc.d: initscript apache2, action "start" failed.
Setting up ssl-cert (1.0.33) ...
Processing triggers for libc-bin (2.19-0ubuntu6.7) ...
Processing triggers for ureadahead (0.100.0-16) ...
Processing triggers for ufw (0.34~rc-0ubuntu2) ...
WARN: / is group writable!

现在,我明白了,Apache2似乎缺少一些文件夹和文件来工作。在我开始改变任何会扰乱我的Windows安装的东西之前,我想问问是否有不同的方法?另外,我是否应该担心/是可写组,或者这只是标准的Windows行为?

1 个评论
mkdir /var/run/httpd
linux
windows
apache2
subsystem
windows-subsystem-for-linux
bluppfisk
bluppfisk
发布于 2016-04-07
4 个回答
Alberto.d72
Alberto.d72
发布于 2018-04-06
已采纳
0 人赞同

为了消除这种警告

Invalid argument: AH00076: Failed to enable APR_TCP_DEFER_ACCEP

/etc/apache2/apache2.conf的末尾加上这句话。

AcceptFilter http none
    
这到底是做什么的?
这正是我的情况所需要的。谢谢你!"。
@megamaiku 这是警告,细节在这里。 github.com/microsoft/WSL/issues/1953
Erez A. Korn
Erez A. Korn
发布于 2018-04-06
0 人赞同

Note the following in your output

failed to create directory via template '/var/lock/apache2.XXXXXXXXXX': No such file 

我试着列出/var/lock。它指向/run/lock,但它并不存在。

创建目录时要注意

mkdir -p /run/lock

现在安装应该可以了(你可能需要先清理一下安装。)

谢谢。我试过了,但还是会出现错误,最明显的是:initctl: Unable to connect to Upstart:连接到套接字/com/ubuntu/upstart失败。No such file or directory [Mon Apr 11 01:30:25.532677 2016] [core:crit] [pid 3046:tid 140694537176960] (22)Invalid argument:AH00069: make_sock: for address [:]:80, apr_socket_opt_set: (IPV6_V6ONLY) (22)无效的参数。AH00072: make_sock: 无法绑定到地址0.0.0.0:80没有可用的监听套接字,正在关闭AH00015:无法打开日志
有没有可能你有另一个服务器在监听80端口?我知道这很微不足道,但它发生在我们最好的人身上。试着改变配置文件中的监听套接字?
你的方法对我来说是有效的。但是,我还是遇到了这两个错误,但是apache已经启动并运行了:)! [Tue Apr 12 12:31:22.726611 2016] [core:crit] [pid 979:tid 140694537176960] (22)Invalid argument: AH00069: make_sock: for address [::]:80, apr_socket_opt_set: (IPV6_V6ONLY) [Tue Apr 12 12:31:22.726611 2016] [core:warn] [pid 979:tid 140694537176960] (22)Invalid argument: AH00076: Failed to enable APR_TCP_DEFER_ACCEPT
在端口100上运行它是有效的。产生了与Laurens报告的相同的错误,但仍然可以工作。lsof -i :80没有返回任何东西(lsof -i也没有)。
你是对的,Skype在监听80端口。非常感谢
cetipabo
cetipabo
发布于 2018-04-06
0 人赞同

你必须在管理员模式下启动bash.exe,以避免很多与网络有关的问题。 我安装了Lamp(Apache/MySQL/Php),没有任何问题。

  • 以管理员模式启动bash.exe

  • type : sudo apt-get install lamp-server^

  • 将这两行加入到 /etc/apache2/apache2.conf :

  • 服务器名 localhost

    AcceptFilter http 无

    然后你可以启动apache。 /etc/init.d/apache2 start

    谢谢你提供的信息。这对我来说甚至是有效的 没有管理员模式。 The only difference, I 安装后立即重启了Apache。
    @MarisB.是完全正确的。你需要在安装后立即重启服务以使其工作。
    我试着用sudo apt-get安装lamp-server,但它没能得到php软件包,而且似乎没有apache2目录,所以我认为一旦它不能得到其余30%的软件包,整个事情就会失败。 【替换代码0
    E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/p/php7.2/libapache2-mod-php7.2_7.2.17-0ubuntu0.18.04.1_amd64.deb 404 Not Found [IP: 91.189.88.149 80] E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/p/php7.2/php7.2-mysql_7.2.17-0ubuntu0.18.04.1_amd64.deb 404 Not Found [IP: 91.189.88.149 80] E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
    Alpha
    Alpha
    发布于 2018-04-06
    0 人赞同

    根据这里的建议,我编辑了apache2.conf,并在收到上述各种错误后在文件末尾插入了以下内容,然后apache2在debian wsl软件包上运行得很好。