PHP5安装笔记
时间:2006-05-11 来源:pplboy
Windows版的PHP5和PHP4相比,安装过程有些变化,安装更多的考虑到以后的可升级性,安装PHP5时建议安装在没有空格的目录名下,以免出现失误,如果安装在含有空格的目录下,那么配置的时候最好将目录名用引号引起来,下是Windows版PHP5的安装方法:PHP5安装笔记
Windows版的PHP5和PHP4相比,安装更多的考虑到以后的可升级性,安装PHP5时建议安装在没有空格的目录名下,以免出现错误,以下是Windows版PHP5的安装手册:
1。php4ts.dll/php5ts.dll:对php4ts.dll/php5ts.dll的路径说明也比较清晰而且更加利于将来的升级:第一种法案就是老的copy到系统目录,第二种方案就是添加PHP4/5到%PATH%中去(我这个懒人,在PHP4时就独辟蹊径的喜欢这么搞,因为这样做是符合windows查找文件时搜索路径的顺序(.->%PATH%)。
2。PHP.ini:出于安全和效率的考虑,建议使用php.ini-recommended作为php.ini的蓝本,而不要使用php.ini-dist。同时PHP.ini的查找路径也不再限于PHP4时代的%SystemRoot%下了,PHP5按照以下路径查找PHP.ini:
* PHPIniDir (Apache 2 module only)
* 注册表键值:HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath
* 环境变量:%PHPRC%
* PHP5的目录 (for CLI), 或者web服务器目录(for
SAPI modules)
* Windows目录(C:\windows or C:\winnt)
这五个方案中,配合Apache2时最好使用PHPIniDir,其次是使用%PHPRC%环境变量,另外,NTFS上记得给服务器开PHP.ini的读权限。
3.配置web服务器:
对于IIS,以IIS的ISAPI模块运行PHP:
1.在系统变量中添加%PHPRC%变量,取值为你的php.ini所在的目录(
比如在PHP5安装目录下。
2.为了使用HTTP Authentication,在ISAPI Filters上添加一个属性
为php5isapi.dll的PHP筛选器,如果不使用HTTP Authentication,可以不管这一步。
3.在主目录选项卡,点击配置,应用程序映射新建扩展名为.php并且可执行文件为php5isapi.dll。
4.好了,重新启动IIS,写个测试。
对于Apache,我一直都喜欢 以Apache的模块运行PHP
1.编辑httpd.conf
# LoadFile "e:/Apache/php4ts.dll"
# LoadModule php4_module modules/php4apache.dll
#加载php5ts.dll,这无论是apache还是IIS都必须以来的链接库
LoadFile "E:/PHP5/php5ts.dll"
#加载php5的apache模块
LoadModule php5_module "E:/PHP5/php5apache.dll"
#设置PHPRC变量,以提供给PH5查找配置文件PHP.ini,就无需在跑到%SystemRoot%下去找php.ini了
SetEnv PHPRC "E:/PHP5"
#注意,如果定义了ClearModuleList指令,则添加如下语句,如果没有则无须添加,我当初没有
#添加该行 ,结果将测试用的phpinfo.php的源码给下载下来了
AddModule mod_php5.c
#为了兼容添加php3和php4的类型
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .php4
2.重新启动apache(NET STOP apache && net start apache),写个测试。
4.额外的配置
为了更好的配置php5,还需要根据个人需要重新编辑你的php.ini:
比如需要使用smart和pear ,则需要更改的是:
include_path = ".;E:/PHP5/Smarty;E:/PHP5/PEAR"
另外php5再也不像php4那样内置了对mysql和ODBC的支持了,而是只内置对ODBC
进行支持,所以如果需要使用Mysql数据库的话,还要设置extension_dir(php_mysql.dll)的目录以及用
extension加载php_mysql.dll
#修改extension_dir为:
extension_dir = "E:/PHP5/ext"
#删除extension=php_mysql.dll前的;,以加载php_mysql.dll
extension=php_mysql.dll
差不多就这些了。
另外,对于加载Mysql模块时的:PHP startup: Unable to load dynamic library :E;\PHP5\ext\php_mysql.dll问题,继续。。。
如何解决PHP startup: Unable to load dynamic library的错误
怪啦!今天的Apache和IIS都没法正确加载php_mysql.dll。google了一下,原来发现出现这个问题的人还不少,PHP startup: Unable to load dynamic library :E;\PHP5\ext\php_mysql.dll。明明php_mysql.dll就摆在extension_dir (= "E:/PHP5/ext")下的嘛,怎么会呢?而且就在php_mysql.dll之前的extension=php_gd2.dll都没有出现这个问题,怪了!有人说copy libmysql.dll到 %windir%\system32下就可以解决问题,其实"华山不这一条道":
PHP被我挪了个窝,%ProgramFiles%到E:\下,导致一些要依赖于其他dll才能工作的扩展无法正常加载这些dll,出现加载扩展出
错,以刚才的php_mysql.dll为例,php_mysql依赖libmysql.dll,由于给PHP5挪窝了,而又没有把新的E:\PHP5夹道%PATH%中去
,所以没法找到这个libmysql.dll,才会出错。所以为了能够使用这些mysql的扩展,除了要正确地配置extension_dir外
,还得保证系统能够这些扩展所依赖的dll,解决的办法有两个:
1 将这些依赖的dll拷贝到%windir%\system32下
2 或者将PHP5的安装目录添加到%PATH%中。
无论那个都可以很好地达到我们地目的。
够简单的,但是有时候还就想不到哪儿去。
到底哪些扩展依赖哪些dll呢?以下列表可以帮助我们回答这个问题:
php_curl.dll CURL, Client URL library functions Requires: libeay32.dll, ssleay32.dll (bundled)
php_domxml.dll DOM XML functions PHP = 4.3.0 requires: iconv.dll (bundled)
php_fdf.dll FDF: Forms Data Format functions. Requires: fdftk.dll
gnu_gettext.dll (bundled), PHP >= 4.2.3 requires libintl-1.dll,
php_iconv.dll ICONV characterset conversion Requires: iconv-1.3.dll
php_ingres.dll Ingres II functions Requires: Ingres II libraries
php_interbase.dll InterBase functions Requires: gds32.dll (bundled)
php_java.dll Java functions PHP = 4.3.0 requires libeay32.dll,ssleay32.dll (bundled)
php_mcrypt.dll Mcrypt Encryption functions Requires: libmcrypt.dll
php_mhash.dll Mhash functions PHP >= 4.3.0 requires: libmhash.dll (bundled)
php_mcrypt.dll Mcrypt Encryption functions Requires: libmcrypt.dll
php_mhash.dll Mhash functions PHP >= 4.3.0 requires: libmhash.dll (bundled)
php_msql.dll mSQL functions Requires: msql.dll (bundled)
php_mssql.dll MSSQL functions Requires: ntwdblib.dll (bundled)
php_mysql.dll MySQL functions PHP >= 5.0.0, requires libmysql.dll (bundled)
php_mysqli.dll MySQLi functions PHP >= 5.0.0, requires libmysqli.dll (bundled)
php_oci8.dll Oracle 8 functions Requires: Oracle 8.1+ client libraries
php_openssl.dll OpenSSL functions Requires: libeay32.dll (bundled)
php_oracle.dll Oracle functions Requires: Oracle 7 client libraries
php_sybase_ct.dll Sybase functions Requires: Sybase client libraries
php_xmlrpc.dll XML-RPC functions PHP >= 4.2.1 requires: iconv.dll (bundled)
php_xslt.dll XSLT functions PHP = 4.2.1 requires sablot.dll, expat.dll, iconv.dll (bundled).
看文档耐心不够,自己找了点麻烦。:P
相关阅读 更多 +