Windows Server 2016 上配置 APACHE+SSL+PHP+perl

安装环境

谷歌云实例 Windows Server 2016
Apache     Apache/2.4.25 (win64-VC14)
PHP        php-5.6.30 (VC11 x64 Thread Safe)
PERL       ActivePerl-5.24 (Win64)
OpenSSL    openssl-1.0.2j-win64

VC14       Microsoft Visual C++ 2015(vcredist_x64)
VC11       Microsoft Visual C++ 2015(vcredist_x64)
1.安装 Apache

Apache/2.2 不支持php-5.3以后的版本,用最新的 Apache/2.4,由于是Win64-VC14版本,需安装 x64位版本的 VC2015运行库,即VC14

http://httpd.apache.org/download.cgi
http://www.apachelounge.com/download/VC14/binaries/httpd-2.4.25-win64-VC14.zip

解压到 D:\httpd

修改 D:\httpd\conf 和 D:\httpd\conf\extra 目录下的文件,替换 C:/apache24 到 D:/httpd

修改  D:\httpd\conf\httpd.conf 中的 Require all denied 字段 为 Require all granted  ,这样放权外网访问
2.安装 SSL

http://openssl.org
https://wiki.openssl.org/index.php/Binaries
https://slproweb.com/products/Win32OpenSSL.html

这里使用了 Apache/2.4.25  自带的 openssl ,在 D:\httpd\bin 目录 ,默认配置文件位于 C:/openssl-1.0.2j-win64/ssl/openssl.cnf

用命令建立 server.key 和 server.crt

    set path=D:/httpd/bin
    D:
    cd D:/httpd/conf/
    copy openssl.cnf openssl.conf
    mkdir demoCA\newcerts
    echo.>demoCA/index.txt
    echo.>demoCA/serial
    openssl genrsa -out server.key 1024
    openssl req -new -x509 -key server.key -out server.crt -days 3650 -config openssl.conf

修改 D:/httpd/conf/httpd.conf 文件,去掉下面两行前面的 #
#LoadModule ssl_module modules/mod_ssl.so
#Include conf/extra/httpd-ssl.conf
修改 D:/httpd/conf/extra/httpd-ssl.conf 文件,注释下面的行
#SSLSessionCache        "shmcb:d:/httpd/logs/ssl_scache(512000)"
3.安装 perl

下载后安装时选第三项会自动安装到 c:/perl64 ,无需做其它修改,以后加载.pl文件时,第一行指向 #!c:/perl64/bin/perl.exe
http://perl.org
http://www.activestate.com/activeperl/downloads

修改 D:/httpd/conf/httpd.conf 文件,去掉下行前面的 #
#LoadModule cgi_module modules/mod_cgi.so
4.安装 php

php 有两种版本,Thread Safe(TS) 和 Non Thread Safe(NTS) , TS 用于APACHE ,NTS 用于IIS
由于 VC11 x64 Thread Safe 需安装 x64位版本的 VC2012运行库,即VC11,在微软官方网站搜索安装。

http://windows.php.net/download/
http://windows.php.net/downloads/releases/php-5.6.30-Win32-VC11-x64.zip

解压到 D:/httpd/php-5.6.30 ,把 php.ini-production 改名为 php.ini

修改 D:/httpd/conf/httpd.conf 文件,增加下面的行

LoadModule php5_module "D:/httpd/php-5.6.30/php5apache2_4.dll"
PHPIniDir "d:/httpd/php-5.6.30"
AddType application/x-httpd-php .php .html .htm

如果出现找不到 D:/httpd/php-5.6.30/php5apache2_4.dll 文件的提示,可能是需要的VC运行库没有安装,或者是apache和php的版本不配。
5.到此配置结束,使用下面的命令启动服务

httpd -k install
httpd -k start

单是 httpd -k start 不能启动服务
最后还得在 本地防火墙 上放行 Apache ,同时在谷歌云上的    网络-->防火墙 设置上允许 tcp:80 ;tcp:443 允许任意目标访问

这样外界才能访问 WEB 服务器
05-11 09:29