环境:
VMWare Workstation Player12
Windows10 Pro x64
一、安装系统
vmware 会采用 fast install 方式很快装完,无需配置什么。
二、配置 IIS
在“程序和功能”下,打开“启用或关闭Windows功能”。把 Internet Infomation Services 功能添加进去,需要注意的是“应用程序开发功能”里边的CGI默认是不勾选的,需要手动选择
注:在实际安装时,IIS 我是最后添加的,但写在了最前面,没有什么特殊含义。但因此会更改 IIS 的绑定端口。
关于端口:安装后,由于 80 被占,点击“Default Web Site”右边的“绑定”,修改端口号为“任意”,比如 8800,以后访问时候就用“localhost:8800”方式访问即可。
关于虚拟目录:如果需要虚拟目录,可以增加。添加后就要这样访问“localhost:8800/虚拟目录名/页面”,如 localhost:8800/myweb/PHPinfo.PHP。
关于FastCGI:选择 Default Web Site,点击功能区里边的处理程序映射,添加模块映射。
在网站默认/指定路径下,放一个内容为 的文件,可以命名为 PHPinfo.PHP。启动或重启 IIS 服务,默认路径输入 localhost:8800/PHPinfo.PHP,指定路径(如放在了虚拟目录下)输入localhost:8800/虚拟目录别名/PHPinfo.PHP,显示下图即为 IIS + PHP 组合成功
三、编译安装 MysqL
参考示例:5023.htm">//www.jb51.cc/article/95023.htm 或类似
下载 zip 形式的 MysqL server,解压到全英文路径下(中文没试,避免麻烦)。添加环境变量,系统变量 Path 中添加上 MysqL 的路径
在MysqL根目录下新建一个配置文件,命名为 my.ini,内容如下
port=3306
character_set_server=utf8
MysqL的安装/解压目录
basedir=C:\Dev\MysqL57
MysqL的数据目录
datadir=C:\Dev\MysqL57\data
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
打开 cmd 命令行工具,以管理员身份运行
运行命令:cd....切换到 MysqL 根目录下
运行命令:MysqLd--initialize--user=MysqL--console
该命令执行中的最后,MysqL会分配一个 temporary password,记住:CZX3ge1kuz)L
安装完成
net start MysqL
启动服务
net stop MysqL
停止服务
使用初始密码登录后,使用 set password for root@localhost=password('新密码') 来更改密码
四、安装PHP
PHP下载 Non Thread Safe 或 Thread Safe 都行,暂时不清楚有什么具体运行时的区别。解压缩到指定文件夹,按照网上多如牛毛的“教程”复制 PHP.ini-development 或 PHP.ini-production 为 PHP.ini,并修改里边的 extension_dir 为 PHP 安装目录下的 ext 文件夹,如下图
然后按照需要(截止到写文时,我暂不知道什么需要什么不需要)将 ;extension=xxxx 这样的扩展启用,启用方法就是去掉前面的英文半角冒号并保存。
但有教程说,不要图方便都启用,会碰到意外报错,按说应该是这样。但因为我刚入门并不了解,所以只能都启用或都不启用,后面慢慢积累经验吧。
五、安装 Nginx
下载 Nginx,并解压缩到全英文目录。进入 conf 文件夹,修改 Nginx.conf 文件。相对 PHP,Nginx 的配置文件简短的多,修改 location {} 和 #pass the PHP scripts to FastCGI ...下面 location{} 两个部分。
修改 root 元素:修改成 web 路径,比如网页默认路径是 C:\www,就修改成这个。
修改fastcgi_pass:默认我没有动,但端口号无疑肯定可以修改
cmd 命令行管理员运行模式下,cd 切换到 Nginx 目录,运行 start Nginx 即可启动服务。由于我实际安装时先安装了 Nginx,占据 80 端口,因此直接浏览器运行 localhost 应该显示 Nginx 的欢迎画面。
至此,windows 环境下配置完成。
注:截止到写稿时,Nginx + PHP 的组合,PHPinfo 还没有正确显示出来,明天搞定这个。并研究一下 80 端口是否谁先运行谁先占用的问题。