php文件系统
‘壹’ php文件是做什么用的
PHP,即“PHP: Hypertext Preprocessor”,是一种广泛用于 Open Source(开放源代码)的尤其适合 Web 开发并可以嵌入 HTML 的多用途脚本语言。它的语法接近 C,Java 和 Perl,而且容易学习。该语言的主要目标是让 Web 开发人员快速的书写动态生成的网页.
PHP 代码是运行在服务端的.
它的使用需要你的服务器安装php服务.
PHP 能做什么?
PHP 能做任何事。PHP 主要是用于服务端的脚本程序,因此您可以用 PHP 来完成任何其它的 CGI 程序能够完成的工作,例如收集表单数据,生成动态网页,或者发送/接收 Cookies。但 PHP 的功能远不局限于此。
PHP 脚本主要用于以下三个领域。
服务端脚本。这是 PHP 最传统,也是最主要的目标领域。开展这项工作您需要具备以下三点:PHP 解析器(CGI 或者服务器模块)、WEB 服务器和 WEB 浏览器。您需要在运行 WEB 服务器时,安装并配置 PHP,然后,可以用 WEB 浏览器来访问 PHP 程序的输出,即浏览服务端的 PHP 页面。请查阅“安装”一章以获取更多信息。
命令行脚本。您可以编写一段 PHP 脚本,并且不需要任何服务器或者浏览器来运行它。通过这种方式,您仅仅只需要 PHP 解析器来执行。这种用法对于依赖 cron(Unix 或者 Linux 环境)或者 Task Scheler(Windows 环境)的日常运行的脚本来说是理想的选择。这些脚本也可以用来处理简单的文本。请参阅“PHP 的命令行模式”以获取更多信息。
编写客户端的 GUI 应用程序。对于基于窗口式的应用程序来说,PHP 或许不是一种最好的语言,但是如果您非常精通 PHP,并且希望在您的客户端应用程序中使用 PHP 的一些高级特性,您可以利用 PHP-GTK 来编写这些程序。用这种方法,您还可以编写跨平台的应用程序。PHP-GTK 是 PHP 的一个扩展,在通常发布的 PHP 包中并不包含它。如果您对 PHP-GTK 感兴趣,请访问其网站以获取更多信息。
PHP 能够用在所有的主流操作系统上,包括 Linux、Unix 的各种变种(包括 HP-UX、Solaris 和 OpenBSD)、Microsoft Windows、Mac OS X、RISC OS 等。今天,PHP已经支持了大多数的 WEB 服务器,包括 Apache、Microsoft Internet Information Server(IIS)、Personal Web Server(PWS)、Netscape 以及 iPlant server、Oreilly Website Pro Server、Caudium、Xitami、OmniHTTPd 等。对于大多数的服务器,PHP 提供了一个模块;还有一些 PHP 支持 CGI 标准,使得 PHP 能够作为 CGI 处理器来工作。
综上所述,使用 PHP,您可以自由地选择操作系统和 WEB 服务器。同时,您还可以在开发时选择使用面对过程和面对对象,或者两者混和的方式来开发。尽管 PHP 目前的版本还没有支持 OOP 所有的标准,但很多代码仓库和大型的应用程序(包括 PEAR 库)仅使用 OOP 代码来开发。
使用 PHP,您并不局限于输出 HTML。PHP 还能被用来动态输出图像、PDF 文件甚至 Flash 动画(使用 libswf 和 Ming)。您还能够非常简便的输出文本,例如 XHTML 以及任何其它形式的 XML 文件。PHP 能够自动生成这些文件,在服务端开辟出一块动态内容的缓存,可以直接把它们打印出来,或者将它们存储到文件系统中。
PHP 最强大最显着的特性之一,是它支持很大范围的数据库。您会发现利用 PHP 编写数据库支持的网页简单得难以置信。目前,PHP 支持如下数据库:
Adabas D Ingres Oracle (OCI7 and OCI8)
dBase InterBase Ovrimos
Empress FrontBase Postgresql
FilePro (read-only) mSQL Solid
Hyperwave Direct MS-SQL Sybase
IBM DB2 MySQL Velocis
Informix ODBC Unix dbm
我们同时还有一个 DBX 扩展库使得您可以自由的使用该扩展库支持的任何数据库。另外,PHP 还支持 ODBC,即 Open Database Connection Standard(开放数据库连接标准),因此您可以连接任何其它支持该世界标准的数据库。
PHP 还支持利用诸如 LDAP、IMAP、SNMP、NNTP、POP3、HTTP、COM(Windows 环境)等不计其数的协议的服务。您还可以开放原始网络端口,使得任何其它的协议能够协同工作。PHP 支持和所有 WEB 开发语言之间的 WDDX 复杂数据交换。关于相互连接,PHP 已经支持了对 Java 对象的即时连接,并且可以将他们自由的用作 PHP 对象。您甚至可以用我们的 CORBA 扩展库来访问远程对象。
PHP 具有极其有效的文本处理特性,支持从 POSIX 扩展或者 Perl 正则表达式到 XML 文档解析。为了解析和访问 XML 文档,我们支持了 SAX 和 DOM 标准。您可以使用我们的 XSLT 扩展库来转换 XML 文档。
如果您将 PHP 用于电子商务领域,您会发现其 Cybercash payment、CyberMUT、VeriSign Payflow Pro 以及 CCVS 函数对于您的在线交易程序来所是非常有用的。
参考资料:版权 &; 1997, 1998, 1999, 2000, 2001, 2002, 2003 PHP 文档小组
‘贰’ php执行file_put_contents后生成的文件如何自动下载到本地
file_put_contents只能生成文件在服务器上,无法读写客户端的文件系统,这是WEB的协议决定了的。
要想把file_put_contents生成在服务器上的文件发给浏览器用户,只有用下载的办法:文件生成到WEB可以访问的路径,然后使用<a href>建立链接让用户下载,示例代码:
file_put_contents('a.txt', $str);
echo '<a href=a.txt>下载文件</a>';
‘叁’ php以fastCGI的方式运行时文件系统权限问题及解决方法
在IIS7.0上以FastCGI方式配置好PHP运行环境,测试可以正常运行PHP程序后,将PHP程序部署上去,导入程序原来的数据和配置信息。很快就有问题出来啦下面我们就详细记录下。
今天准备将一个php
demo放在IIS下运行,网站在IIS下的配置是这样的:
应用程序池是集成模式下的.net
framework
2.0(2.0或4.0没什么关系,因为php以fastCGI的方式在跑),
应用程序池标识配置为IIS内置的NETWORKSERVICE,
使用的认证方式为匿名身份验证。
打开本地的网站,访问php页面,
出现了500错误。
好吧,是权限问题,最简单的解决办法是把C:的权限设成Everyone,
并允许完全控制:
重新访问php页面,成功了:
上面的方法是够简单,但也太不安全了,平时本地搭个demo这样做没问题,真正上线的时候,这样做迟早出问题的。
于是重新设置,把该目录下的只读权限赋给NETWRORKSERVICE帐号再试一下
不过问题还是没有解决,访问的时候,出现了401错误
错误信息中包括显示登录用户为匿名,检查了网站下的身份验证(再点击
匿名身份验证->编辑),原来网站默认情况下,在登录方法为匿名时,使用的默认登录用户为IUSR(就是我们看到的匿名登录用户了)
那么解决办法就是:
1.
将IUSR设置为C:的读权限,类似之前对NETWORKSERVICE的设置。
2.
或选择使用应用程序池标识即可。
经试验,方法1与2都成功。
Note:NETWORKSERVICE在IIS7中隶属于iis_iusers用户组,之前对NETWORKSERVICE的设置也可以改为对iis_iusers的设置,同样也可以解决问题,只是权限被进一步放宽了而已。
以上所述就是本文的全部内容了,希望大家能够喜欢。
‘肆’ php文件系统问题!
代码作者还不错。代码有谱。
$cpath代表 path文件的复制路径
$ddir代表destination directory 目标目录
$filename文件名
复制路径=目标目录."/".文件名 , 就形成了文件即将被复制到目的地的全路径。
每次循环对每个文件形成一个全路径,才能复制到目的地。
‘伍’ 如何配置php服务器
配置php服务器对于程序员很重要,但很多人都不会.,那么如何配置php服务器呢?下面是我收集整理的如何配置php服务器,希望对大家有帮助~~
配置php服务器的方法
工具/原料
windows server 2008 和 windows server 2003 服务器操作系统
fastcgi、php、mysql安装包
IIS6安装配置PHP环境
11. 安装IIS
IIS是windows平台下比较成熟的web服务,安装方法也非常简单。
打开“开始”菜单,点击“管理您的服务器”(如图所示),点击“添加或删除角色”(如图所示)。
3Windows server 2008服务器防火墙配置
1) 在控制面板中打开网络和共享中心
2) 点击“windows防火墙”弹出防火墙配置窗口,在此窗口中要确认防火墙服务已经开启
3) 单击“允许程序或功能通过Windows防火墙”弹出网络服务端口配置窗口,在此窗口中可以选择允许打开端口并通信的网络服务,单击“允许运行另一程序”来自定义开启某一网络服务或端口
4用户管理
系统中用户的数量能越少越好,并且每个用户都被用于特定的功能,如可以新建一个专门用于对网站进行匿名授权的账户(如条件允许,可以为每个网站新建一个独立的账户进行分别授权,这些能够隔离开各网站的授权,提高各网站的安全性,不至于一个网站被入侵后能够有权限访问到其它网站的文件目录)。另外最重要的一点是要为每个账户设置一个独立且复杂的密码,防止账户密码被猜解和穷举。
5文件系统权限管理
l C盘只给administrators 和system权限,其他的权限不给,其他的盘也可以这样设置,这里给的system权限也不一定需要给,只是由于某些第三方应用程序是以服务形式启动的,需要加上这个用户,否则造成启动不了。
l Windows目录要加上给users的默认权限,否则ASP和ASPX等应用程序就无法运行。其实没有必要单独设置Instsrv和temp等目录权限。
l 另外在c:/Documents and Settings/这里相当重要,后面的目录里的权限根本不会继承从前的设置,如果仅仅只是设置了C盘给administrators权限,而在All Users/Application Data目录下会 出现everyone用户有完全控制权限,这样入侵这可以跳转到这个目录,写入脚本或只文件,再结合其他漏洞来提升权限;
譬如利用serv-u的本地溢出提升权限,或系统遗漏有补丁,数据库的弱点,甚至社会工程学等等N多方法,在用做web/ftp服务器的系统里,建议是将这些目录都设置的锁死。其他每个盘的目录都按照这样设置,每个盘都只给adinistrators权限。
另外,还将:
net.exe
cmd.exe
tftp.exe
netstat.exe
regedit.exe
at.exe
attrib.exe
cacls.exe
format.exe
这些文件都设置只允许administrators访问。
l 网站的目录最好独立到一个磁盘中,新建一个为网站匿名访问而独立授权的账户,让此账户可以访问和编辑此目录,移除其它不必要的账户对此目录的访问权限,能有效防止网站被入侵后从而涉及到整个系统被控制
END
日常维护建议
1定期运行安全软件进行快速扫描
定期运行一下安全软件,可以看到安全软件的引擎或病毒库是否已经更新到了最新版本,如果没有可以即时查找原因,看是否是安全软件未运行、升级端口被禁用或其它原因,虽然安全软件可以在后台即时扫描各种文件操作,以防止病毒入侵,但有些恶意软件、流氓软件或插件则不是实时防护的,虽然这些软件不会造成服务器宕机,但也会影响服务器性能。
2定期检查防火墙端口配置
随着服务器上的网络服务越来越多,需要打开的网络端口也越来越多,但有些端口是不需要开放的,例如你安装了一个数据库软件(mysql、oracle等),这些数据库服务很可能只需要在你服务器的内部访问,就完全没有必要让其通过防火墙,这样能够提高服务器的安全,服务器对外提供的端口越少越好;
虽然在安装网络服务的过程中,防火墙会提示你有网络端口正在打开,是否允许通过防火墙,但有些管理员没有细心看提示,直接就同意了,造成了大量没有必要打开的网络端口被打开了,特别是一些木马或恶意软件会混水摸鱼,伪装提示信息来诱骗管理员打开网络端口,造成大量的安全隐患。进入防火墙配置界面,选择相应的端口或网络服务,点击“详细信息”则可以看到此项应用的详细信息,根据这些信息来判断其是否应该开启这个端口。
3任务管理器中观察有无可疑进程,了解系统资源使用情况
任务管理器可以简单并快速的了解服务系统资源的使用情况,并即时查看系统运行的进程和他们占用的系统资源,根据服务器上已开启的各种应用的服务来判断哪些进程是非法的,哪些进程占用的系统资源过多。了解到这些信息后就可以即时的对服务器进行调整,特别是占用资源过多的进程进行分析,看是否有什么异常并即时进行调整。
l 观察系统进程,并自定义进程属性
查看网络使用情况
查看系统资源使用情况
检查IIS,了解网站安装情况
随时了解服务器上网站的安装状况,并做以下检查:
1、看各个网站定义的主机头是否异常
2、 绑定的域名是否完整
3、 主目录设置是正确
4、用户权限设置是否合理
5、 查看IIS的应用程序池设置是否合理,每个池下面托管的网站是否过多,是否需要设置新的应用池,是否有多余的应用池可以删除。
查看系统日志,仔细检查错误、警告日志发生的原因,并急时修复相应的问题。
检查系统用户,查看有无多余,可疑用户账户,查看每个账户所属的用户组,特别是administrators组下面的用户。服务器被入侵时会出现一些欺骗性的账户并被加入到administrators组中,特别留心新建的多余账户,弄清这些账户的用途,如果发现是入侵者建立的账户,要即时查找账户是被创建的原因,并修复相应的漏洞。
检查文件系统,确保磁盘被合理分区,各个分区应该有各自的功能,如系统、数据库、网站、备份等。各个分区的用户授权是不相同的,如系统、备份等不需要网站的专门授权账户访问,数据库分区需要对数据库账户进行单独的授权等。既然规划好了文件分区和功能,并进行了相应的授权,就要防止文件被乱放,以免造成安全隐患。
还要经常检查各种新建的文件夹和文件(特别是来历不明,名称畸形的隐藏文件夹和文件)这些都有可能是入侵者留下的入侵痕迹。
清除垃圾文件,随时系统运行时间的增加,会产生很多的临时文件和日志文件,占用宝贵的磁盘资源,如果磁盘的可用空间过小(特别是系统盘)还会影响服务器性能。
1、临时文件(安装程序、系统升级、应用程序等产生的)产生的,主要在系统盘,可以看哪些文件夹的体积异常大,可分析其内部文件,确认是临时文件后将其删除
2、 日志文件,主要是IIS产生的,这些日志文件对于查看网站运行状态、访问历史很有用,但日志有时效性,如果超过其三个月就没有什么用处了,但它会占用大量的磁盘空间,所以需要定期将其删除。
定期检查磁盘状态并进行碎片整理,随着系统运行时间的增长,特别是大量的IO操作后,磁盘上会产生大量的文件碎片,这些碎片过多则会严重影响服务器性能,所以定期(建议一个月)进行磁盘碎片检查,如果系统提醒需要进行碎片整理,则进行整理。
及时升级操作系统补丁,操作系统有各种大量的补丁,特别是一些重要的安全补丁需要即时升级,这样会有效防止黑客和病毒入侵。
及时备份重要的文件、应用、数据库。备份分为本地备份和异地备份,有条件的可以进行异地备份,备份是为了以防万一,当数据丢失或应用损坏时,备份就是救命稻草,因此合理的备份计划是非常有必要的。
‘陆’ 下载的PHP文件如何运行
很多网站为了保密文件在服务器上的真实地址,都采用一个专门的页面来处理下载链接,这个页面就是你下载下来的那个php文件,有些迅雷可以解析的,但是有时候迅雷直接把这个php文件下载下来了,这时候,你只需在下载链接上点击右键,选“在新窗口中打开链接”或者“目标另存为”等就可以下载了。
换句话就是不要用迅雷来下种子,用windows自带的将种子文件下载下来,再用迅雷打开种子下。
‘柒’ PHP写入文件权限问题
首先,fopen不是“写入文件”。
设777是文件系统的用户权限。php打开文件,除了受文件系统的限制,还受apache和php本身安全性限制。例如,apache限定了访问权限只限于/www,而你要操作/log的话,是不可能的,尽管/log里文件系统设了777。还有,在手册里fopen里有说“如果激活了
安全模式
或者
open_basedir
则会应用进一步的限制。”希望对你有帮助。
‘捌’ PHP写入文件权限问题
首先,fopen不是“写入文件”。 设777是文件系统的用户权限。php打开文件,除了受文件系统的限制,还受apache和php本身安全性限制。例如,apache限定了访问权限只限于/www,而你要操作/log的话,是不可能的,尽管/log里文件系统设了777。还有,在手册里fopen里有说“如果激活了 安全模式 或者 open_basedir 则会应用进一步的限制。”希望对你有帮助。