2014-07-13 16:17:08
来 源
中存储网
MySQL
上上周5.3.7的MD5漏洞,官方4天后更新了php5.3.8正好windows的系统还原了,于是安装最新的php5.3.8版本1: 下载php5.3.8 for windows.说明一下,官网的windows版本有2种,上面是非线程安全的VC9 x86 No

上上周5.3.7的MD5漏洞,官方4天后更新了php5.3.8 正好windows的系统还原了,于是安装最新的php5.3.8版本

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

今天是2013年4月11日,官方更新php5.3.23和5.4.13版本

由于精力有限, 本文不再提供2013年5月 php5.4.14及后续版本的更新. 望见谅 !

这里是php5.4.1 for windows VC9 X86

这里是php5.3.11 for windows VC9 X86 

php-5.4.14-Win32-VC9-x86.zip

php-5.3.24-Win32-VC9-x86.zip

php-5.2.17-Win32-VC6-x86.zip

linux 源码

php5.4.14.tar.gz

php5.3.24.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中就需要设置成下面的.(这里我们配置的环境不用设置)

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.24 ,把5.3.11或者后续代码的文件下载下来解压后直接覆盖,然后重做下面第5步就可以了.然后重启apache (覆盖前记得停掉apache)就可以了.这个xdebug和memcache都还可以用的.建议作为开发环境使用的版本.

②对于5.4.1 ~到~  5.4.14以及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.13里面还是用 LoadModule php5_module "F:/php/php5/php5apache2_2.dll"

④对于5.4.X的版本,因为xdebug和memcache没有更新,所以已经失效,需要去php.ini里面,注销掉不能用的xdebug和memcache ,注销直接在前面加上 ; 分号即可,然后重启apache.

⑤今天是2013年.4月11日,php官方更新版本至5.3.24和5.4.14版本. 其中,5.3.24更新步骤和上面5.3.11一样.解压后重做下面第5步既可. 5.4.14同上面5.4.1

(注意5.4.5 ~ 5.4.14里面,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 文件夹下面

修改下面的为以下内容()

short_open_tag = On                 短标签<?  ?>开启
asp_tags = On                       asp的短标签<*  *>开启
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的动态链接库地址

extension_dir="F:phpphp5ext"

去掉以下的extension前面的分号 ;  使其开启

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 

设置时区为中国时区

date.timezone = prc
保存php.ini 并且复制一份到C:windows 下

4: 让Apahce支持php. (Apache的安装很简单,这里省略下)

打开.apache2.2confhttpd.conf

在大约60行的位置添加

PHPIniDir "F:/php/php5"
注意一定要添加在LoadModule 那一段的前面,以便提前加载,不然稍后的phpMyAdmin容易出错.

在LoadModule这段后面添加

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那里加入

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
phpinfo();
?>
打开浏览器输入http://127.0.0.1/phpinfo.php 得到php的信息

新建一个mysqlconn.php文件.输入

<?php
        $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

修改以下内容

$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:phpphp5  注意有分号隔开

b:如果phpMyAdmin登录出现下面的错误.Themysqliextension is missing 

The mysqli extension is missing. Please check your PHP configuration. <a href="http://blog.csdn.net/rainysia/article/details/Documentation.html#faqmysql" target="documentation"><img src="https://www.chinastor.cn/uploads/allimg/140713/161FVb8-2.png" /></a>

复制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 这个里面

接着点 屏幕左下的那个Analyse my phpinfo() output

然后会给出你你需要操作的步骤.

第一个是你需要下载的xdebug版本.下载后复制到你的php/ext 里面去.改名不改名无所谓.

然后在php.ini里面添加下面提示的那个地址.比如我在我的php.ini添加上

[Xdebug]
zend_extension="F:phpphp5extphp_xdebug.dll"
xdebug.auto_trace=On
xdebug.collect_params=On
xdebug.collect_return=On
xdebug.profiler_enable=on
xdebug.trace_output_dir="F:phpphp5xdebug"
xdebug.profiler_output_dir="F:phpphp5xdebug"

这里唯一需要注意的是,xdebug的输入路径必须要真实存在,它不会自己建的.所以需要提前建好.如果你下下来没改名,那么我上面的那个挂载文件就需要改成没改名的文件.

这些操作完了,复制一份新的php.ini去windows目录,然后打开cmd.exe输入

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.,然后就可以解决了

11:再次没有了...

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。