为 Linux 在 Windows 子系统上安装 Apache
Installing Apache on Windows Subsystem for Linux
刚刚更新到最新的 Windows 10 版本(内部版本 14316),我立即开始使用 WSL,Linux 的 Windows 子系统,它应该 运行 Ubuntu 安装在 Windows。
也许我尝试在其上安装 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 行为?
注意输出中的以下内容
failed to create directory via template '/var/lock/apache2.XXXXXXXXXX': No such file
我尝试列出 /var/lock。它指向 /run/lock,它不存在。
创建目录
mkdir -p /run/lock
现在应该可以安装(您可能需要先清理安装)
为了消除这个警告
Invalid argument: AH00076: Failed to enable APR_TCP_DEFER_ACCEP
将此添加到 /etc/apache2/apache2.conf
的末尾
AcceptFilter http none
您必须以管理员模式启动 bash.exe 以避免出现很多与网络相关的问题。
我安装 Lamp (Apache/MySQL/Php) 没有任何问题:
以管理员模式启动bash.exe
类型:sudo apt-get install lamp-server^
在 /etc/apache2/apache2.conf 添加这两行:
服务器名称本地主机
AcceptFilter http none
然后你就可以启动apache了:
/etc/init.d/apache2开始
根据此处的重要建议,我编辑了 apache2.conf 并在收到上述所有各种错误后将以下内容插入到文件末尾,然后 apache2 在 debian wsl 包上运行良好:
Servername localhost
AcceptFilter http none
AcceptFilter https none
刚刚更新到最新的 Windows 10 版本(内部版本 14316),我立即开始使用 WSL,Linux 的 Windows 子系统,它应该 运行 Ubuntu 安装在 Windows。
也许我尝试在其上安装 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 行为?
注意输出中的以下内容
failed to create directory via template '/var/lock/apache2.XXXXXXXXXX': No such file
我尝试列出 /var/lock。它指向 /run/lock,它不存在。
创建目录
mkdir -p /run/lock
现在应该可以安装(您可能需要先清理安装)
为了消除这个警告
Invalid argument: AH00076: Failed to enable APR_TCP_DEFER_ACCEP
将此添加到 /etc/apache2/apache2.conf
AcceptFilter http none
您必须以管理员模式启动 bash.exe 以避免出现很多与网络相关的问题。 我安装 Lamp (Apache/MySQL/Php) 没有任何问题:
以管理员模式启动bash.exe
类型:sudo apt-get install lamp-server^
在 /etc/apache2/apache2.conf 添加这两行:
服务器名称本地主机
AcceptFilter http none
然后你就可以启动apache了: /etc/init.d/apache2开始
根据此处的重要建议,我编辑了 apache2.conf 并在收到上述所有各种错误后将以下内容插入到文件末尾,然后 apache2 在 debian wsl 包上运行良好:
Servername localhost
AcceptFilter http none
AcceptFilter https none