Apache作为一款经典的WEB服务器依然有着大量的忠实拥趸,其中不乏Windows操作系统的用户,假如这个时候又要使用阿里云的NAS做WEB站点目录可能就要遇到麻烦了,对于Apache On Windows这种不常见的组合在网络上资料较少,阿里云官网也没有明确的说明文档,这篇文章应该能够帮到有这样需求的阿里云用户。
假如要在Windows平台使用Apache WEB服务器有一篇必看的文档:
[https://httpd.apache.org/docs/2.4/platform/windows.html]
这里介绍了在Windows上运行Apache的各种注意事项,其中有一段是有关使用网络资源的。
这里的核心观点就是web站点目录不能使用映射出来的盘符,只能使用UNC PATH的格式。
UNC 即(Universal Naming Convention)通用命名规范。
格式为:
\\servername\sharename,其中servername是服务器名。sharename是共享资源的名称。
但在Apache所在的开源世界里,一般更喜欢这样:
//servername/sharename
所以,在Windows平台上运行Aapche 的用户请务必记住:使用//servername/sharename 这样的UNC PATH 作为WEB 主目录。
这篇文章的另一个有意思的点是这里完全都没有提及网络资源的共享协议是SMB还是NFS,那么问题来了,我们到底应该选择哪一个呢?
笔者在尝试过了若干个Apache的版本后得出一个结论,请使用NFS协议,虽然看起来在Windows上使用SMB是更为合理的一个选择。假如挂载SMB协议的共享,即便使用了UNC PATH 来标记WEB站点目录,Apache服务连正常启动都无法完成,而挂载NFS协议共享,在使用了UNC PATH之后则能够正常启动Apache服务。
下面是一些具体的配置步骤,供大家参考:
首先是在阿里云的NAS控制台创建一个NFS 共享,操作非常简单,这里就不赘述了。
在Windows上要使用NFS共享需要Windows服务器的版本足够高,这样才有NFS Client,让我们先安装NFS Client。
在服务器管理器添加一个角色:
选择文件和存储服务下面的NFS服务器,然后点击下一步。
在功能列表里找到NFS 客户端。
安装,这样我们才能在Windows服务器挂载NFS 共享。
使用命令行挂载NFS共享:
注意这里的UNC PATH最后有一个“!”。
将这条命令写入批处理文件:
C: ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\nas_auto.bat
配置一个触发器,自动运行这个批处理:
具体步骤可以参考阿里云官网有关Windows系统挂载通用型NAS NFS文件系统的文档:
[https://help.aliyun.com/zh/nas/user-guide/mount-a-general-purpose-nfs-file-system-on-a-windows-ecs-instance]
搞定了NAS挂载来到最关键的Apache配置了。
我们可以在Apache官网给的链接下载Windows版本的可执行程序,下载之后解压到某个路径下,例如可以是C:盘根目录。进入Apache的主目录,找到配置文件,通常是Apache24/conf/httpd.conf。
首先修改服务器主目录设置。
需要把这几行注释掉,否则有权限问题。
最关键的步骤来了,要这样写WEB 站点目录:
注意这里的“!”
然后去微软官网下载VCRUNTIME140.dll的相关安装程序:
[https://www.microsoft.com/en-us/download/details.aspx?id=53587]
下载安装后就能解决缺少VCRUNTIME140.dll的问题。
安装服务:
启动服务:
拷贝默认的欢迎测试页面到WEB 站点目录
使用浏览器访问,可以看到WEB服务器成功启动
假如有其他类似于FTP的服务,要是用NFS共享作为默认主目录也需要这样使用UNC PATH,希望上面的内容能够帮到有类似需求的小伙伴。