PHP運行於Apache 模塊方式
當使用 PHP 作為 Apache 模塊時,也可以用 Apache 的配置文件(例如 )和 cess 文件中的指令來修改 PHP 的配置設定。需要有“AllowOverride Options”或“AllowOverride All”權限才可以。
有幾個 Apache 指令可以使用户在 Apache 配置文件內部修改 PHP 的配置。哪些指令屬於 PHP_INI_ALL,PHP_INI_PERDIR 或 PHP_INI_SYSTEM 中的哪一個,請參考附錄中的 配置選項列表。
php_value name value
設定指定的值。只能用於 PHP_INI_ALL 或 PHP_INI_PERDIR 類型的指令。要清除先前設定的值,把 value 設為 none。
Note: 不要用 php_value 設定布爾值。應該用 php_flag(見下面)。
php_flag name on|off
用來設定布爾值的配置指令。僅能用於 PHP_INI_ALL 和 PHP_INI_PERDIR 類型的指令。
php_admin_value name value
設定指定的指令的值。不能用於 cess 文件。任何用 php_admin_value 設定的指令都不能被 cess 或 virtualhost 中的指令覆蓋。要清除先前設定的值,把 value 設為 none。
php_admin_flag name on|off
用來設定布爾值的配置指令。不能用於 cess 文件。任何用 php_admin_flag 設定的指令都不能被 cess 或 virtualhost 中的.指令覆蓋。
Example #1 Apache 配置例子
<IfModule mod_php5.c>
php_value include_path ".:/usr/local/lib/php"
php_admin_flag engine on
</IfModule>
<IfModule mod_php4.c>
php_value include_path ".:/usr/local/lib/php"
php_admin_flag engine on
</IfModule>
Caution
PHP 常量不存在於 PHP 之外。例如在 中不能使用 PHP 常量如 E_ALL 或 E_NOTICE 來設定 error_reporting 指令,因為其無意義,實際等於 0。應該用相應的掩碼值來替代。這些常量可以在 中使用。
通過 Windows 註冊表修改 PHP 配置
在 Windows 下運行 PHP 時,可以用 Windows 註冊表以目錄為單位來修改配置。配置值存放於註冊表項 HKLMSOFTWAREPHPPer Directory Values 下面,子項對應於路徑名。例如對於目錄 c:inetpubwwwroot 的配置值會存放於 HKLMSOFTWAREPHPPer Directory Valuescinetpubwwwroot 項下面。其中的設定對於任何位於此目錄及其任何子目錄的腳本都有效。項中的值的名稱是 PHP 配置指令的名字,值的數據是字符串格式的指令值。值中的 PHP 常量不被解析。不過只有可修改範圍是 PHP_INI_USER 的配置值可以用此方法設定,PHP_INI_PERDIR 的值就不行。
其它接口下的 PHP
無論怎樣運行 PHP,都可以在腳本中通過 ini_set() 而在運行時修改某個值。更多信息見手冊中 ini_set() 的頁面。
如果對自己系統中的配置設定及其當前值的完整列表感興趣,可以運行 phpinfo() 函數並查看其結果的頁面。也可以在運行時用 ini_get() 或 get_cfg_var() 取得個別配置指令的值。
add a note add a note
User Contributed Notes 13 notes
up
down
3 Anteaus ?2 years ago
One of the most serious problems here is that it is hard to determine programmatically which of three or more possible configuration methods (, , cess) should be used on any given hosting company's server.
The worst outcome is if an routine attempts to set cess directives on a cgi-mode server, in which case the outcome is usually a '500' crash. Once in that situation the php installation routine cannot be rerun to correct the problem, so you effectively have a hosting lockout situation which can only be corrected by manual intervention.
up
down
-2 at gmail dot com ?9 years ago
Being able to put php directives in and have them work on a per-directory or per-vitual host basis is just great. Now there's another aspect which might be worth being aware of:
A directive put into your apache conf file applies to php when it runs as an apache module (i.e. in a web page), but NOT when it runs as CLI (command-line interface).
Such feature that might be unwanted by an unhappy few, but I guess most will find it useful. As far as I'm concerned, I'm really happy that I can use open_basedir in my file, and it restricts the access of web users and sub-admins of my domain, but it does NOT restrict my own command-line php scripts...
up
down
-3 nick at vistaworks dot net ?4 years ago
On Windows, as the documentation above states, you cannot set max_upload_filesize and post_max_size in the registry, because they are PHP_INI_PERDIR.
Confusingly, however, is the fact that phpinfo() will show your changes if you do add those to the regsitry, as if they were taking effect. However, the upload size is *not* changed, regardless of what phpinfo() reports.
I believe the reading of registry values and override happen 'too late' in the request processing, ie, after the file has already been uploaded and rejected.
In a perfect world, phpinfo() would recognize this and not report the overridden values, which is very confusing.
up
down
-4 Woody/mC ?9 years ago
@ pgl: As the documentation says:
"To clear a previously set value use none as the value."
Works fine for me.
up
down
-6 user at NOSPAM dot example dot com ?5 years ago
PHP Constants will work with php_value; for example:
-
PHP面試之php自帶的幾個防止sql注入的函數
畢業季又到了,同學們是不是正為此煩惱呢?以下是本站小編精心為大家整理的PHP面試之php自帶的幾個防止sql注入的函數,希望對大家有所幫助!更多內容請關注應屆畢業生網!SQL注入攻擊是黑客攻擊網站最常用的手段。如果你的站點沒有使用嚴格的用户輸入檢驗,那麼常容易...
-
php遞歸創建和刪除文件夾的代碼
php中遞歸創建和刪除文件夾的代碼,供大家學習參考。就跟隨本站小編一起去了解下吧,想了解更多相關信息請持續關注我們應屆畢業生考試網!方法一複製代碼代碼如下:<?php/***目錄生成類:UtilsMakeDir*@authoryepeng*@since2010.3.18*/classUtilsMakeDir{//基目錄建...
-
PHP入門學習方法
每個人的學習方式不同,寫這篇文章的目的是分享一下自己的學習過程,僅供參考,不要一味的用別人的學習方法,找對自己有用的學習方式,關於php語言怎麼學呢?下面是相關的知識,歡迎閲讀。其實學習一門新語言並不是太難,重要的是你有沒有準備好去學好它,時間的長短和個人的能...
-
PHP 關於訪問控制的和運算符優先級介紹
導語:PHP的知識點相對來説比較多,而且不容易記憶,下面的是本站小編為大家蒐集的.是PHP關於訪問控制的和運算符優先級介紹,希望對你能有所幫助。代碼如下:classFoo{private$name='hdj';publicfunctiongetName(){return$this->name;}}classBarextendsFoo{pub...