如何修改PHP配置
1. php如何動態修改配置文件
php中修改php配置文件(php.ini)的函數主要有四個函數:ini_get、ini_set、ini_get_all、ini_restore。其中ini_set和ini_get比較常用,下面分別做介紹。
(1)ini_get()
用來獲取配置文件的選項值.
這個函數相信很多人都使過,就是獲取配置文件中某一個選項的值,如果是true值就返回1,如果是false值就返回0,字元串就返回字元串。
php手冊中的例子:
<?php
echo 'post_max_size = ' . ini_get('post_max_size') . "\n";//最多能提交的文件大小
echo 'post_max_size+1 = ' . (ini_get('post_max_size')+1) . "\n";
echo 'display_errors = ' . ini_get('display_errors') . "\n"; //顯示錯誤是否打開
echo 'register_globals = ' . ini_get('register_globals') . "\n";//全局變數是否打開
?>
輸出:
display_errors = 1
register_globals = 0
post_max_size = 8M
post_max_size+1 = 9
這個函數主要是為了獲取配置文件,可以方便很多操作。比如想操作字元串過濾,但是又不清楚magic_quotes_gpc有沒有打開,所以就可以這樣寫一個函數:
function stringFilter($str)
{
if (ini_get('magic_quotes_gpc)') {
return $str;
} else {
return addslashes($str);
}
}
當然,如果無法知道的全局變數是否打開,也可以定製這樣的函數:
function getGetVar($var)
{
if (ini_set('register_gobals')) {
return $var;
} else {
return $_GET['var'];
}
}
當然,可以做很多用途,自己慢慢體會。
(2)ini_set函數
設置php.ini中的某些變數值.
這個函數是設置選項中的值,在執行函數後生效,腳本結束的時候,這個設置也失效。不是所有的選項都能被改函數設置的。具體那些值能夠設置,可以查看手冊中的列表。
就是能夠設置php.ini中的選項值比如,display_error選項關閉了,但是要顯示程序中的錯誤信息,方便調試程序,那麼就可以使用這個函數:
ini_set("display_errors", "On");
那麼在這個頁面的程序都會顯示錯誤信息了,而且還可以使用error_reporting來設置顯示的錯誤信息級別。
如果需要增加腳本執行時間,那麼可以設置:
ini_set("max_execution_time", "180");
那麼腳本執行時間就由默認的30秒變為180秒,當然,你也可以使用set_time_limit()來設置。
其實把ini_set和ini_get結合使的話,非常好。比如想在配置文件里添加自己的包含文件路徑,但是有沒有許可權更改php.ini,那麼可以結合兩個函數:
ini_set('include_path',ini_get('include_path').':/your_include_dir:');
(3)ini_get_all
獲取所有的設置選項變數
把所有選項值以數組的形式返回,方便當phpinfo()無法使用的時候來使用。
手冊例子:
<?php
$inis = ini_get_all();
print_r($inis);
?>
部分輸出值:
Array
(
[allow_call_time_pass_reference] => Array
(
[global_value] => 1
[local_value] => 1
[access] => 6
)
[allow_url_fopen] => Array
(
[global_value] => 1
[local_value] => 1
[access] => 7
)
...
)
(4)ini_restore
恢復配置文件默認的值
就是恢復配置文件默認的值,當你使用ini_set設置後可以使用它來恢復。
2. 怎麼修改php.ini文件里的配置
文本編輯打開文件、修改保存即可。
如果是WINDOWS伺服器,可以使用記事本修改。如果是UNIX伺服器,可以使用vi修改。
查看PHP.INI文件位置,可以使用phpinfo()函數
3. 如何修改php.ini
修改php.ini這個選項,網上有很多的教程,可以隨便搜。
1、先用root賬號,登錄到nobody的賬戶。
2、然後用whereis php命令查看,php.ini所在的位置,修改這個php.ini的文件就可以了。
3、最後重啟apache,就可以生效了。
這里的nobody賬戶就是apache使用的賬戶,許可權很低。
這里主要注意的問題就是你修改的配置文件必須是nobody所使用的配置文件。
一般情況下,修改了配置但是沒有生效,可以考慮一下機器上是不是有多份配置。希望能幫到你,我還在後盾人線下面授培訓上課學習呢現在沒時間,有不會的可以問我,一起加油吧(▼㉨▼メ)
4. php如何修改文件中的配置信息~呢
對形如config.php文件的讀取,修改等操作的代碼,需要的朋友可以參考下
復制代碼代碼如下:
<?php
$name="admin";//kkkk
$bb='234';
$db=4561321;
$kkk="admin";
?>
函數定義:
配置文件數據值獲取:function getconfig($file, $ini, $type="string")
配置文件數據項更新:function updateconfig($file, $ini, $value,$type="string")
調用方式:
復制代碼代碼如下:
getconfig("./2.php", "bb");//
updateconfig("./2.php", "kkk", "admin");
復制代碼代碼如下:
<?php
//配置文件數據值獲取。
//默認沒有第三個參數時,按照字元串讀取提取''中或""中的內容
//如果有第三個參數時為int時按照數字int處理。
function getconfig($file, $ini, $type="string")
{
if ($type=="int")
{
$str = file_get_contents($file);
$config = preg_match("/" . $ini . "=(.*);/", $str, $res);
Return $res[1];
}
else
{
$str = file_get_contents($file);
$config = preg_match("/" . $ini . "=\"(.*)\";/", $str, $res);
if($res[1]==null)
{
$config = preg_match("/" . $ini . "='(.*)';/", $str, $res);
}
Return $res[1];
}
}
//配置文件數據項更新
//默認沒有第四個參數時,按照字元串讀取提取''中或""中的內容
//如果有第四個參數時為int時按照數字int處理。
function updateconfig($file, $ini, $value,$type="string")
{
$str = file_get_contents($file);
$str2="";
if($type=="int")
{
$str2 = preg_replace("/" . $ini . "=(.*);/", $ini . "=" . $value . ";", $str);
}
else
{
$str2 = preg_replace("/" . $ini . "=(.*);/", $ini . "=\"" . $value . "\";",$str);
}
file_put_contents($file, $str2);
}
//echo getconfig("./2.php", "bb", "string");
getconfig("./2.php", "bb");//
updateconfig("./2.php", "kkk", "admin");
//echo "<br/>".getconfig("./2.php", "name","string");
?>
復制代碼代碼如下:
//完善改進版
/**
* 配置文件操作(查詢了與修改)
* 默認沒有第三個參數時,按照字元串讀取提取''中或""中的內容
* 如果有第三個參數時為int時按照數字int處理。
*調用demo
$name="admin";//kkkk
$bb='234';
$bb=getconfig("./2.php", "bb", "string");
updateconfig("./2.php", "name", "admin");
*/
function get_config($file, $ini, $type="string"){
if(!file_exists($file)) return false;
$str = file_get_contents($file);
if ($type=="int"){
$config = preg_match("/".preg_quote($ini)."=(.*);/", $str, $res);
return $res[1];
}
else{
$config = preg_match("/".preg_quote($ini)."=\"(.*)\";/", $str, $res);
if($res[1]==null){
$config = preg_match("/".preg_quote($ini)."='(.*)';/", $str, $res);
}
return $res[1];
}
}
function update_config($file, $ini, $value,$type="string"){
if(!file_exists($file)) return false;
$str = file_get_contents($file);
$str2="";
if($type=="int"){
$str2 = preg_replace("/".preg_quote($ini)."=(.*);/", $ini."=".$value.";",$str);
}
else{
$str2 = preg_replace("/".preg_quote($ini)."=(.*);/",$ini."=\"".$value."\";",$str);
}
file_put_contents($file, $str2);
}
5. 怎樣在Apache里修改PHP的配置
當使用 PHP 作為 Apache 模塊時,也可以用 Apache 的配置文件(例如 httpd.conf)和 .htaccess 文件中的指令來修改 PHP 的配置設定。需要有「AllowOverride Options」或「AllowOverride All」許可權才可以。
有幾個 Apache 指令可以使用戶在 Apache 配置文件內部修改 PHP 的配置。哪些指令屬於 PHP_INI_ALL,PHP_INI_PERDIR 或 PHP_INI_SYSTEM 中的哪一個,請參考附錄中的 php.ini 配置選項列表。
php_value name value
設定指定的值。只能用於 PHP_INI_ALL 或 PHP_INI_PERDIR 類型的指令。要清除先前設定的值,把 value 設為 none。
不要用 php_value 設定布爾值。應該用 php_flag。
php_flag name on|off
用來設定布爾值的配置指令。僅能用於 PHP_INI_ALL 和 PHP_INI_PERDIR 類型的指令。
php_admin_value name value
設定指定的指令的值。不能用於 .htaccess 文件。任何用 php_admin_value 設定的指令都不能被 .htaccess 或 virtualhost 中的指令覆蓋。要清除先前設定的值,把 value 設為 none。
php_admin_flag name on|off
用來設定布爾值的配置指令。不能用於 .htaccess 文件。任何用 php_admin_flag 設定的指令都不能被 .htaccess 或 virtualhost 中的指令覆蓋Apache 配置例子:
<IfMole mod_php5.c>
php_value include_path ".:/usr/local/lib/php"php_admin_flag engine on
</IfMole>
<IfMole mod_php4.c>
php_value include_path ".:/usr/local/lib/php"php_admin_flag engine on
</IfMole>
注意:PHP 常量不存在於 PHP 之外。例如在 httpd.conf 中不能使用 PHP 常量如 E_ALL 或 E_NOTICE 來設定 error_reporting 指令,因為其無意義,實際等於 0。應該用相應的掩碼值來替代。這些常量可以在 php.ini 中使用。
6. 如何在Apache配置中修改php的個別配置
如何在Apache配置中修改php的個別配置
apache伺服器和php的配置應用還是很廣泛的,如果你愛好或從事php程序,那麼進行本文所提到的配置是不可避免的,當然,對於不同版本的php和apache,其配置還是不盡相同的,這里就最新的版本做一個簡單的配置介紹.
apache_2.2.4,php_5.2.6.6.
安裝apache_2.2.4,假設安裝目錄C:\Program Files\Apache Software Foundation\Apache2.
7. php如何正確配置
你在本地搭建好了一個 Web 開發環境,通常你需要修改環境的一些設置來達到一些目的,也有可能是 Web 應用要求你去修改某些特定的設置,或者通過修改設置來優化網站的性能。修改 Web 運行環境的設置是通過修改一些配置文件來完成的,比如想要修改 Apache 的配置,你需要找到 httpd.conf 這個文件,想修改 PHP 的設置,一般是 php.ini 這個文件,Mysql 的設置文件通常是 my.cnf 。找到這些文件所在的位置,打開以後,修改對應的選項的值,保存文件,然後重啟 Web 運行環境,這樣就可以完成修改了。
工具/原料
wamp
方法/步驟
我們通過新建一個 php 文件來預覽 php 的相關配置信息。
1. 找到你的文檔根目錄,這個目錄是你的網站應用的發布目錄,或者叫 Web 目錄,也就是只有把網站放在這個指定的目錄里,才能通過瀏覽器打開,這個目錄的位置你也是可以修改的。WAMP 設置的這個目錄的位置是 wamp/www ,MAMP 這個目錄是在 /Applications/MAMP/htdocs 。
2. 找到這個 Web 根目錄以後,在目錄里新建一個擴展台是 php 的文件,命名為 phpinfo.php 。然後用編輯器(Brackets,Sublime... )打開這個新創建的 phpinfo.php 。在這個文件里輸入 <?php phpinfo(); ?> 。然後保存這個文件。
3. 在瀏覽器里打開 phpinfo.php 這個文件,地址應該是 localhost/phpinfo.php ,因為我們是在根目錄下創建的 phpinfo.php 。Mac 用戶如果使用 MAMP,可能需要在地址里加上埠號,localhost:8888/phpinfo.php 。在打開的頁面上你會看到 PHP 配置的相關的信息,php 配置文件所在的位置,版本,php 啟用的模塊等等,仔細的看一下這個頁面上的東西。
在上面,你應該可以找到 PHP 的配置文件所在的位置,也就是 php.ini 這個文件的位置,你可以在打開的 phpinfo.php 頁面上搜索 php.ini ,Loaded Configuration File 這個項目右邊的地址就是當前環境所使用的 php.ini 這個文件的位置。在這里,先找到這個配置文件,然後去修改裡面的幾個設置。
1. 找到當前環境所使用的 PHP 配置文件,php.ini ,這個文件的位置可以在 phpinfo.php 這個頁面上得到。WAMP 可能是在 wamp/bin/apache/Apache2.4.4/bin/php.ini ,這個文件可以使用文本編輯軟體打開。注意文件裡面有很多內容都是注釋,也就是用 ; 號開頭,文字的顏色一般是淺灰色,這些內容只是用來解釋跟提醒,並沒有實際的用處。
2. 搜索 upload_max_filesize ,這個選項可以控制 Web 應用最大的可以上傳的文件的大小,默認應該是 2M ,修改等號右邊的值,改成 512M 或其它任何你想要修改成的那個數字。
3. 搜索 post_max_size,這個選項決定了 PHP 可以接受的發送的最大的數據,默認它的值是 8M,把這個值改的大一些,可以跟 upload_max_filesize 的值一樣。
4. 搜索 memory_limit ,這個選項跟腳本最多可以使用的內存有關,把這個值改的大一些,比如 512M。
5. 搜索 max_execution_time,執行解析腳本允許的最大的時間,單位是秒,有些應用需要讓這個值大一些,這里我們可以改成 120 。
6. 保存所修改的 php.ini 文件,關掉它,然後重新啟動 Web 運行環境,WAMP 和 MAMP 都提供了一個界面,點一下對應的按鈕就可以重新啟動環境了。這樣環境就會載入修改以後的 php.ini 文件。
7. 再打開 phpinfo.php 這個頁面,然後搜索一下剛才修改的那些 php 的設置,看一下對應的值是不是自己修改之後的值,如果是,證明修改成功,如果跟修改以後的值不一樣,確定自己打開了正確的 php.ini 文件。
8. 如何修改伺服器php.ini
只能手動修改php.ini文件,或者是你的空間根本不支持Mysql.你可以聯系下虛擬主機供應商。
9. PHP修改配置文件中的變數值
樓上亂來
通過web修改config.php似乎不是一個好點子哦
可能會引來安全方面的問題,而且你修改保存了以後也不會立即生效啊,還要等伺服器重啟
不過實現應該可以,給你提供個思路,用文件操作函數搞
不過具體涉及到config.php文件的內容和格式,其實還是相當繁重的工程