对网络地址的处理方法及服务器与计算机可读储存介质的制作方法_2

文档序号:8530454阅读:来源:国知局
网络地址中是否具有一辨识符号(例如本实施例中的“?”),以判断所述网络地址是否具有一使用者账号。在本例中,由于网络地址http://DiskStat1n/?ken/Sone.php包含了辨识符号“?”,因此,家目录网页服务模块mocLuserdir会判断此网络地址具有一使用者账号,并在家目录网页服务模块mod_userdir下设定开启suPHP模块310以及设定对应的处理程序。在本实施例中,家目录网页服务模块mod_userdir可以具有两个设定参数:suPHP_Engine与suPHP_AddHandler,其中suPHP_Engine是用来设定开启或关闭suPHP模块310,而suPHP_AddHandler是用来设定指定的PHP模块的处理程序,例如但不限于PHP-CGI模块。当此网络地址具有一使用者账号时,上述的两个设定参数suPHP_Engine与suPHP_AddHandler均会开启。应知道的是,上述通过辨识符号来判断网络地址中是否具有使用者账号的方式是为了说明的目的而以,并非对本发明的限制。
[0032]除了判断网络地址是否具有用户账号之外,家目录网页服务模块mocLuserdir亦会将所述网络地址转换为一档案路径。举上述例子来说,假设网络地址为http://DiskStat1n/?ken/Sone.php,则家目录网页服务模块mod_userdir会将此网络地址转换为档案路径:/var/services/homes/ken/www/Sone.php。详细来说,由于此网络地址中包含有使用者账号” ken",则家目录网页服务模块mocLuserdir可依据此用户账号与一基础路径,将此网络地址转换为上述的档案路径。举例来说,若此网络地址中具有使用者账号,则此基础路径可为一家目录路径:/var/services/homes/*/www/,但不以此为限。当家目录网页服务模块mocLuserdir依据此基础路径与用户账号,将网络地址转换为上述的档案路径之后,会再将此档案路径传送到快速共通网关接口模块mocLfastcgi后转送到suPHP模块310。suPHP模块310在收到档案路径之后会尝试读取实体档案路径(例如:/V0lumel/homes/ken/www/Sone.php),并取得档案拥有者的信息后以拥有者身分(user identify,UID)与拥有群组身分(group identify, GID)来执行Sone.php。于本实施例的一变化例中,家目录网页服务模块mod_userdir可通过代理快速共通网关接口模块mod_proxy_fcgi将此档案路径转送到suPHP模块310。
[0033]在一实施例中,当suPHP模块310收到上述的档案路径时,suPHP模块310可通过一取得实体路径模块(例如但不限于getRealPath模块),以根据此档案路径转换出一实体档案路径。当suPHP模块310取得对应于上述档案路径的实体档案路径(例如上述的/volumel/homes/ken/www/Sone.php)后,suPHP模块310可通过一路径匹配模块(例如但不限于PathMatcher模块)来判断此实体档案路径是否为允许执行PHP的档案路径,其中上述取得实体路径模块以及路径匹配模块可为包含于suPHP模块310中的程序模块。在本实施例中,所述路径匹配模块可通过判断上述的实体档案路径中是否具有符合的特征参数,以判断所述实体档案路径是否为可允许执行PHP的档案路径。详细来说,若实体路径为上述的/volumel/homes/ken/www/Sone.php,则上述的特征参数可设定为r/volume\d+/homes/, +/www/),使得路径匹配模块可判断此实体档案路径是否符合所述特征参数的模式,以判断此实体档案路径是否为合法的档案路径。因此,本实施例的服务器100无需在配置文件内预先提供允许执行PHP的详细档案路径列表,且服务器100可允许用户家目录放在任意可用的磁盘区(volume)中。如此一来在搬移家目录所在的磁盘区时,或是加入新的目录服务时便不需要重新修改suPHP的配置文件,且也不需要重新启动相关软件便能让suPHP继续运作。
[0034]上述例子所描述的是网络地址具有使用者账号的情形,在本发明的另外一个例子中,假设网络地址为http://DiskStat1n/SNSD.php,则由于网络地址http://DiskStat1n/SNSD.php并未包含辨识符号因此,家目录网页服务模块mod_userdir会判断此网络地址不具有使用者账号,且不会在家目录网页服务模块mocLuserdir下开启suPHP模块310以及对应的处理程序(在本实施例中,两个设定参数suPHP_Engine与suPHP_AddHandler的默认值是“关闭”)。此外,家目录网页服务模块mod_userdir会将所述网络地址转换为一档案路径:/var/services/web/SNSD.php。详细来说,由于此网络地址中不具有用户账号,则家目录网页服务模块mocLuserdir可依据基础路径,将此网络地址转换为上述的档案路径。举例而言,若此网络地址中不具有使用者账号,则此基础路径可为一系统网页目录路径:/var/services/web/,但不以此为限。当家目录网页服务模块mod_userdir依据此基础路径将网络地址转换为上述的档案路径之后,会再将此档案路径传送到快速共通网关接口模块mod_fastcgi后转送到PHP-FPM模块320。PHP-FPM模块320在收到档案路径之后随即以一预设执行身分执行SNSD.php,亦即PHP-FPM模块320不会依据不同使用者账号,以对应于所述使用者账号的拥有者身分与拥有群组身分来执行SNSD.php。于本实施例的一变化例中,家目录网页服务模块mod_userdir可通过代理快速共通网关接口模块mod_proxy_fcgi将此档案路径转送到PHP-FPM模块320。
[0035]在上述的实施例中,由于suPHP模块310与PHP-FPM模块320均是在共通网关接口(Common Gateway Interface, CGI)下运作,因此,上述实施例可以在单一服务器内通过修改或新增家目录网页服务模块mocLuserdir中的配置文件,并通过快速共通网关接口模块mod_fastcgi来选择性地转送档案路径到suPHP模块310或是PHP-FPM模块320,达到在单一服务器内执行两种不同PHP模式的目的。
[0036]在本发明的一变化例中,图3所示的PHP-FPM模块320也可以被替换为其他不需要安全性检查的PHP模块,例如PHP-CGI模块,这些设计上的变化均应属于本发明的范围。
[0037]于本发明的一变化例中,服务器100包含有一处理器110以及一非瞬时计算机可读储存介质(图未示),其中所述非瞬时计算机可读储存介质储存有程序代码122。当处理器110执行程序代码122时,程序代码122指示处理器110进行上述各实施例中所述的方法,其相同的部分便不再坠述,且相关设计上的变化均应属于本发明的范围。
[0038]需注意的是,上述有关于网络地址、档案路径以及配置文件的例子仅为范例说明,而并非是作为本发明的限制,只要在单一服务器内可以依据网络地址是否具有一使用者账号来选择性的切换两种不同的PHP执行模式,相关设计上的变化均应属于本发明的范围。
[0039]上述实施例具有以下优点:(I)由于置于家目录网页服务(/var/services/homes/*/www)与系统网页目录(/var/services/web)下的程序代码是依照不同的文件系统访问权限与角色定位来给予对应执行权限,因此可以增加安全性;(2)相较
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1