很多朋友在操作PHP的过程中经常碰到权限问题。我在这里就权限问题根据我以往的操作经验 和大家谈论一下。 权限错误一般是出现在对数据的读取和存储的时候发生的。这么一说 首先我们谈论一下最常见的系统权限的限制 PHP应用最广泛的系统LINUX/WIN32 我们先说LINUX下的常见错误。 当用户开通了网站后访问自己的站点 http://mysite/时却发现无法访问,提示信息却是禁止访问。 Q:为什么我的网站配置完成后却无法访问? A:首先登陆到你的机器(或让你的管理员登陆到机器)检查你的WEB目录是否对待group/other 组用户有读的权限。 再次,检查你的WEB服务器的目录设置是否为允许浏览。修改相应的数据后这个问题多半会解决。 如果上面的操作步骤仍然无法解决你的问题,那请继续向下看。 如果你的网站中的HTML文件已经可以正常访问,而有些PHP文件却在访问的时候存在权限问题的话,首先很高兴的 告诉你,你的WEB服务器是正常的,他的权限是正常的。而你仅仅是在你的PHP文件中出现了问题。比如说你的PHP文件中 使用了类似如下的代码 <?php include("pathtofile/file.inc.php");//建议你在调试的时候不要加上@来抑制错误的显示 ?> <?php $fp=fopen("file.xxx","w");//可以是r,w,r+,a,a+... if($fp){ fputs($fp,"hi,PHP世界是美好的"); fclose($fp) } ?> <?php mkdir("dirname"); ?> <?php rename("source","object"); ?> <?php unlink("file"); ?>..... 当然了,上面的代码你很容易看的明白,其实我想说的例子就是你可能对文件(目录是个特殊的文件--linux下对目录的解释)有操作 比如说,建立,删除,修改,这时候出现权限问题多半处于文件自身权限问题。在这里我们应该来了解一下另外个知识, 系统权限/FTP权限 什么是系统权限? 什么是FTP权限? 当然了,这里仅仅是按我个人的理解去进行含义说明,并不是书本上的文字定义,你可以通过网上寻的更多的相关定义,不过你只需要 理解他们的意义就行了。 系统权限(注:这里所说的系统是操作系统):是对系统用户的权限约束系统。 FTP全县:是对FTP用户的权限约束系统。 OK,到这里,我大致说了上面这些废话了,如果你的FTP用户就是你系统中的用户,你只需要对这些目录通过系统内权限分配就已经可 以解决问题了。如果你的FTP系统使用的是自身的用户系统,那请继续向下看 我们知道,系统将一个区域分配给了FTP服务,FTP服务对这个区域有一定的权限操作,FTP服务又增加了自己的用户管理,因此在系统 权限的约束下,FTP服务进行了第二次权限分配。同样采用了LINUX下的权限表示法。到这里你应该有这样的问题了 Q:为什么我的系统权限是正常的但我仍然被告之权限问题呢? A:在系统权限的约束下您的FTP可能有自己的用户管理体系,因此你现在应该使用FTP客户端登陆到你的FTP主机,对文件进行权限操作。 具体的操作步骤很多ISP的帮助页内都有说明,这里就不多说了。 看了上面的内容后你的文件权限问题应该有90%都可以解决了吧。如果你属于那10%的欢迎和我讨论~ 另:对于WIN32系统下的用户,如果你的分区是NTFS格式的话可以参照上面的,如果你是非NTFS的可以参照FTP权限 数据的存储不光是直接对文件的操作,还包括了数据库,数据流 数据库: 这里我们就以PHP结合最多的MYSQL进行举例吧,MYSQL拥有自己的权限系统,因此一个好的DBA总是会合理的分配权限给数据库用户, 数据库权限问题多半集中在以下几点: 1、连接主机被拒 2、连接账户匹配错误 3、连接账户权限不足 4、连接账户操作了不具备权限的数据库(此问题同3其实就是账户全县不足) 数据流: PHP的数据流多半就是对网络操作的一些函数了,如果这些函数出现错误多半是对方服务器的设置导致无法获取数据导致。这个时候 您应考虑的是从你的程序出发修改代码(除非你可以操作你的目标主机) 作者:sports98 <MSN:[email protected]> (就算对我打这些字的鼓励吧,保留这些) 好长时间没写东西了,自己是不是在落后...哎,看到人家那些编写PHP扩展库的老是觉得自己落后了,写些东西留大家备查。 |