千万个美丽的未来,抵不上一个温暖的现在,每一个真实的现在,都是我们曾经幻想的未来!
分页: 5/5 第一页 上页 1 2 3 4 5 最后页 [ 显示模式: 摘要 | 列表 ]
Nov 5

在IIS基础上建立PHP环境总会出现这样或那样的问题,很多问题都比较难解决,笔者最近在建立IIS下PHP环境时就遇到了出现访问出错的问题,所有php页面文件无法正常显示出来,而ASP还有HTML静态页面能够顺利访问。下面就请各位IT168的读者随我一起从权限入手解决IIS+PHP环境故障。


一、故障现象:


    笔者搭建环境采用的操作系统是windows XP,IIS是系统自带的IIS 5,PHP版本是5.2。按照网上的步骤笔者安装PHP程序并配置了IIS中的相应映射参数建立了PHP环境,并且生成了名为index.php的文件作为测试用。在实际使用中却发现在服务器上通过浏览器访问http://127.0.0.1/index.phphttp://localhost/index.php均出现错误提示,具体页面显示为“无权查看网页,基于所提供的凭据,您没有权限查看此目录或网页,HTTP错误 401.3——访问被资源ACL拒绝”。(如图1)




    为了进一步排查故障笔者又在IIS中通过在默认网站上点“浏览”来查看,结果收到的反馈消息和上面的一样,也是“HTTP错误 401.3——访问被资源ACL拒绝”。(如图2)




    然而在同一个站点的其他页面文件,只要不是PHP语言建立的都可以正常浏览和查看,包括HTML静态页面和ASP动态网页文件。


二、修改验证方式解决问题:


    既然IIS反馈回的信息是“HTTP错误 401.3——访问被资源ACL拒绝”,所以笔者也针对访问权限进行排查故障工作。


    第一步:在IIS中的默认网站上右键选择“属性”来查看该站点的相关属性信息。(如图3)




    第二步:在打开的默认网站属性处我们找到“目录安全性”标签,然后点“匿名访问和身份验证控制”旁边的“编辑”按钮。(如图4)




    第三步:笔者在“身份验证方法”处看到了默认情况下IIS是通过建立的IUSER_CHINA-914340F04以及相应的密码访问IIS页面信息的,这个帐户也是由IIS自动创建的。(如图5)




    第四步:为了方便排查故障,特别是为了避免权限访问造成的问题,笔者在“身份验证方法”处点了“集成Windows身份验证”,这个选项的意思就是在本机或者网络有用户访问该站点里的页面文件时,将提示要求输入正确的Windows系统登录口令,通过Windows登录身份来验证是否容许浏览页面。(如图6)




    第五步:“确定”完毕后提示要求将下属目录和页面文件也按照这种规则生效,继承覆盖设置。我们同意即可。(如图7)




    第六步:修改完验证采用“集成Windows身份验证”后在IIS中浏览默认网站就没有任何问题了,可以顺利的显示出index.php文件中的PHP页面内容。(如图8)




    第七步:一般情况下在IIS中调用查看该页面是不需要进行集成Windows身份验证的,所以没有出现要求输入具备相应权限的Windows系统帐户和密码,不过如果要是通过网络或者浏览器访问就需要填写具有足够权限的Windows系统帐户和密码。(如图9)




    第八步:如果身份验证通过了Windows系统的检查,那么正确的页面信息也将显示出来。(如图10)




    至此我们就解决了IIS中PHP页面访问所出现的“HTTP错误 401.3——访问被资源ACL拒绝”故障。不过这种设置在访问上带来了一定的不方便,必须知道Windows系统的帐户和密码才可以浏览,要知道一般网站都是给外部用户使用的,他们并不会知道服务器的密码与管理帐户,就算知道了也会给服务器的安全带来巨大的隐患。所以我们还需要从权限入手,解决问题。


三、修改匿名访问帐号解决实际问题:


    既然通过修改访问方式为“集成Windows身份验证”能够解决实际问题,这就说明问题的根源不在PHP上,而在于权限的设置。


    我们再次尝试在IIS中的默认网站上右键选择“属性”来查看该站点的相关属性信息。找到“目录安全性”标签,然后点“匿名访问和身份验证控制”旁边的“编辑”按钮。将“身份验证方法”处看到的IUSER_CHINA-914340F04帐户通过“浏览”按钮选择管理员administrator帐户,密码也设置相应的密码。(如图11)




    再次浏览PHP文件你会发现一切顺利,PHP文件的内容可以被正常显示。(如图12)通过浏览器访问页面也没有任何问题,PHP内容显示无误。(如图13)





    可见将默认的IUSER_CHINA-914340F04帐户修改为administrator管理员权限的帐户后访问就没有任何问题了,同时也不会出现上面修改验证方式时出现的帐户密码确认对话框,外部用户访问顺顺利利。不过这种方法非常不安全,毕竟administrator的权力太大,权限太高,可以轻松实现对页面的修改和删除操作。


四、修改文件夹权限解决问题:


    上面两种修改办法都可以解决问题,这更加说明了问题出在权限而不是PHP的安装上。从网上找到的资料就是需要容许IUSER_CHINA-914340F04这个IIS临时调用帐号具备对IIS发布目录的访问权限,如果是PHP页面还需要具备执行权限。


    第一步:由于笔者没有修改默认的IIS发布目录路径,所以我们进入到c:\inetpub目录,找到WWWROOT目录,在其上点鼠标右键选择“共享和安全”。(如图14)




    第二步:将对应的IUSER_CHINA-914340F04帐户添加到对文件夹访问的属性窗口,并给予读取和运行,列出文件夹目录以及读取权限。(如图15)




    第三步:另外为了保险还应该将IUSER_CHINA-914340F04帐户添加到对PHP文件夹访问的属性窗口中,给予并给予读取和运行,列出文件夹目录以及读取权限。(如图16)




    第四步:接下来就应该可以顺利访问了,浏览PHP页面不会出现诸如“无权查看网页,基于所提供的凭据,您没有权限查看此目录或网页,HTTP错误 401.3——访问被资源ACL拒绝”的错误提示了。


    小提示:如果还是有问题我们只需要将IUSER_CHINA-914340F04帐户的密码重新设置下。(如图17)最后再在“身份验证方法”处的IUSER_CHINA-914340F04帐户密码处输入相应的字符即可,记得要把容许IIS控制密码前的对勾去掉。(如图18)





    这种方法解决了故障问题后可以实现外部用户不需要输入任何验证信息就可以顺利访问站点的目的,而且也不会给网站带来极大的安全隐患。


五、总结:


    实际上本文是循序渐进的解决了PHP在IIS环境下的“无权查看网页,基于所提供的凭据,您没有权限查看此目录或网页,HTTP错误 401.3——访问被资源ACL拒绝”问题。相比之下第一种和第二种用于定位问题所在,在实际中并不可取,因为这样不方便用户浏览页面,而且在容易造成安全隐患;最后第三种方法才是真正的解决方案。不过本文介绍的三种方法是为了让读者开阔思路,真正从实例理解IIS中相应的设置信息,在关键时候可以解决大问题。

Tags: ,
Nov 5
如果您以前的PHP代码用ZS或ZE编码过,请不要装PHP测试版,最好装PHP5.0.5, 因为ZO不支持PHP测试版
PHP5.0.4下载 http://cn.php.net/distributions/php-5.0.5-Win32.zip
(安装方法一样)

1、IIS6的安装
IIS6是WINDOWS2003自带的服务器组件,默认没有安装,安装方法:
控制面板----添加和删除程序----添加/删除windows组件----双击“应用程序服务器”----勾选上“INTERNET信息服务(IIS)”----确定(如果提示插入光盘,请插入WINDOWS2003安装盘)

2、php5.安装
下载php5..0b3; http://cn.php.net/distributions/php-5..0RC-Win32.zip
解压到D:/php目录;
复制D:/php/主目录下的所有DLL文件到:c:/windows/system32/中; 不用复制子目录中的

3、IIS6设置
从“开始”----“管理工具”中打开“internet信息服务(IIS)管理器”-----右键点“本地服务器”----点“属性”----点“MIME类型”----点“新建”----扩展名:php ;MIME类型:application/httpd-php----确定、确定
右键点IIS左边框中的“WEB服务扩展”----点“添加一个新的WEB服务扩展”----扩展名:php; “添加”要求的文件:C:\WINDOWS\system32\php5isapi.dll----勾上“设置扩展状态为允许”----确定
建网站目录,假设为:D:/WEB/
建一个子目录: D:/WEB/includes

右键点IIS左边框中的“网站”下的“默认WEB网站”----点“属性”----点“主目录”卡----本地路径:d:\web ; 只勾选“脚本资源访问”、“读取”----执行权限选“纯脚本”----点“配置”按钮----“映射”卡中点“添加”----扩展名:php; 可执行文件:C:\WINDOWS\system32\php5isapi.dll----确定、确定
“文档”卡中“添加”:index.php;“上移”到最顶----确定

4、php5.设置
复制d:/php/下的php.ini-dist文件到 c:/windows/目录中,改名为:php.ini;双击打开这个文件做以下设置:

; Windows: "\path;\path2"
include_path = ".;d:\web\includes"

extension_dir = "D:\php\ext"

extension=php_mbstring.dll
extension=php_bz2.dll
;extension=php_cpdf.dll
extension=php_curl.dll
extension=php_dba.dll
extension=php_dbase.dll
;extension=php_dbx.dll
extension=php_exif.dll
extension=php_fdf.dll
extension=php_filepro.dll
extension=php_gd2.dll
extension=php_gettext.dll
;extension=php_ifx.dll
;extension=php_iisfunc.dll
extension=php_imap.dll
extension=php_interbase.dll
;extension=php_java.dll
extension=php_ldap.dll
;extension=php_mcrypt.dll
extension=php_mhash.dll
extension=php_mime_magic.dll
extension=php_ming.dll
extension=php_mssql.dll
extension=php_msql.dll
extension=php_mysql.dll
;extension=php_oci8.dll
extension=php_openssl.dll
;extension=php_oracle.dll
;extension=php_pdf.dll
extension=php_pgsql.dll
extension=php_shmop.dll
extension=php_snmp.dll
extension=php_sockets.dll
;extension=php_sybase_ct.dll
extension=php_tidy.dll
;extension=php_w32api.dll
extension=php_xmlrpc.dll
extension=php_xsl.dll
;extension=php_yaz.dll
;extension=php_zip.dll

; 上面有您用不上的可以用分号注掉

session.bug_compat_42 = 0
session.bug_compat_warn = 0

保存文件 ,运行d:\php\php.exe 如果提示有不能运行的扩展库,在上面那个文件中用分号禁掉提示的扩展库就好了。

在 d:\web\下建一个文件:.php,写入:
<?
phpinfo();
?>
在浏览器中打开: http://localhost/.php

如果您看到了PHP服务器的信息,祝贺您安装成功。

5、安装: MySQL 4.0.26-nt

下载:http://mysql.cdpa.nsysu.edu.tw/Downl...0.26-win32.zip
解压到:c:\mysql\
运行: C:\mysql\bin\winmysqladmin.exe ; (主要是为了生成c:\my.ini,使mysql加入到系统服务中,) 等待弹出用户名和密码输入框, 分别输入、,确定就好了;从“开始”--“程序”--“启动”中删除 winmysqladmin.exe
运行: C:\mysql\bin\mysqld-nt.exe 完成后,MYSQL安装完成

phpMyAdmin-2.8.2的配置文件在

phpMyAdmin\libraries\config.default.php.

先设置phpMyAdmin的位置

$cfg[PmaAbsoluteUri] = http://localhost/phpmyadmin/;

CTRL+G到7行设置用户名和密码

$cfg[Servers][$i][auth_type] = config; // Authentication method (config, http o cookie based)?
$cfg[Servers][$i][user] = jondy; // MySQL user
$cfg[Servers][$i][password] = zhack.com; // MySQL password (only needed

设置中文支持

$cfg[DefaultLang] = zh-gb232;

$cfg[DefaultCharset] = gb232;

这样就可以使用了,为了安全要设置$cfg[Servers][$i][auth_type]

为http或cookie哦,这样登陆phpMyAdmin时就要身份验证了.

用户名和密码和连接MySQL的一样.

最好将phpMyAdmin目录改个别的名比如love_jondy,

毕竟这么牛X的程序不一定哪天出个漏洞什么的,安全第一呀,呵呵.

我的一个客户用的5.net的虚拟主机,安装的时候提示

Warning: unknown encoding "gb232" in /z2/xxxxxxx/public_html/love_jondy/libraries/string.lib.php on line 4

简单的处理方法是编辑libraries/string.lib.php

CTRL+G到4行,在前边加上//注释掉,哈哈,管他什么if else呢.

Windows 2003下配置php+mysql+phpmyadmin (希望加精)

请大家认真按照以下方法安装,保证您安装成功,确实安装不成功者,可加QQ:88797888 为您免费安装。若觉得好,请版主给予加精......

序、软件准备
软件版本及系统环境介绍:
* 软件版本:Windows Server 2003 Standard Edition SP、IIS 6.0、PHP 4.4.、MySQL 4.0.26、phpMyAdmin 2.7.0-beta
* 系统环境:
├─ C:\windows\ --------------------------系统目录
├─ E:\myweb\wwwroot\ ---------IIS主目录
├─ E:\myweb\php4\ ----------------PHP目录
├─ E:\myweb\mysql\ ---------------MySQL目录
└─ E:\myweb\wwwroot\phpMyAdmin\ -----phpMyAdmin目录

2 软件下载:
PHP 4.4. MySQL 4.0.26 phpMyAdmin 2.7.0-beta(这些软件可以从网上下载,若下载不到可向本人免费索取)

3 IIS服务器:
关于IIS的安装因为比较简单,在此只大概的说一下,这个功能在“添加/删除程序---添加删除Windows组件”中添加“Internet 信息服务”即可,就不再赘述了。

一、PHP的安装配置
将PHP解压到上述目录,将php4目录下的php.ini-recommended文件改名为php.ini,然后用记事本打开;

2 然后把 extension_dir = "./" 修改为 extension_dir = "E:\myweb\php4\extensions";

3 再找到session.save_path = /tmp,去掉此行前面的分号,然后将其改为session.save_path = E:\myweb\php4\sessions (同时在php4目录下新建名为sessions的目录);

4 找到extension=php_mbstring.dll,去掉此行前面的分号;

5 将修改好的php.ini文件拷贝至C:\windows目录下,将php4目录下的php4ts.dll文件拷贝到C:\windows\system32目录下;

6 打开“Internet服务管理器”,选择你想支持PHP的站点(如:默认网站),打开属性页,点击“ISAPI筛选器”选项卡,点击“添加”,在弹出的“筛选器属性”窗口的“筛选器名称”中填入“php”;在“可执行文件”中填入“E:\myweb\php4\sapi\php4isapi.dll”,点击确定;

7 点击“主目录”选项卡,选择“应用程序设置”中的“配置”按钮,在弹出的“应用程序配置”窗口中点击“添加”按钮,在弹出的“添加/编辑应用程序扩展名映射”窗口中的“可执行文件”中填入“E:\myweb\php4\sapi\php4isapi.dll”,“扩展名”一项填入“.php”;

8 点击“文档”选项卡,添加index.php为默认文档;

9 再回到IIS管理器的左侧边栏树状目录,右键单击“Web服务扩展”,选择“添加一个新的Web服务扩展”。在弹出的对话框中输入扩展名为PHP,然后单击“添加”按钮,选择“浏览”,添加“E:\myweb\php4\sapi\php4isapi.dll”文件,并勾选“设置扩展状态为允许”;

0 PHP主要安装过程就此结束,重启IIS。到E:\myweb\wwwroot目录下新建一个phpinfo.php文件,内容如下:
<?php
phpinfo();
?>
通过浏览器访问 http://localhost/phpinfo.php ,如果显示页首有“PHP Version 4.4.”字样页面,则代表PHP已经安装成功。

二、MySQL的安装
解压mysql-4.0.26-win32.zip文件后,执行其中的setup.exe文件,启动安装程序;

2 在安装程序第三步中选择安装目录为“E:\myweb\mysql”(如有提示框弹出,请单击“Yes”,程序会自动建立此目录);

3 第四步中选择“Typical(默认值)”,点击“Next”按钮后,安装开始。最后点击“Finish”按钮完成MySQL安装;

4 (此步骤可以省略)安装完成后,进入“E:\myweb\mysqlbin”目录,双击winmysqladmin.exe文件,它会提示建立新账号,输入自己想要的用户名及密码即可,确认后,在任务栏中会出现一个红绿灯的图标,如果是绿灯亮起,代表MySQL已经成功运行。

三、phpMyAdmin的安装配置
解压phpMyAdmin-2.7.0-beta.tar.bz2文件到“E:\myweb\wwwroot\phpMyAdmin”目录;

2 在“E:\myweb\wwwroot\phpMyAdmin”目录中找到config.default.php文件,将其改名为config.inc.php,然后用记事本打开;

3 找到$cfg['blowfish_secret'] = '',将其值改为你自己想要的任意字符,如$cfg['blowfish_secret'] = 'owndownd';

4 找到$cfg['Servers'][$i]['auth_type'] = 'config',改为$cfg['Servers'][$i]['auth_type'] = 'cookie';

5 找到$cfg['DefaultLang'] = 'en-iso-8859-',改为$cfg['DefaultLang'] = 'zh-utf-8';

6 找到$cfg['DefaultCharset'] = 'iso-8859-',改为$cfg['DefaultCharset'] = 'zh-utf-8';

7 通过以上设置,就可以通过http://localhost/phpmyadmin/访问到phpMyAdmin登录界面了;

8 使用root账号登录,密码为空。登录后选择更改密码,输入自己需要的密码,点击“更改”按钮,即完成phpMyAdmin最后配置。现在已经可以通过phpMyAdmin来管理MySQL数据库了;

四、结束语
通过阅读以上的文字相信一部分浏览者已经可以在自己的机器上成功建立PHP+MySQL环境支持了,实际上也可以依照以上方法在Windows 2000或者Windows XP的系统环境中进行配置。祝各位好运^^!
Tags: , , ,
Nov 1
Apache服务器是Internet网上应用最为广泛的Web服务器软件之一。如果我们需要创建一个每天有数百万人访问的Web服务器,Apache可能是最佳选择。

    PHP的全名是“PHP:HYPERTEXT PREPROCESSOR”。是一种多平台无缝运行的服务器端嵌入式脚本语言,它融合了C、JAVA和PERL等编程语言,由于它是一种免费的软件,具有自由软件的性质,版本更新速度快,移植速度快,丰富的函数库功能,因而很快得到大家的喜欢,特别是PHP提供加密函数库,特别适合给安全性较高的电子商务网站的要求,在Apache环境下构建的PHP网站已经作为当前的流行的Web网站之一。

    PHP能够作为Apache Web服务器的模块执行,使得它的执行效率要高于普通的CGI程序,而且能比CGI或者Perl更快速地执行动态网页。


    PHP的工作原理如下(如下图1所示):




    我们如果创建了一个PHP应用程序,实际上相当于创建了一个PHP脚本文件。在服务器将输出信息发送到客户端之前,网络服务器会率先将文件中的PHP语言进行加工处理。如果服务器不支持PHP,通常情况下,网络服务器会直接将超文本文件送到客户的浏览器上以表示对HTTP的要求作出应答;如果服务器支持PHP,则在服务器响应一个对PHP文件的请求时,会进行下列处理:首先在一个PHP文件内,标准的HTML编码会被直接送到浏览器上,而内嵌PHP程序却是先被网络服务器解释执行。如果是标准输出的话,输出信息也将作为标准的HTML而被送至浏览器。


    PHP可以安装在Unix/Linux环境下,也可以安装在Windows环境下。目前网站使用最多的、也是最理想的便是PHP+MySQL+Apache基于Unix/Linux下的服务器策略。


本文中所说的Linux就选用大家比较熟悉的Red Hat Linux操作系统。


    作为一个领先的开放源代码操作系统,红帽企业Linux提供了适用于从台式计算机到大型数据中心的系列产品:红帽企业 Linux AS 适用于高端的,用于关键业务处理的系统,红帽企业 Linux ES 适用于小到中型服务器,红帽企业 Linux WS 适用于技术/设计工作站,红帽企业 Desktop适用于安全,可管理的客户机环境。


    我们采用最新的红帽企业 Linux AS4的环境中使用Apache来构建PHP网站,作为学习环境使用,在安装redhat AS4时选择为系统“定制软件包”,在定制安装中选择“全部”,会安装包括在红帽企业 Linux AS4中的所有软件包。Apache 2.0服务器版本、PHP 4.3.9以及MySQL 4.1.x等软件都已经安装成功。


    我们也可以到http://www.apache.org/网站下载Apache最新版本, http://www.php.net/网站下载PHP新版本以及http://www.mysql.com/下载Linux的MySQL最新版本分别进行安装,由于篇幅有限,这里就不介绍如何分别编译、配置和安装了。


    红帽企业 Linux AS4中使用 “HTTP 配置工具”来配置 Apache HTTP 服务器 的一般步骤如下所述:


    1)在「主」标签下配置基本设置。
    2)根据实际需要,点击「虚拟主机」标签来配置默认设置。在「虚拟主机」标签下,配置默认的虚拟主机。如果你想为不止一个 URL 或虚拟主机提供服务,则添加额外的虚拟主机。
    3)在「服务器」标签下配置服务器设置。
    4)在「性能微调」标签下配置连接设置。
    5)把所有必要的文件复制到 DocumentRoot 和 cgi-bin 目录中。
    6)退出程序并保存你的设置。


1、基本设置


    使用「主」标签来配置基本服务器设置。
 
    在「服务器名称」文本字段中输入有权使用的完整域名。该选项和 httpd.conf 中的 ServerName 指令相对应。ServerName 指令设置万维网(WWW或WEB)服务器的主机名。服务器名称不一定非要是它的 IP 地址。在这里服务器名称设为 www.ghq.com


    在「网主电子邮件地址」文本字段中输入万维网服务器维护者的电子邮件地址。该选项和 httpd.conf 中的ServerAdmin 指令相对应。如果配置服务器的错误页要包含电子邮件地址,该地址将会被用户用来向服务器的管理员提交问题。默认的值是:root@localhost


    使用「可用地址」文本字段来定义服务器接受进入连接请求的端口。该选项和 httpd.conf 中的Listen 指令相对应。红帽默认配置 Apache HTTP 服务器 在端口 80 上监听非安全万维网通讯。


    为了简单明了,这里我们不配置虚拟主机。


「服务器」标签允许配置基本的服务器设置。默认设置在多数情况下都是适用的。
 
   「锁文件」的值和LockFile 指令相对应。在服务器使用 USE_FCNTL_SERIALIZED_ACCEPT 或 USE_FLOCK_SERIALIZED_ACCEPT 编译时,该指令把路径设为锁文件所用的路径。它必须贮存在本地磁盘上。


   「PID 文件」的值和PidFile 指令相对应。该指令设置服务器记录进程 ID(PID) 的文件。该文件应该只能够被根用户读取。多数情况下,应该使用默认值。


   「核心转储目录」的值和CoreDumpDirectory 指令相对应。Apache HTTP 服务器在转储核心前会试图转换到该目录中。默认值是 ServerRoot。


   「用户」的值和 User 指令相对应。它设置服务器回答请求所用的 userid。用户的设置决定服务器的访问权限。该用户所无法访问的文件,网站来宾也不能够访问。默认的 User 是 apache。
Group 的值与 Group 指令相对应。Group 指令和 User 指令很相似。它设置服务器回答请求所用的组群。默认组群也是 apache。


3、调整性能


    点击「调整性能」标签来配置使用的服务器子进程的最大数量,以及客户连接方面的 Apache HTTP 服务器选项。这些选项的默认设置在多数情况下是恰当的。改变这些设置会影响你的万维网服务器的整体性能。
 
    把「最多连接数量」设为服务器能够同时处理的客户请求的最多数量。服务器为每个连接创建一个 httpd 子进程。进程数量达到最大限度后,直到某子进程结束,Web服务器才能够接受新客户连接。如果不重新编译 Apache,该选项设置的值将不能超高 256。该选项与 MaxClients 指令相对应。


   「连接超时」定义的服务器在通信时等候传输和回应的秒数。特别是,「连接超时」定义服务器在接收 GET 请求时要等多久,在接收 POST 或 PUT 请求的 TCP 包时要等多久,以及在回应 TCP 包的 ACK 之间要等多久。「连接超时」被默认设为 300 秒,这在多数情况下都是适用的。该选项与 TimeOut 指令相对应。


    把「每次连接最多请求数量」设为每个持续连接所允许的最多请求次数。默认值为 100,这应该在多数情况下都适用。该选项与 MaxRequestsPerChild 指令相对应。


    如果选择了「允许每次连接可有无限制请求」选项,MaxKeepAliveRequests 指令的值就会是 0,这会允许无限制的请求次数。


    如果取消选择了「允许持久性连接」选项,KeepAlive 指令就会被设为 false。如果选择了它,KeepAlive 指令就会被设为 true,并且KeepAliveTimeout 指令的值会被设为「下次连接的超时时间」中选定的值。该指令设置的超时秒数是服务器在回答了一项请求之后,关闭连接之前,等待下一个请求时会等候的秒数。一旦接收到请求,服务器就会改用「连接超时」中的值。


    把「持续连接」设为一个较大的数值可能会导致服务器速度减慢,这要依据试图连接该服务器的用户数量而定。该选项的数值越大,等候前一个用户再次连接的服务器进程就越多。


4、保存设置


    如果不想保存所做的 Apache HTTP 服务器 配置,点击 HTTP 配置工具窗口右下角的「取消」按钮,会被提示确认。如果点击了「是」来确认该选择,设置就不会被保存。


    如果你想保存你所做的 Apache HTTP 服务器 配置,点击 HTTP 配置工具窗口右下角的「确定」按钮。一个对话框就会出现。如果你点击了「是」,你的设置就会被保存在 /etc/httpd/conf/httpd.conf 中。


    如果这是第一次使用 HTTP 配置工具,我们会看到一个警告配置文件已经被手工修改的对话框。如果 HTTP 配置工具检测到 httpd.conf 配置文件已被手工修改,它会把手工修改的文件保存为 /etc/httpd/conf/httpd.conf.bak。


    Apache的配置文件httpd.conf位于/etc/httpd/conf目录下如图5所示,其中的主机名和网页存放的目录位置等都有相应的配置如图6所示。
 


    红帽企业 Linux AS4中默认的 /etc/php.ini 配置文件已经把过去使用的默认值 "development" 改为使用 "production" 为默认值。这个软件包现在使用 "apache2handler" SAPI 与 Apache httpd 2.0 集成,而不是使用 "apache2filter" SAPI。如果从以前的发行版本升级,SetOutputFilter 会被从 /etc/httpd/conf.d/php.conf 文件中删除。


    Php.ini文件在/etc目录下(如图7),打开文件内容如图8所示,其中有engine=On项,表示PHP语言模块已经集成在Apache中即启动Apache服务,PHP也就启动了。
      Php.conf配置文件在/etc/httpd/conf.d目录下如图9所示,打开文件内容如图10所示,Apache启动时加载Php的libphp4.so模块,接着让Apache服务器能够识别PHP网页,需要用户定义它的扩展名,这样当Apache服务器加载以下扩展名的网页时,就会作为PHP网页来处理。
   

    首先编辑一个test.php文件,内容如图11所示,将该文件保存在/var/www/html目录中;然后启动Apache 服务如图12,在浏览器上输入http://192.168.1.68/test.php,调出页面如图13所示,至此在Apache服务器的构建PHP网站就算完成了。
 

Tags: ,
Sep 5
代码优化

  通常要求程序员要有好的编程习惯,尽量减少冗余代码的出现,目前也有好多工具能够完成这项功能,对于一般的html文件,用于减少冗余的减肥工具很多,而对于PHP程序来说这样的工具就不太多了,但是Zend Technologies的Zend Optimizer是一款非常好的代码优化工具,可以免费从Zend Technologies的网站上获得。Zend Optimizer的使用方法也非常简单,只要将下载的ZendOptimizer-1[1].0.0-PHP_4.0.4- Linux_glibc21-i386.tar.gz文件解压缩,将其中的ZendOptimizer.so文件拷贝到/usr/local/Zend/lib目录下,然后修改php.ini文件,在最后添加以下几行:


  显示说明Zend Optimizer工作正常

  zend_optimizer.optimization_level=15

  zend_extension="/usr/local/ Zend/lib/ ZendOptimizer.so"

  设置完成后重启Apache服务器,编写一段PHP程序:

  <?

  Phpinfo();

  ?>

  一般来说Zend Optimizer能将系统的效率提升30%~40%,这是用户最关心的。

  压缩页面

  HTTP1.1协议支持页面压缩传送,也就是说服务器把一个页面压缩传送到客户端,然后在客户端将页面解压缩再显示给客户。在服务器端有两种传输方式,一种是页面事先已经压缩好了,传送时只要将压缩页面传送到客户端就行,这种适用于静态网页多的情况,但是对于大多数站点,动态页面比较多,这种方法不太适合,因为很多传到客户端的页面其实是没有的,是服务器接到客户端用户请求动态产生的,所以就要求每生成一个动态页面都要在传到客户端以前先打包压缩。从PHP的4.0.4版以后,可以在php.ini文件中增加一行配置“output_handler = ob_gzhandler”,这样每个动态生成的页面在传送到客户端之前都会进行压缩,但是根据PHP官方站点的说明,这个参数不能与“zlib.output_compression = on”参数同时使用,因为容易引起PHP工作不正常,另外它只能压缩PHP程序的动态生成的页面,对于大量的静态页面尤其是图像文件就不行了。但是mod_gzip模块为Apahe提供了将静态页面在传给客户端以前先压缩的功能,它的压缩比最大能到10,一般情况下可以到 3,也就是说网站的传输速率一下提高了三倍多。要想使用mod_gzip功能首先要下载mod_gzip.c或mod_gzip.so文件,如果下载的是.c文件还要用Apache带的工具将它转化为.so文件才能使用,方法是运行下面的命令:

   -i -a mod_gzio.c

  cp mod_foo.so/path/to/apache/libexec/mod_gzip.so

  chmod 755/path/to/apache/libexec/mod_foo.so

  系统会在/path/to/apache/ etc/httpd.conf中自动激活该模块,如果下载的是.so文件则要将该文件拷贝到相应的目录下,然后在httpd.conf文件中添加LoadModule gzip_module libexec/ mod_gzip.so,使模块生效。需要注意两点,第一,要想使用.so文件,Apache必须包含了mod_so模块(可以通过httpd -l命令来查询该模块是否生效);第二,如果下载的是.so文件,它是与Apache的版本有关的,要注意下载的版本与自己使用的Apache是否一致,如果是.c文件就没有这个问题。模块生效后还要对Apache进行相应的配置,需要在httpd.conf文件中加入一些参数:

  mod_gzip_on Yes(模块是否生效)

  mod_gzip_minimum_file_size 1002(最小压缩文件大小)

  mod_gzip_maximum_file_size 0(最大压缩文件大小,0表示没有限制)

  mod_gzip_maximum_inmem_size 60000(最大可占用内存)

  mod_gzip_item_include file "..gif102SINA>DOUBLE_QUOTATION (以gif结尾的文件要压缩传送)

  mod_gzip_item_include file ".txt102SINA>DOUBLE_QUOTATION

  mod_gzip_item_include file ".html102SINA>DOUBLE_QUOTATION

  mod_gzip_item_exclude file ".css102SINA>DOUBLE_QUOTATION

  使用了压缩模块后,当用户访问站点时会在日志文件中记录相应的信息,比如“mod_gzip :OK In:file_length Out:gzipfile_length”,表示该页面传输中使用了gzip功能,输入文件、输出文件大小都有说明。

  文件缓存

  这种方法通常是针对PHP、PERL等CGI程序而言的,因为这些程序有一个共同的特征就是接到用户的请求后不是马上将结果返回给用户,而是经过解释器解释执行后将执行结果返回给客户,这期间通常都要涉及到数据库的访问。这样就会出现一个问题,当两个用户访问同一个页面时,系统将分别对两个请求进行操作,但事实上这两个操作可能是一模一样的,这样无形当中增加了系统的负担。所以通常的解决办法是在系统内存中开辟出一段空间,当用户第一次访问页面后将执行结果存放在该内存中,当有用户再一次访问该页面时,系统就将页面直接从内存中调出而不需要重新解释执行,这段内存空间就叫缓存。目前流行的缓存管理程序有两个,一个是FastCGI,另一个是Zend Technologies公司的Zend Cache。FastCGI主要是针对Perl、C、C++等CGI脚本程序设计的,可以有效地利用内存作缓存,来自客户端的请求都会被传送到FastCGI应用服务程序,FastCGI处理用户的请求后将结果返回给用户。一般的CGI程序这时将结束进程自动退出,但是FastCGI进程继续保持,这时它在接到新的用户请求后不必建立新的进程,可以立即处理用户请求,也就是说CGI程序建立进程顺序执行然后退出,而FastCGI程序顺序执行并永远循环。


  Zend Cache的管理界面

  要想使用FastCGI首先要把FastCGI编译到Apache中,方法非常简单,这里就不说明了,还要在http.conf文件里作设置:

  AddHandler fastcgi-script .fcg .fcgi .fpl

  Options ExecCGI Indexes Includes

  这样FastCGI就可以正常工作了,下面是FastCGI程序员手册中的一段例子程序:

  #!fcgi-savvy-perl

  use FCGI; # 初始化

  # Initialization code

   = 0;

  # Response loop

  while (FCGI::accept >= 0) {

   #FastCGI建立循环体

  print "Content-type:text/html "; #程序执行

  print "<head><title>FastCGI Demo Page (perl)</title></head> ";

  print "<h1>FastCGI Demo Page (perl)</h1> ";

  print "This is coming from a FastCGI server. <BR> ";

  print "Running on <EM>publish152.internal.sina.com.cn</EM> to <EM></EM><BR> ";

  ++;

  print "This is connection number ";

  }

  FastCGI对Perl等CGI程序的功能非常强大,但是它对PHP程序确是无能为力的,而且需要在编程时增加内容,也就是说它需要一些人为的因素才能发挥作用。相比之下Zend Technologies公司的Zend Cache针对PHP的缓存功能是很强大的,只要安装了该软件,程序员就像编写其他PHP程序一样,不需要增加代码,就可以实现缓存功能,有利于系统升级,十分方便。它是一个付费软件。它有缓存功能并能通过图形界面对其进行管理,其中:Cache Control页面,可以配置Zend Cache,显示其当前状态,还能启动和停止Zend Cache功能;Scripts页面,Zend Cache的内容,包括每个文件的状态,还可以根据点击次数和缓存占有大小选择文件;Benchmark页面,可以测试Zend Cache的缓存效果,并以图形方式给出显示,它测试的是每秒钟完成PHP请求的次数。

  它的安装、验证方法与Zend Optimizer基本相同,这里就不详细说明了,感兴趣的读者可以参考用户手册,它的强大功能和便利的管理方法确实让人心动。

  以上是网站提速常见的几种方法,对于不同的网站需要采用不同的手段,所对应的提速方案也不尽相同,但总体上不外乎是以上提到的三招,读者可以根据自己的实际情况具体问题具体分析。

  注意:考虑到客户端软件的复杂性,因为有些客户端软件可能不支持某些特性,比如,mod_gzip对页面进行压缩,但是如果客户端使用的是Netscape就不行,因为它不能把接收到的压缩页面解压缩,导致页面不能正常显示。
Tags:
分页: 5/5 第一页 上页 1 2 3 4 5 最后页 [ 显示模式: 摘要 | 列表 ]