Thank you for reading...
2008/02/05 21:52
Windows下php5.16和apache2.2的安装问题
今天在本本上安装WAMP环境(Windows+Apache2+MYSQL+PHP5),php本机上有个5.16的版本,那就用它吧。apache则是去官方下载了最新版apache_2.2.8-win32-x86-no_ssl.msi。
所有软件都安装在c:\www目录下。安装完后,apache测试页面正常。然后在httpd.conf中加入php的配置参数,
# For PHP 5 do something like this:
LoadModule php5_module "c:/www/php5/php5apache2.dll"
AddType application/x-httpd-php .php
# configure the path to php.ini
PHPIniDir "C:/www/php5"
重启Apache,居然提示:
开始以为自己安装有错,但试了多种方法均无效,只能借助于搜索引擎。
查到一篇:http://www.beenhero.com/post/Cannot-load-php5apache2.dll-into-server.html
原来是PHP5.1.x系列的压缩包里的php5apache2.dll只适用于apache2.0.*。
我根据这位朋友提供的解决方案解决了这个问题,在这里转贴一下:)
@@080827@2UPDATE:
看了下面这位朋友的回复,挺意看了我机子上的版本,没有php5apache2_2.dll这个文件。然后去下载了最新的php-5.2.6-Win32.zip,里面才有php5apache2_2.dll这个文件。没去试,应该就是用LoadModule php5_module C:/php5/php5apache2_2.dll了,这下方便多了:)
今天在本本上安装WAMP环境(Windows+Apache2+MYSQL+PHP5),php本机上有个5.16的版本,那就用它吧。apache则是去官方下载了最新版apache_2.2.8-win32-x86-no_ssl.msi。
所有软件都安装在c:\www目录下。安装完后,apache测试页面正常。然后在httpd.conf中加入php的配置参数,
# For PHP 5 do something like this:
LoadModule php5_module "c:/www/php5/php5apache2.dll"
AddType application/x-httpd-php .php
# configure the path to php.ini
PHPIniDir "C:/www/php5"
重启Apache,居然提示:
引用
httpd.exe: Syntax error on line 486 of C:/www/apache2/conf/httpd.conf: Cannot load C:/www/php5/php5apache2.dll into server: \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6
开始以为自己安装有错,但试了多种方法均无效,只能借助于搜索引擎。
查到一篇:http://www.beenhero.com/post/Cannot-load-php5apache2.dll-into-server.html
原来是PHP5.1.x系列的压缩包里的php5apache2.dll只适用于apache2.0.*。
我根据这位朋友提供的解决方案解决了这个问题,在这里转贴一下:)
引用
先下载 这个文件,并解压,共有两个文件.
里面有一个Windows Installer 3.1的升级补丁: WindowsInstaller-KB893803-x86.exe
还有一个压缩包,再解压则有下面三个文件:
vcredist_x86.exe
php5apache2.dll
httpd.exe.manifest
步骤:
1.将 php5apache2.dll 覆盖掉你原来PHP目录下的 php5apache2.dll 文件.
2.将 httpd.exe.manifest 文件复制到你的apache安装目录下的bin文件夹下.
3.双击运行vcredist_x86.exe安装.(如果您的系统里已安装了 .NET framework 2.就可以省掉这一步)
如果第三步出现错误,则安装Windows Installer 3.1的升级补丁,那么就可以完成第三步了。
完成后去重启你的apache2.2试试吧.
里面有一个Windows Installer 3.1的升级补丁: WindowsInstaller-KB893803-x86.exe
还有一个压缩包,再解压则有下面三个文件:
vcredist_x86.exe
php5apache2.dll
httpd.exe.manifest
步骤:
1.将 php5apache2.dll 覆盖掉你原来PHP目录下的 php5apache2.dll 文件.
2.将 httpd.exe.manifest 文件复制到你的apache安装目录下的bin文件夹下.
3.双击运行vcredist_x86.exe安装.(如果您的系统里已安装了 .NET framework 2.就可以省掉这一步)
如果第三步出现错误,则安装Windows Installer 3.1的升级补丁,那么就可以完成第三步了。
完成后去重启你的apache2.2试试吧.
@@080827@2UPDATE:
看了下面这位朋友的回复,挺意看了我机子上的版本,没有php5apache2_2.dll这个文件。然后去下载了最新的php-5.2.6-Win32.zip,里面才有php5apache2_2.dll这个文件。没去试,应该就是用LoadModule php5_module C:/php5/php5apache2_2.dll了,这下方便多了:)
2007/10/16 16:17
一台服务器原来装的Apache2.2.3,由于当初使用了--enable-module=most 的参数,加载了大部分不需要用到的模块。
考虑到服务器负载有些大,不需要的模块还是会有些影响,于是考虑重装Apache。
由于网站正在运行,有点担心重新编译会不会带来问题。问了下,同事说安装在同一目录一般不会有问题,也不会影响网站运行,但最好要把原目录备份一下,万一有问题,也可以恢复回去。
还是原版本2.2.3,这次的配置是,./configure --prefix=/usr/local/apache2 --enable-shared=max --with-mpm=worker --enable-rewrite --enable-expires --enable-deflate
特意查了一下功能,
--enable-module=so,是为了使得模块“so”有效,这样以后你可以运用DSO+APXS机制,通过第三类模块(3rd party module)来扩充你的Apache安装。
–enable-shared=max
max是指所有已配置模块都编译成DSO模块(除了so以外的,so不能被编译成DSO的)
使用动态加载方式会带来5%的性能下降,但和带来的好处相比更本不算什么:比如模块升级方便,系统升级风险降低,安装过程标准化。
但--enable-module=so不是很必要,因为APACHE是配置文件默认是只要你安装了一个动态加载模块。系统会默认将SO放进去。不需要你特意说明的。系统会自动检查的。
--enable-deflate
网站启用了deflate压缩
--with-mpm=worker
worker模式
--enable-rewrite
网站需要用到rewrite(URL重写功能)
--enable-expires
网站需要用到缓存功能
重编译后,重启Apache,网站正常。真不错,直接在上面装不会影响正在跑的apache的运行。
去apache官方看了下,最新版2.2.6,下载下来,编译,顺利完成。
装完后,用httpd -l看了一下有哪些模块,还挺多的。
不过,由于php5并没有重新编译,phpinfo显示的Apache版本还是2.23。
/usr/local/apache2/bin/httpd -v
Server version: Apache/2.2.6 (Unix)
Server built: Oct 15 2007 16:20:1
那再重编译一下php5,php.ini备份了下。装完后网站好像停了会儿,再装Zend,装完,网站恢复正常。
这次在不影响网站运行的情况下,直接重装升级还是有些冒险的,毕竟以前没试过,还好顺利的完成了:)
考虑到服务器负载有些大,不需要的模块还是会有些影响,于是考虑重装Apache。
由于网站正在运行,有点担心重新编译会不会带来问题。问了下,同事说安装在同一目录一般不会有问题,也不会影响网站运行,但最好要把原目录备份一下,万一有问题,也可以恢复回去。
还是原版本2.2.3,这次的配置是,./configure --prefix=/usr/local/apache2 --enable-shared=max --with-mpm=worker --enable-rewrite --enable-expires --enable-deflate
特意查了一下功能,
--enable-module=so,是为了使得模块“so”有效,这样以后你可以运用DSO+APXS机制,通过第三类模块(3rd party module)来扩充你的Apache安装。
–enable-shared=max
max是指所有已配置模块都编译成DSO模块(除了so以外的,so不能被编译成DSO的)
使用动态加载方式会带来5%的性能下降,但和带来的好处相比更本不算什么:比如模块升级方便,系统升级风险降低,安装过程标准化。
但--enable-module=so不是很必要,因为APACHE是配置文件默认是只要你安装了一个动态加载模块。系统会默认将SO放进去。不需要你特意说明的。系统会自动检查的。
--enable-deflate
网站启用了deflate压缩
--with-mpm=worker
worker模式
--enable-rewrite
网站需要用到rewrite(URL重写功能)
--enable-expires
网站需要用到缓存功能
重编译后,重启Apache,网站正常。真不错,直接在上面装不会影响正在跑的apache的运行。
去apache官方看了下,最新版2.2.6,下载下来,编译,顺利完成。
装完后,用httpd -l看了一下有哪些模块,还挺多的。
引用
core.c
mod_authn_file.c
mod_authn_default.c
mod_authz_host.c
mod_authz_groupfile.c
mod_authz_user.c
mod_authz_default.c
mod_auth_basic.c
mod_include.c
mod_filter.c
mod_deflate.c
mod_log_config.c
mod_env.c
mod_expires.c
mod_setenvif.c
worker.c
http_core.c
mod_mime.c
mod_status.c
mod_autoindex.c
mod_asis.c
mod_cgid.c
mod_negotiation.c
mod_dir.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_rewrite.c
mod_so.c
mod_authn_file.c
mod_authn_default.c
mod_authz_host.c
mod_authz_groupfile.c
mod_authz_user.c
mod_authz_default.c
mod_auth_basic.c
mod_include.c
mod_filter.c
mod_deflate.c
mod_log_config.c
mod_env.c
mod_expires.c
mod_setenvif.c
worker.c
http_core.c
mod_mime.c
mod_status.c
mod_autoindex.c
mod_asis.c
mod_cgid.c
mod_negotiation.c
mod_dir.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_rewrite.c
mod_so.c
不过,由于php5并没有重新编译,phpinfo显示的Apache版本还是2.23。
/usr/local/apache2/bin/httpd -v
Server version: Apache/2.2.6 (Unix)
Server built: Oct 15 2007 16:20:1
那再重编译一下php5,php.ini备份了下。装完后网站好像停了会儿,再装Zend,装完,网站恢复正常。
这次在不影响网站运行的情况下,直接重装升级还是有些冒险的,毕竟以前没试过,还好顺利的完成了:)
2007/08/24 13:28
今天同事问我,怎么装的ZendOptimizer不生效?他是想试一个用Zend加密过的程序时,显示一堆乱码,显然是ZendOptimizer没生效。我看了下他的版本是新装的5.23,比我半年前装的php5.16还新,然后我本机测试了下,发现自己机子上的ZendOptimizer也没生效!
看下phpinfo(),显示:
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
with Zend Extension Manager v1.2.0, Copyright (c) 2003-2007
没有相应的ZendOptimizer信息。明明装了呀,本机搜索下,发现是装的是ZendOptimizer-3.0.1-Windows-i386.exe,卸载重装,问题依旧:(
后来在Error_log中看到如下提示:
PHP Warning: Zend Optimizer does not support this version of PHP - please upgrade to the latest version of Zend Optimizer in Unknown on line 0
看来是版本不行?去官方看了下,最新的是ZendOptimizer-3.3.0,下载下来:ZendOptimizer-3.3.0a-Windows-i386.exe,卸载旧版本安装新版本,装完查看phpinfo(),发现已经有了相应的说明,安装应该成功了。
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
with Zend Extension Manager v1.2.0, Copyright (c) 2003-2007, by Zend Technologies
with Zend Optimizer v3.3.0, Copyright (c) 1998-2007, by Zend Technologies
运行加密过的程序,正常显示了,OK!
看下phpinfo(),显示:
引用
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
with Zend Extension Manager v1.2.0, Copyright (c) 2003-2007
没有相应的ZendOptimizer信息。明明装了呀,本机搜索下,发现是装的是ZendOptimizer-3.0.1-Windows-i386.exe,卸载重装,问题依旧:(
后来在Error_log中看到如下提示:
PHP Warning: Zend Optimizer does not support this version of PHP - please upgrade to the latest version of Zend Optimizer in Unknown on line 0
看来是版本不行?去官方看了下,最新的是ZendOptimizer-3.3.0,下载下来:ZendOptimizer-3.3.0a-Windows-i386.exe,卸载旧版本安装新版本,装完查看phpinfo(),发现已经有了相应的说明,安装应该成功了。
引用
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
with Zend Extension Manager v1.2.0, Copyright (c) 2003-2007, by Zend Technologies
with Zend Optimizer v3.3.0, Copyright (c) 1998-2007, by Zend Technologies
运行加密过的程序,正常显示了,OK!
2007/04/27 19:45
前几天换了台机子,打算告别使用了N年的2000,所以就重装了Win2003的系统。
装PHP,确碰到了问题,一切装好,却发现解析不了php。尝试了多种方法都无效:(
最后让同事装了一次,成功,这才发现问题所在。原来我用了php.ini-recommended(不知是什么时候看到哪篇文章上写的),换成php.ini-dist就正常了。哎,浪费了许多时间:(
下面是一些简单的步骤记录:
IIS
1.将官方下载的包解压到c:\php5。也可以在这里下载:http://down.itlearner.com/soft/2301.shtml
1.将php.ini-dist改名为php.ini,copy到c:\windows目录。新手不要用php.ini-recommended,需要改一些参数才能正常使用。
打开php.ini,将extension_dir = "./"更改为extension_dir = "c:\php5\ext\"
2.开始 -> 管理工具 -> IIS管理器,在Web服务扩展处,添加一个新的Web服务扩展,扩展名随意,添加C:\php5\php5isapi.dll,然后下面“设置扩展状态为允许”选上。
3.网站属性 -> 主目录 -> 配置,添加一个应用程序扩展,可执行文件:C:\php5\php5isapi.dll,扩展名:.php。
4.重启IIS,就OK了。
Apache
我装的是Apache2.0.55,装完。
开始 -> 程序 -> Apache HTTP Server 2.0.55 -> Configure Apache Server -> Apache,Edit the Apache httpd.conf Configuration File
或者直接打开c:\apache\apache2\conf\httpd.conf
最后加:
LoadModule php5_module "c:/php5/php5apache2.dll"
AddType application/x-httpd-php .php
重启apache,就OK了。
搜索mysql,将
;extension=php_mysql.dll前面的;去掉
装PHP,确碰到了问题,一切装好,却发现解析不了php。尝试了多种方法都无效:(
最后让同事装了一次,成功,这才发现问题所在。原来我用了php.ini-recommended(不知是什么时候看到哪篇文章上写的),换成php.ini-dist就正常了。哎,浪费了许多时间:(
下面是一些简单的步骤记录:
IIS
1.将官方下载的包解压到c:\php5。也可以在这里下载:http://down.itlearner.com/soft/2301.shtml
1.将php.ini-dist改名为php.ini,copy到c:\windows目录。新手不要用php.ini-recommended,需要改一些参数才能正常使用。
打开php.ini,将extension_dir = "./"更改为extension_dir = "c:\php5\ext\"
2.开始 -> 管理工具 -> IIS管理器,在Web服务扩展处,添加一个新的Web服务扩展,扩展名随意,添加C:\php5\php5isapi.dll,然后下面“设置扩展状态为允许”选上。
3.网站属性 -> 主目录 -> 配置,添加一个应用程序扩展,可执行文件:C:\php5\php5isapi.dll,扩展名:.php。
4.重启IIS,就OK了。
Apache
我装的是Apache2.0.55,装完。
开始 -> 程序 -> Apache HTTP Server 2.0.55 -> Configure Apache Server -> Apache,Edit the Apache httpd.conf Configuration File
或者直接打开c:\apache\apache2\conf\httpd.conf
最后加:
LoadModule php5_module "c:/php5/php5apache2.dll"
AddType application/x-httpd-php .php
重启apache,就OK了。
搜索mysql,将
;extension=php_mysql.dll前面的;去掉





