在适用于Linux的Windows子系统上安装Apache

时间:2016-04-07 07:31:55

标签: linux windows apache2 subsystem windows-subsystem-for-linux

刚刚更新到最新的Windows 10版本(build 14316),我立即开始使用WSL,Windows子系统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行为?

4 个答案:

答案 0 :(得分:43)

为了消除此警告

Invalid argument: AH00076: Failed to enable APR_TCP_DEFER_ACCEP

将此添加到/etc/apache2/apache2.conf

的末尾
AcceptFilter http none

答案 1 :(得分:16)

您必须以管理员模式启动bash.exe以避免许多与网络相关的问题。 我没有任何问题安装Lamp(Apache / MySQL / Php):

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

  • 输入: sudo apt-get install lamp-server ^

  • /etc/apache2/apache2.conf 中添加以下两行:

Servername localhost

AcceptFilter http none

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

答案 2 :(得分:14)

请注意输出中的以下内容

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

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

使用

创建目录
mkdir -p /run/lock

安装现在应该可以使用(您可能需要先清理安装)

apache running on Windows Ubuntu

答案 3 :(得分:3)

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

Servername localhost
AcceptFilter http none
AcceptFilter https none