Windows下PHP的安装与配置

去PHP的官网下载最新的Windows相应版本,发现除了32位和64位之外,还有non thread safe 和thread safe版本的区别。

原来PHP有两种运行模式,一种是独立的可执行程序(通常是exe程序),另一种是以模块的形式嵌入到服务器程序里运行(通常是DLL程序)。

独立执行用到的是CGI(Common Gateway Interface,通用网关接口)技术,而另外一种,在IIS里被称为ISAPI(Internet Server Application Programing Interface,因特网服务器应用程序接口),Apache里则被称为Module(模块)。

IIS:CGI/ISAPI

Apache:CGI/MODULE


在CGI模式下,当收到一个匹配URL的请求,相应的程序就会被调用,并将客户端发送的数据作为输入;

而在模块化(DLL)中,PHP是与Web服务器一起启动并运行的;

在CGI中,执行程序与服务器程序各自独立,当执行程序出现错误时,服务器程序不会受到影响,但会占用更多的资源。

所以,CGI比DLL有更好的稳定性和安全性,而DLL则有更好的执行效率和速率。


FastCGI的引入就是为了解决CGI的性能问题,严格来说,FastCGI也是CGI的一种,它在保留CGI稳定性的同时,结合了DLL的优点。


如果在Apache中以FastCGI方式使用PHP,则应该使用PHP的非线程安全的版本。原因是在Apache中以FastCGI方式安装PHP时,PHP拥有独立的进程,并且FastCGI是单一线程的,故应使用PHP的非线程安全版本以提高性能。

而如果以模块方式安装PHP,则应该使用PHP的线程安全的版本。原因是当PHP作为Apache的模块安装时,PHP没有独立的进程,而是作为模块以DLL的形式被加载到Apache中的,是随Apache的启动而启动的,而Windows下的Apache为多线程工作模式,因此PHP自然也就运行在多线程模式下。因此,这种情况下应使用PHP的线程安全版本。


将下载到的压缩包解压,然后将PHP目录下的"php.ini-production"改名为"php.ini"。

找到第736行的;extension_dir = "ext"把前面的“;"去掉,这是指向扩展库目录的路径(需要指向存放PHP扩展库文件的目录),可以是绝对路径(如“C:\PHP\ext”)或相对路径(如“ext”)。注意最好改成绝对路径“C:\Program Files\PHP\php-5.6.16-Win32-VC11-x64\ext”,不然会无法加载下文的扩展库

然后从第878行开始,是PHP的扩展库的开关设置,如果需要打开,只需要把相应的扩展库前面的“;”去掉即可。

暂时打开开了php_mbstring.dll和php_mysql.dll,第一个是字符串编码和字符串处理库,用来处理基于unicode编码的字符串,比如UTF-8,比如汉字,另一个是开启MySQL扩展。

保存后下一步是将Apache和PHP整合,在配置文件httpd.conf中最后一段添加如下文字:

LoadModule php5_module "C:/Program Files/PHP/php-5.6.16-Win32-VC11-x64/php5apache2_4.dll" 
AddHandler application/x-httpd-php .php
PHPIniDir "C:/Program Files/PHP/php-5.6.16-Win32-VC11-x64"

记得路径的反斜线应转换为正斜线,保存后退出,重启apache。


你可能感兴趣的:(PHP,Apache)