PHP教程之PHP.INI设置装备摆设文件遨游(2)
如果不会怎么办,我的视频教程里有个最简单的留言板 最开始离不开模仿, 文章第一局部已率领你领略了php.ini文件的布局,而且申明了若何修正PHP查找途径、过失处置,和解析器的相干选项。第二局部将深切设置装备摆设文件,内容包含若何激活PHP扩大选项、针对PHP剧本设置资本限制,和经由过程PHP剧本静态改动设置装备摆设变量。激活扩大选项
PHP可使用良多分歧的扩大选项。在UNIX体系中,扩大选项需求在编译时创立;而关于Windows,二进制DLL文件将随PHP宣布而将本人包含出来。变量extension_dir包含了PHP应该检查相干扩大选项的目次名。
extension_dir = "C:\Program Files\Internet Tools\Apache\bin\php4\extensions"
Windows下的PHP包含了20种分歧的扩大选项,而且全体都列在了php.ini文件中(经由过程正文)。要激活某个特定的扩大选项只需求将响应行首的分号去失落偏重启办事器就能够了。假如要禁用某个扩大选项(好比在需求提拔体系功能的情形下),只需求外行首从头添加分号。
假如扩大选项没有列在php.ini文件中,可使用变量extension,然后将响应DLL文件名传递给此变量。
extension=php_domxml.dll
extension=php_dbase.dll
设置extension-specific变量
变量extension-specific被寄存在设置装备摆设文件中一个独自的区域。好比,一切同MySQL扩大功效相干的变量都应该存储在php.ini中的区域。
假如需求利用PHP的mail()函数,则需求设置以下三个变量。当经由过程PHP mail()函数发送电子邮件信息时需求利用SMTP和变量sendmail_from(Windows体系)或变量sendmail_path(UNIX体系)。关于Windows,这些变量设置了所用到的SMTP办事器和显示在电子邮件信息中的“From:”地址;而关于UNIX,变量sendmail_path则对邮件传输设置了MTA(邮件传输代办署理,mail transfer agent)的途径。
SMTP = myserver.localnet.com
sendmail_from = me@localhost.com
sendmail_path = /usr/sbin/sendmail
变量java.class.path、java.home、java.library和java.library.path全体用来设置查找Java类和库的途径。这些值将被Java扩大所利用,所以假如但愿PHP能准确的同Java法式停止集成,则必需确保这些变量被准确的设置。
java.class.path = .\php_java.jar
java.home = c:\jdk
java.library = c:\jdk\jre\bin\hotspot\jvm.dll
java.library.path= .\
变量session.save_path指定了保留会话信息所需的一时目次。凡是而言,此目次默许为/tmp,但因为在Windows体系中此默许目次其实不存在,所以你必需将其从头设置为准确的Windows一时目次,不然会话处置法式将会在挪用session_start()函数时弹出厌恶的失足信息。同时可以经由过程变量session.cookie_lifetime来掌握会话cookie的无效期。
session.save_path = c:\windows\temp
session.cookie_lifetime = 1800
平安设置
在php.ini中,有良多同PHP装置的平安成绩相干的变量。个中最风趣的是safe_mode变量,建议针对ISP和同享主机办事(shared-hosting services)对其停止设置,此变量将对用户对PHP的利用局限停止限制。
safe_mode = Off
当safe mode翻开的时分,可以经由过程变量safe_mode_include_dir指定在何目次中查找相干文件。经由过程将二进制法式放在特定目次并利用safe_mode_include_dir变量将目次告之PHP,PHP将对可以使用exec()号令运转PHP剧本的法式品种停止限制。在此目次中仅二进制文件可以经由过程exec()号令停止会见。
safe_mode_include_dir = /usr/local/lib/php/safe-include
safe_mode_exec_dir = /usr/local/lib/php/safe-bin
还可以经由过程变量open_basedir来限制文件操作。此变量将设置作为文件操作根(root)的目次名。此变量设置后,关于PHP来讲,寄存在此目次树之外的文件将没法会见。这关于在同享体系中将用户限制在各自的home或Web目次是一种很好的办法。
open_basedir = /home/web/
变量max_execution_time设置了在强迫终止剧本前PHP守候剧本履行终了的工夫,此工夫以秒盘算。当剧本进入了一个无穷轮回形态时此变量十分有效。但是,当存在一个需求很长工夫完成的正当举动时(例如上传大型文件),这项功效也会招致操作掉败。在如许的情形下必需思索将此变量值增添,以免PHP在剧本正在履行某些主要进程的时分将剧本封闭。
max_execution_time = 90
刚提到了上传,如今来看看若何设置装备摆设uploads变量和form变量。
设置装备摆设文件上载和表单变量
假如咱们在文章后面所会商平安设置装备摆设所供应的平安强度还不克不及知足你的请求,可以经由过程封闭文件上传或设置每次上传最大文件尺寸限制来进一步进步平安强度。以上两种功效将分离经由过程变量file_uploads和upload_max_filesize来完成。凡是来讲,除非体系中无为吸收文件而设计的使用法式(例如基于Web FTP办事的图片册),你应该设置一个绝对较小的文件尺寸限制值。
file_uploads = On
upload_max_filesize = 2M
假如你关于上传文件其实不关怀,但在PHP使用法式中利用了大批的表单,这里有两个变量将会让你发生很大的乐趣。起首是变量register_globals,它处理了PHP开辟人员临时以来的心头之痛。在PHP 3.x中,此变量默许为On。由此当提交表单时表单变量将主动的转换成PHP变量。
在PHP 4.x中,出于平安思索,此变量默许设置为Off。由此,表单变量将只能经由过程特定的$_GET和$_POST停止会见。这也形成了良多用PHP 3.x编写的剧本在运转时呈现成绩,请求开辟人员重写剧本并对其从头测试。好比,输出到表单域<input type="text" name="email">中的值关于PHP 3.x剧本来讲将可以了解为$email;而在PHP 4.x剧本中却被作为$_POST['email']或$_GET['email']。
凡是情形下可以将此变量设置为Off,如许可以对经由过程表单停止的剧本进击供应更加平安的提防办法。假如需求思索到对初期PHP 3.x剧本的兼容成绩,则应该置于On。
register_globals = Off
同表单提交相干的一个变量是post_max_size,它将掌握在采取POST办法停止一次表单提交中PHP所可以吸收的最大数据量。仿佛不大能够需求将默许的8 MB改得更大。相反,应该恰当将其降到更加实践的数值。但假如但愿利用PHP文件上传功效,则需求将此值改成比upload_max_filesize还要大。
post_max_size = 8M
在PHP 5中增添了max_input_time变量。此变量可以以秒为单元对经由过程POST、GET和PUT体例吸收数据工夫停止限制。假如使用法式所运转情况处在低速链路上,则需求增添此值以顺应吸收数据所需的更多工夫。
max_input_time = 90
功能调剂
你还可以经由过程调剂一些变量值来提拔PHP解析器的功能。为了不正在运转的剧本大批利用体系可用内存,PHP答应界说内存利用限额。经由过程memory_limit变量来指订单个剧本法式可使用的最大内存容量:
memory_limit = 8M
变量memory_limit的值应该恰当大于post_max_size的值。
另外一项可以用于进步功能的办法是禁用变量$argc和$argv,这两个值被用于寄存在号令行中传递给使用法式的参数数目和实践参数值。
register_argc_argv = false
相似,还可以禁用$HTTP_GET_VARS和$HTTP_POST_VARS,由于在利用$_GET和$_POST的明天你不大能够用到前两种体例。禁用此功效可以带来功能上的提拔,但这只能经由过程PHP 5中的变量register_long_arrays完成。
register_long_arrays = false
函数ini_set()
最初,需求注重ini_set()函数。当PHP读取php.ini设置装备摆设文件中的一切设相信息的同时,它还供应了采取ini_set()函数依据per-script准绳更改这些设置的功效。此函数吸收两个参数:需求调剂的设置装备摆设变量名,和变量的新值。例如,在某剧本呈现时增添最大履行工夫(maximum execution time):
<?php
ini_set('max_execution_time', 600)
// more code
?>
如许的设置将仅仅影响被设置的剧本。一旦剧本履行终了,该变量将主动恢复到原始值。
假如PHP使用法式运转在一个同享办事器上,你不大能够可以会见到主php.ini设置装备摆设文件。这时候,函数ini_set()就能够答应依据特别请求对PHP设置装备摆设做静态修正,这将会给你带来很大的便利。
对我一点用处没有啊,我知道该怎么学,但是我想如何才能更快的学,一周速成,啊不,24小时速成那种,皮皮你有没? 不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。 有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。 当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标, 最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。 学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。 使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。 至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。 先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。 ,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。 至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。 我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。 其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎 有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。 开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。 首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。 为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。 开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。 在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。 再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
页:
[1]