php5.4.6/5.3.16/5.2.17安装(In windows),配置(转)
转至:http://blog.csdn.net/rainysia/article/details/6740875 1: 下载php5.3.8 for windows. 说明一下,官网的windows版本有2种, 上面是非线程安全的VC9 x86 Non Thread Safe , 缺少了php5apache2_2.dll (注意,在php5.4.0以及后面的5.4版本,此文件更新为php
转至:http://blog.csdn.net/rainysia/article/details/6740875
1: 下载php5.3.8 for windows.
说明一下,官网的windows版本有2种,
上面是非线程安全的VC9 x86 Non Thread Safe , 缺少了php5apache2_2.dll (注意,在php5.4.0以及后面的5.4版本,此文件更新为php5apache2_3.dll)这些文件, 大小是14.93M .
下面那个Thread Safe线程安全版的.才是我们需要的,大小是15.06M
猛击这里下载php5.3.8 for windows VC9 X86
猛击这里下载php5.4.0 for windows VC9 X86
今天是2012年8月16日,官方更新php5.3.16 和5.4.6版本
这里是php5.4.1 for windows VC9 X86
这里是php5.3.11 for windows VC9 X86
php-5.4.6-Win32-VC9-x86.zip
php-5.3.16-Win32-VC9-x86.zip
php-5.2.17-Win32-VC6-x86.zip
linux 源码
php5.4.6.tar.gz
php5.3.16.tar.gz
至于VC6和VC9,一个支持apache一个支持IIS.但是试了下VC9用在apache上没问题 .
线程安全Thread Safe(TS)和非线程安全(NTS),就是在执行时是否进行线程安全检查,以防止有新要求就启动新建成的CGI执行方式,进而耗尽系统资源.
执行方式有ISAPI和FastCGI,
前者ISAPI(Internet Server Application Programming Interface)是以DLL动态链接库的形式使用,在用户请求后执行,在处理完一个用户请求后不会马上消失,因此需要进行线程安全检查.以此来提高程序的执行效率. 所以以ISAPI的方式来执行PHP,最好选择Thread Safe版本也就是我们下载的版本,对应的apache的设置在第4段末尾有.
FastCGI是以单一线程执行,所以不需要进行线程安全检查,因为没有了线程安全检查,反而加快了PHP的执行效率.所以如果用FastCGI来执行PHP,最好选择Not Thread Safe版本 .而在apache中就需要设置成下面的.(这里我们配置的环境不用设置)
[php] view plaincopyprint?
- ScriptAlias /php/ "F:/php/PHP5"
- Action application/x-httpd-php "/php/php-cgi.exe"
ScriptAlias /php/ "F:/php/PHP5" Action application/x-httpd-php "/php/php-cgi.exe"
(Notice: 如果安装其它的集成环境,比如wamp会报错,由于这是VC9的原因.会导致加载PHPIniDir后apache不能重启.同理,如果有phper的机器装不上APACHE.PHP5.3.8.解决办法有2个,第一办法是建议换成VC6的版本.官方apache手册也说了VC 9 for apache unstable behaviour,需要大家重新安装.设置跟5.3.8一样.第二个办法是装一个VC++2008的运行环境,具体解决方法请看下面的第10条.
Windows users: please mind that we do no longer provide builds created with Visual Studio C++ 6. It is impossible to maintain a high quality and safe build of PHP for Windows using this unmaintained compiler.
For Apache SAPIs (php5_apache2_2.dll), be sure that you use a Visual Studio C++ 9 version of Apache. We recommend the Apache builds as provided by ApacheLounge. For any other SAPI (CLI, FastCGI via mod_fcgi, FastCGI with IIS or other FastCGI capable server), everything works as before. Third party extension providers must rebuild their extensions to make them compatible and loadable with the Visual Studio C++9 builds that we now provide.)
!!!!!!!这里要注意下,更新到5.4.*后 xdebug 和 memcache的dll就会失效.,需要去php.ini文件里面注销掉那几行代码.
今天是3月20日,xdebug的官方更新来一个beta版的dll,大家可以按照最后的说明去下它来配合php.
今天是4月26日,php官方更新版本分别至5.3.11和5.4.1版本. 下面分别说下更新方法,直接安装新的版本也需要注意这几个地方
后续版本更新tips:
①对于5.3.11 ~到 ~5.3.15 ,把5.3.11或者后续代码的文件下载下来解压后直接覆盖,然后重做下面第5步就可以了.然后重启apache (覆盖前记得停掉apache)就可以了.这个xdebug和memcache都还可以用的.建议作为开发环境使用的版本.
②对于5.4.1 ~到~ 5,4,5以及5.4.0 可以看见在php文件夹里面已经存在了3个不同的php5apache2_2.dll php5apache2_2_filter.dll php5apache2_3.dll ,在5.4.0的版本中,需要把apache的配置文件httpd.conf里面LoadModule php5_module "D:/php/php5/php5apache2_2.dll" 改成php5apache2_3.dll 而在5.4.1里面,这几个文件还是存在,但是则需要改回去,改成php5apache2_2.dll,
③千万要记住,http.conf文件只对于5.4.0版本需要修改,后面的5.4.1,5.4.2,5.4.3,5.4.4, 5.4.5里面还是用 LoadModule php5_module "F:/php/php5/php5apache2_2.dll"
④对于5.4.X的版本,因为xdebug和memcache没有更新,所以已经失效,需要去php.ini里面,注销掉不能用的xdebug和memcache ,注销直接在前面加上 ; 分号即可,然后重启apache.
⑤今天是8月16日,php官方更新版本至5.3.16和5.4.6版本. 其中,5.3.16更新步骤和上面5.3.11一样.解压后重做下面第5步既可. 5.4.6同上面5.4.1
(注意5.4.5, 5.4.6里面,register_globals = On 需要注销掉,因为已经取消了,magic_quotes_gpc=On 也要注销掉,也是因为已经废弃了,注销直接前面加 ; )
2: 解压后,以前的php.ini是由php.ini-dist文件转变过来的
php5.3.8里面这个文件变成了php.ini-development
php.ini-development 意味着是开发版本的配置.
php.ini-production 是网站发布时的配置.
这里我们用开发版php.ini-development 修改成php.ini后 打开.
3: 下面修改php.ini的配置 我的php5.3.8是放在了F:/php/php5 文件夹下面
修改下面的为以下内容()
[php] view plaincopyprint?
- register_globals = off 超级全局变量,建议关闭,打开它会造成安全上的漏洞
- post_max_size= 8M POST提交时候的最大数据提交量
- magic_quotes_gpc = off php自带的安全验证,建议开启
- file_uploads = On php支持文件上传
- upload_max_filesize = 2M 文件上传最大值 2M
- max_file_uploads = 20 同时并发上传的最大文件数
找到extension_dir 和下面很多的 extension= ****.dll 这里
在extension=****.dll 的前面加上这一段来配置php的动态链接库地址
[php] view plaincopyprint?
- extension_dir="F:\php\php5\ext"
extension_dir="F:\php\php5\ext"
去掉以下的extension前面的分号 ; 使其开启
[php] view plaincopyprint?
- extension=php_bz2.dll
- extension=php_curl.dll
- extension=php_gd2.dll
- extension=php_gettext.dll
- extension=php_mbstring.dll
- extension=php_mysql.dll
- extension=php_mysqli.dll
- extension=php_openssl.dll
- extension=php_pdo_mysql.dll
- extension=php_sockets.dll
- extension=php_xmlrpc.dll
extension=php_bz2.dll extension=php_curl.dll extension=php_gd2.dll extension=php_gettext.dll extension=php_mbstring.dll extension=php_mysql.dll extension=php_mysqli.dll extension=php_openssl.dll extension=php_pdo_mysql.dll extension=php_sockets.dll extension=php_xmlrpc.dll
找到date.timezone
设置时区为中国时区
[php] view plaincopyprint?
- date.timezone = prc
date.timezone = prc
保存php.ini 并且复制一份到C:\windows 下
4: 让Apahce支持php. (Apache的安装很简单,这里省略下)
打开.\apache2.2\conf\httpd.conf
在大约60行的位置添加
[php] view plaincopyprint?
- PHPIniDir "F:/php/php5"
PHPIniDir "F:/php/php5"
注意一定要添加在LoadModule 那一段的前面,以便提前加载,不然稍后的phpMyAdmin容易出错.
在LoadModule这段后面添加
[php] view plaincopyprint?
- LoadModule php5_module "F:/php/php5/php5apache2_2.dll"
LoadModule php5_module "F:/php/php5/php5apache2_2.dll"
apache的htdocs重写这里就省略下. ( T _ T 刚才都要写完了,没保存掉chromium假死了下,然后就白写了...)
(注意下,随着php版本的更新.这个php5apace2_2.dll的模块,可能会改名!比如现在最新的是php5.4里面的php5apache2_3.dll)
在大约380行Addtype那里加入
[php] view plaincopyprint?
- AddType application/x-httpd-php .php .php5 .php4 .php3 .phtml .phpt
- AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php .php5 .php4 .php3 .phtml .phpt AddType application/x-httpd-php-source .phps
5: 重启Apache
这时候弹出找不到php_curl.dll 和php_openssl.dll
可是我们路径都指定了的,解决办法
复制php5文件夹下面的
libeay32.dll, ssleay32.dll, php5ts.dll,
php5/ext文件夹下面的
php_curl.dll,php_openssl.dll
复制到C:/windows/system32 里面.
重启apache
6: 测试phpinfo和mysqlConn.
老版本的php是有一个libmysql.dll文件的,新版的libmysql.dll这个文件已经移交给了MySQL的开发团队,所以大家不用费心去找这个文件了.它就在MySQL安装目录的lib文件夹下. 复制一份到C:/windows/system32即可
在你的apache指定的www目录下新建一个phpinfo()文件.输入
[php] view plaincopyprint?
- phpinfo();
- ?>
打开浏览器输入http://127.0.0.1/phpinfo.php 得到php的信息
新建一个mysqlconn.php文件.输入
[php] view plaincopyprint?
- $conn=mysql_connect("localhost","root","123456") or die (mysql_error());
- if(!$conn) echo "Failed!";
- else echo "Successful!";
- print_r ($conn);
- mysql_close();
- ?
打开浏览器输入http://127.0.0.1/mysqlconn.php得到 Successful! 表明数据库链接成功
7:安装phpMyAdmin3.4.0
解压下来后把phpmyadmin放入www目录
找到phpmyadmin文件夹里的/libraries/config.default.php
修改以下内容
[php] view plaincopyprint?
- $cfg['PmaAbsoluteUri'] = 'http://localhost/phpmyadmin/';
- $cfg['Servers'][$i]['host'] = 'localhost';
- $cfg['Servers'][$i]['auth_type'] = 'config'; //如果是网络上则需要改成cookie
- $cfg['blowfish_secret'] = ''; //此项只有当上面修改为cookie后,这里必须修改,内容自定,比如你的域名比如www.yourdomain.com
- $cfg['Servers'][$i]['user'] = 'root'; //登录账户
- $cfg['Servers'][$i]['password'] = '123456'; //密码
- $cfg['DefaultLang'] = 'zh'; //这是默认语言为中文.
- $cfg['DefaultCharset'] = 'utf8'; //这是修改编码方式,可以修改成gb2312.
$cfg['PmaAbsoluteUri'] = 'http://localhost/phpmyadmin/'; $cfg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['auth_type'] = 'config'; //如果是网络上则需要改成cookie $cfg['blowfish_secret'] = ''; //此项只有当上面修改为cookie后,这里必须修改,内容自定,比如你的域名比如www.yourdomain.com $cfg['Servers'][$i]['user'] = 'root'; //登录账户 $cfg['Servers'][$i]['password'] = '123456'; //密码 $cfg['DefaultLang'] = 'zh'; //这是默认语言为中文. $cfg['DefaultCharset'] = 'utf8'; //这是修改编码方式,可以修改成gb2312.
浏览器打开http://127.0.0.1/phpmyadmin输入帐号密码进入
8:phpMyAdmin的出错解决:
a: 无法载入mcrypt扩展,请检查PHP配置
这个问题首先查看mysql是否开始.如果开启了,把php里面的 libmcrypt.dll 复制一份到windows/system32下. 并且检查php.ini文件里面extension=php_mcrypt.dll是否开启.
如果都不行,检查系统环境变量,在我的电脑 右键 属性, 高级 环境变量 里面的 系统变量 Path里面加入你的php安装路径 ;F:\php\php5 注意有分号隔开
b:如果phpMyAdmin登录出现下面的错误.Themysqliextension is missing
The mysqli extension is missing. Please check your PHP configuration.
复制php/ext/php_mysqli.dll 到windows/system32 后,即可进入
9: zendOptimizer,xdebug,WinCacheGrind加速调试的安装:
zend加速器安装很简单.exe文件,直接双击就行了.WinCacheGrind也是一样.地址就不贴了,大家辛苦搜下.
zendoptimizer3.3.3
http://www.zend.com/download/144?start=true 更新的版本,直接放到之前安装zendoptimizer的目录即可,找到对应的目录
这里只说下xdebug的安装.
首先打开
http://127.0.0.1/phpinfo.php
再打开http://xdebug.org/find-binary.php然后,把phpinfo.php解析后的内容ctrl+A,ctrl+c复制,然后ctrl+v粘贴在http://xdebug.org/find-binary.php 这个里面
接着点 屏幕左下的那个.
然后会给出你你需要操作的步骤.
第一个是你需要下载的xdebug版本.下载后复制到你的php/ext 里面去.改名不改名无所谓.
然后在php.ini里面添加下面提示的那个地址.比如我在我的php.ini添加上
[php] view plaincopyprint?
- [Xdebug]
- zend_extension="F:\php\php5\ext\php_xdebug.dll"
- xdebug.auto_trace=On
- xdebug.collect_params=On
- xdebug.collect_return=On
- xdebug.profiler_enable=on
- xdebug.trace_output_dir="F:\php\php5\xdebug"
- xdebug.profiler_output_dir="F:\php\php5\xdebug"
[Xdebug] zend_extension="F:\php\php5\ext\php_xdebug.dll" xdebug.auto_trace=On xdebug.collect_params=On xdebug.collect_return=On xdebug.profiler_enable=on xdebug.trace_output_dir="F:\php\php5\xdebug" xdebug.profiler_output_dir="F:\php\php5\xdebug"这里唯一需要注意的是,xdebug的输入路径必须要真实存在,它不会自己建的.所以需要提前建好.如果你下下来没改名,那么我上面的那个挂载文件就需要改成没改名的文件.
这些操作完了,复制一份新的php.ini去windows目录,然后打开cmd.exe输入
[php] view plaincopyprint?
- net stop apache2.2
- net start apache2.2
net stop apache2.2 net start apache2.2
来重启apache.然后就可以在phpinfo的最开始看见zendOptimizer和xdebug加载提示了.
10:Cannot load php5apache2_2.dll into server
如果apache安装完后,打开127.0.0.1显示it works,但是加载配置了的php.ini,重启apache不能启动报错的话,,这里我们先查阅apache的error.log,发现出现cannot load php5apache2_2.dll,这里说下这个问题的解决和缘由
首先去掉
LoadModule php5_module "F:/php/php5apache2_2.dll"
PHPIniDir "F:/php/php5"
重启apache正常.apache版本2.2.18 php版本5.3.8 VC9. 由于5.3.8的PHP是由VC编译完成,如果调用或者运行该PHP的相关文件,则需要安装VC的运行环境,如果没有这个环境,那么Apache调用时就会报上述错误信息.
解决的方法很简单:下一个VC2008运行库安装,地址在这里VC2008.,然后就可以解决了
下一篇: PHP str_replace