Windows 下搭建 AMP 开发环境

虽然 Linux 在服务器领域虽然是没得说,但是其图形界面我确实不怎么习惯。

我在 Linux 上基本上都是开的终端,但是 Linux 并没有因为界面操作不及 Windows 而失去魅力。

相反,终端有种特殊的魔性,至少我感觉,通过命令来操作计算机,对于理解计算机的各个方面都很有帮助。

毕竟只用鼠标屏幕上点来点去,背后的故事知道得就太少了。当然了,这些都是我现阶段的个人理解而已。

然而每种平台都有其擅长和薄弱的地方,对于 Web 开发来说,尤其是前端开发,界面是离不开的,就算是做后台程序员的,没有界面做指引,开发起来也是比较痛苦的。

而说到界面, 自然不得不提 Windows。Mac 暂时买不起,就不说了,折腾过一段时间黑苹果,除了感觉蛋疼和浪费时间外并没有多少收获。

总之,在 Windows 上进行 Web 前端相关的开发需求很大,哪里有需求哪里就有市场,废话说完,进入正题。

一、安装 Windows

操作系统是所有应用软件的基础,所以进行任何应用软件的开发都要在某种操作系统之上完成。

Windows 的安装是最简单的,而且目测随着其版本的升级,安装过程只会越来越简单,所以这里不多说了。

Windows 的 Apache、MySQL、PHP 的安装顺序没有要求,但建议的顺序是:

Apache/MySQL -> PHP。(依赖先安装

Apache 和 MySQL 地位等同,都属于服务器程序,所以他们之间的影响不大,所以顺序随意。

二、Windows 下安装 Apache

Apache 在 Web 服务器市场的占有率是毋庸置疑的,欲知更多,请 Google。

对于 Web 服务器的优先选择,当然不只 Apache,其他的 HTTP 服务器的本人看上的还有 Ngnix,不过以后会对 Ngnix 专门进行一些总结。

下载 Apache

Windows 下安装 Apache 选择 线程安全 ( TS:FAQ)的就行了。

可以选择 2.2 版本的也可以选择 2.4 版本的,最开始接触时本人安装的是 2.2,但现如今,本人已经升级到 2.4。

其安装过程和注意事项基本上相同。不同之处在于对 httpd.conf 文件的配置。

对于喜欢在官网下载同时英语不太好的人来说第一次可能比较绕,这里顺便附上 Apache 的下载地址:

Files for Microsoft Windows

安装过程:建议把 Apache 安装路径放在 C:/amp ( MySQL、PHP 一样 ),其他没什么好说的。

三、Windows 下安装 MySQL

使用但不仅使用 MySQL 的著名网站或公司有:Wikipedia、淘宝、百度、腾讯等。

对野生 Web 程序员来说,尤其是使用 PHP 开发的网站,MySQL 不失为小型至中型项目中关系型数据库的最佳选择。

为什么?开源、免费、与 PHP 关系最紧密,许多编程语言如 Java、Python、C++ 等都提供操作 MySQL 的 API。也适合个人学习期间的折腾。

此外,MySQL 背后有甲骨文的强力支持,我相信它能变得更好更强大。

说明

同 Ngnix,NoSQL 在以后也会慢慢进行一些总结。

下载 MySQL

既然提到开源了,当然下载以 GPL 协议发布的 MySQL 了。直达:MySQL on Windows( GPL )

Windows 下安装 MySQL 的注意事项

1、针对版本较旧的 MySQL

安装类型

自定义(高级用户)。如果只需完成基本的功能就选典型安装,如果不放心就完全安装。

安装组件

至少对应 DBMS 的三个组成:数据库文件,客户端接口,服务端维护程序。

安装目录

wamp/mysql(linux 下:/usr/local/lamp/mysql)。每个组件都放在这个目录,MySQL会自动为不同组件创建文件夹以便于管理。

配置

安装完毕后,运行配置向导,选择详细配置,想简单点就选标准配置。

选择机器测试环境

开发环境(配合PHP,Apache,安装需求的系统资源最少),服务器环境(只作为数据库服务器而不安装其他服务的服务器),专业服务器环境(独立服务器,即整个机器只安装了 MySQL 这么一个服务器软件,获得最大的系统资源,性能最高)

事务功能配置

功能的区分是指是否要 MySQL 支持事务。

InnoDB 表空间设置

选择默认的安装目录即可。

活动连接数设置

选择默认的角色支持(其他 2 个为线上事务处理和手动配置)。MySQL 一般默认支持的最大连接数为 1000,但这会根据服务器的性能等因素而改变。

网络选项

访问 MySQL 分为本地访问和远程访问。允许 TCP/IP,监听端口默认为 3306。

严格模式

对 SQL 语法的一些限制。

设定默认字符集

默认为标准字符集,指欧美国家使用的字符集(拉丁字符集)。建议选择 UTF-8,因为支持最广。

也可以根据具体情况手动选择字符集。此属性配置过后还可以重新修改。

作为 Windows 服务安装和配置环境变量

安装 MySQL 服务,这样 Windows 就可以以管理服务的形式管理 MySQL。

注意

Windows 不允许同名的服务出现,若重新安装失败则检查服务有没有卸载干净。

安全选项

设置根用户账户密码,是否允许远程访问,以及是否允许匿名账户。只需设置好 root 账户密码即可。

2、针对版本较新的 MySQL( 5.6+ )

一些基本特性即使在新版的 MySQL 也变化不大,比如 安装组件、测试环境、网络选项等。

较新版本的 MySQL 安装界面的风格变化不少,我个人认为更灵活、直观了,你可以根据需要移除或添加需要的功能。

① MySQL Server:必选。

② Connector:可根据开发手段需要选择,支持 ODBC( Java )、C++、C、.Net、Python、J 等编程语言。

③ MySQL Fabric:管理服务器集群的可扩展框架,个人本地开发一般不需要。

④ 其他:MySQL 程序的一些工具,可选。

四、Windows 下安装 PHP

PHP 的下载建议最新版本,打字此时,PHP 的最新版本是 7.0,但最新可用版本是 5.6.x。

PHP 5.6 下载地址:PHP For Windows

如果下载的是 PHP 的二进制包,那么 PHP 的安装就是解压,安装路径建议放在 C:/Dev/PHP

五、Apache 与 PHP 整合

1、在 httpd-conf 文件中找到 LoadModule 位置,在后面加入以下代码模板,配置只需改目录:

#让apache载入php处理模块,安装目录请灵活修改,Apache2.4 版本的需要响应改成2_4

LoadModule php5_module "C:/Dev/PHP564/php5apache2_4.dll"

#PHP初始化文件,保存的是对php的一些配置

PHPIniDir "C:/Dev/PHP564"

#下述代码表示:当有一个资源是 *.php 的时候就由交给 php 来处理

AddType application/x-httpd-php .php .phtml

此外,找到 <IfModule dir_module>,添加首页格式: index.php

2、把 php.ini-development 文件改名为 php.ini ,这个文件地位等同于 Apache 的 httpd.conf,更名后才能通过修改该文件配置 php。

3、在 php.ini 中可以指定对应的功能模块,找到 On windows (其上下包含有 extension_dir 字样),在其后加入代码如下:

;这里我们要指定 php 的扩展库路径

extension_dir = "C:/Dev/PHP564/ext"

此外,还需要配置的地方有:

  • date.timezone

找到并设置为:date.timezone = Asia/Shanghai

  • 启用 extension

PHP 常用的扩展有:

php_curl.dll
php_gd2.dll
php_mbstring.dll
php_mysqli.dll
php_openssl.dll
php_mysql.dll
php_xmlrpc.dll`

4、重启 Apache 并测试

在 Apache 安装路径下的 htdocs 文件夹下写个 test.php,内容如下:

<?php
	phpinfo();
?>

然后在浏览器地址栏输入 http://localhost/test.php,回车,若看见 PHP 的相关信息则代表 Apache 和 PHP 整合成功。

六、PHP 和 MySQL 整合

php.ini 文件中启用 MySQL,将下面代码前的 ; 号去掉即可:

extension=php_mysql.dll
extension=php_mysqli.dll

测试是否能够连接至 MySQL:

<?php
$link = mysql_connect( "localhost", "root", "enter" ) ;
if( $link ){
	echo "MySQL连接成功!" ;
} else {
	echo "MySQL连接失败!" ;	
}
?>
注意

PHP高版本(比如 php-5.6.4-Win32-VC11-x64)已经弃用 mysql_connect(); ,必须使用 mysqli 或者 PDO,否则连接会失败。

如果依赖 GUI,建议安装 PHPMyadmin,此处略。

AMP 测试代码

  • test_amp.php
<?php

echo "<title>AMP TEST</title><h2>Apache Working ...</h2>" ;

$mysql_conn = mysqli_connect( "localhost", "root", "enter" ) ;

if( $mysql_conn ) {
	echo "<h2>MySQL Successfully Connected !</h2> " ;
} else {
	echo "<h2>MySQL Connection Failed !</h2> " ;
}

if ( phpinfo() ) {
	phpinfo() ;
} else {
	echo "NO PHP !" ;
}

?>

其他

如果你比较懒,则可以选择一些傻瓜式安装套件,比如:

WampServerAppServ 等。

FAQ

1. 什么是线程安全和非线程安全?

TSThread Safety,即线程安全,一般以 fast cgi 方式运行的时候选择这个版本,具有更好的性能。

NTSNone-Thread Safe,一般在 IIS 以 ISAPI 方式加载的时候选择这个版本。

从 2000年10月20日发布的第一个Windows版的 PHP3.0.17 开始的都是线程安全的版本。

这是由于与 Linux/Unix 系统是采用多进程的工作方式,不同的是 Windows 系统是采用多线程的工作方式。

PHP 手册上是这么写的:

如果是用于 IIS 则选择 PHP 5.3 VC9 Non Thread Safe 或者 VC6 Non Thread Safe;

如果是用 IIS7 或更高版本以及 PHP 5.3+,则应选择 VC9 的包;

如果是用于 Apache 1 或 Apache 2 则选择 PHP 5.3 VC6 或者 PHP 5.2 VC6。

2. Apache 2.4 加载 PHP 5.6.x 后启动失败?

  • 2.4 版本的请将路径用双引号包起来:
LoadModule php5_module "C:/Development Env/PHP564/php5apache2_4.dll"
  • 编译器的版本是否匹配

VC9意思就是该版本PHP是用VisualStudio2008编译的,而VC11则是用VisualStudio2012编译的。

这意味着:

如果你下载的是VC9版本的,就需要先安装VisualC++RedistributableforVisualStudio2008SP1。

如果你下载的是VC11版本的,就需要先安装VisualC++RedistributableforVisualStudio2012。

PHP5.6.x 对应的编译器版是 VC11,即 VC++Redistributable2012。下载地址:

VC++Redistributable2012

类似问题解决思路

  • 拷贝 php5apache2_4.dllC:/Winodws/System32

  • 拷贝 php.iniC:/Windows

不过这种方式如果设置了环境变量的话可以省略。

其他

PHP 内置服务器

PHP 5.4.0起, CLI SAPI 提供了一个内置的 Web 服务器。

这个内置的 Web 服务器主要用于本地开发使用,不可用于线上产品环境。

启用方法是:

php.exe 所在目录打开终端 ( shift + 鼠标右键 ) ,输入:

> php -S localhost:8000

也可以将 php.exe 所在目录添加到环境变量,然后在任何位置执行上面的命令。

PHP 内置 Web 服务器把 index.php 作为默认路由脚本。当然,index.html 也支持。

如果没有指定请求的 php 脚本,那么默认执行默认路由脚本。如果都没有,则返回 404 错误给浏览器 。

本文最后修改时间: 2015年09月28日 18:15:42 (完) CC BY-NC-ND 3.0

若您发现文章中的错误,并愿告知于我,或想与我交流,我的联系方式在: Contacts


上一篇 视觉原理基础:三基色与颜色模型

All The Best

下一篇  PHP 系统结构