LAMP网站开发黄金组合Linux+Apache+MySQL+PHP
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

7.5 配置PHP

php.ini文件是PHP的配置文件,其中包括了大量的配置指令,PHP的各种行为就是通过php.ini文件中的配置项进行控制的。该文件的默认存储路径为“/usr/local/lib”,但也可以在安装PHP时,通过使用“--with-config-file-path”选项自行设定。

7.5.1 php.ini文件

与Apache的httpd.cnf文件或MySQL的my.cnf类似,php.ini文件是PHP的全局配置文件,控制着PHP的各种行为模式。php.ini文件大约有200多个配置参数,逐一配置将是一件非常繁杂的工作。为了帮助用户快速地部署PHP,在PHP的安装目录中有两个预置模板文件:php.ini-dist和php.ini-recommanded,用户可以更名后直接使用(为了使PHP能够读取这个文件,文件名必须重命名为php.ini)。其中php.ini-dist文件是标准配置文件,已经为大多数参数设置了默认值,php.ini-recommanded文件是推荐使用的配置文件,不过该配置文件可能会与旧的应用程序不完全兼容。

php.ini文件是纯文本文件,里面包含了注释、章节名称和赋值对(格式为:“指令名=值”)。例如下面是php.ini文件中的一个示例:

    [php]
    ; Allow ASP-style <% %> tags.
    asp_tags = Off

其中“[php]”是章节名称,分号是注释行,PHP默认会对其忽略。“asp_tags”是指令名称,这里赋值为“Off”。指令名称是大小写敏感的,例如PHP会认为“foo=bar”与“Foo=bar”是两个不同的指令赋值对。指令的值可以是字符串、数字、PHP常量、INI常量(On,Off,True,False,Yes,No和None)、表达式或是用双引号括起来的字符串。

布尔类型值可以用1,On,True或是Yes表示“是”,用0、Off、False或No表示“否”;空字符串可以通过赋值none来实现,也可以在等号后直接为空,例如:

    foo =       ; 将foo设置为空字符串
    foo = none    ; 将foo设置为空字符串
    foo = "none"  ; 将foo设置为字符串“none”

由于PHP解析器会在每次启动时读取php.ini文件,所以如果在安装PHP时,PHP是作为CGI二进制包进行安装的,那么对PHP的每次凋用都会重新读取php.ini文件,因此对该文件的修改也将立即生效;如果PHP是作为Apache的一个模块进行安装的,则只会在Apache守护进程重启时才会重新读取php.ini文件,因此修改后若使其生效必须重启Apache。

7.5.2 httpd.conf和.htaccess文件

当PHP作为Apache模块运行时,可以通过httpd.conf或.htaccess文件对PHP的许多参数进行修改。为此,通常是在“名=值”对前加上以下的某个关键字作为前缀。

● php_value:设置指令的值。

● php_f]ag:设置布尔指令的值。

● php_admin_va]ue:设置指令的值,与php_value不同,不能在.htaccess文件中使用。

● php_admin_flag:设置布尔指令的值。它与php_flag不同,不能在.htaccess文件中使用。

7.5.3 在执行脚本中设定PHP配置指令

也可以在执行脚本中通过调用ini_set( )函数来设定PHP的配置指令。例如,要修改PHP中脚本最大上传文件的大小为10M,只需在脚本最上面加入如下代码:

    ini_set(upload_max_filesize =  "10M");