如果你是用獨立伺服器,又或者 VPn 、 vps 之類的,那麼我教你最佳化 php.ini
注意:任何修改先做檔案備份!!
首先開啟你的 php.ini
想知道這個檔案在哪的話,把下面程式碼複製到新建的檔案裡面,再重新命名為:discuz.php 當然,我的網站 www.weixiaoduo.com 使用的是 discuz,這個檔名是我隨便改的,這個不重要!
[code]<?php
phpinfo();
?>[/code]
用你的網站地址執行,查詢 Loaded Configuration File,就顯示你的 php.ini 的位置。
ctrl+f 查詢:disable_functions
找到後在=後面新增
(這裡都是禁止在 php 裡面執行的函式) 程式碼: 複製內容到剪貼簿
exec,system,passthru,error_log,ini_alter,dl,openlog,syslog,readlink,
symlink,link,leak,fsockopen,proc_open,popepassthru,chroot,scandir,
chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,popen
上面內容請放到一行。因為保持帖子的整體效果作了換行
一般後臺只用加: 複製內容到剪貼簿
disable_functions = system,passthru,shell_exec,com,exec,shell
查詢:display_errors
如果是 On 的話改成 Off
查詢:magic_quotes_gpc
如果是 Off 的話改成 On
查詢:register_globals
如果是 On 的話改成 Off
查詢:open_basedir
後面增加
/www/:/tmp/
這裡是限制 php 可以訪問的目錄,後面一定要加上/,否則如果有/wwwabcd 這個目錄也會被訪問得到
多個目錄用英文: 分隔。如果不新增/tmp/的話 Discuz! 的上傳功能就無法使用
注意:以上內容在 php.ini 的開頭會有相關設定的提示,請按 ctrl+x 查詢下一個,不要直接在上面修改
------------------------------
對 php.ini 最佳化
GD 庫的支援
;extension=php_gd2.dll
將前面的冒號去掉,
output_buffering = Off
輸出快取允許你甚至在輸出正文內容之後傳送 header(標頭,包括 cookies) 行其代價是輸出層減慢一點點速度。你可以使用輸出快取在執行時開啟輸出快取, 或者在這裡將指示設為 On 而使得所有檔案的輸出快取開啟。
output_handler = ; 你可以重定向你的指令碼的所有輸出到一個函式,
那樣做可能對處理或以日誌記錄它有用。
例如若你將這個 output_handler 設為 ob_gzhandler, 則輸出會被透明地為支援 gzip 或 deflate 編碼的瀏覽器壓縮。
設一個輸出處理器自動地開啟輸出緩衝。
找到這個
output_buffering = Off
修改為
On
注意,不要設定數值,只需要設定為 On 即可。
相應的,你還可以在你的 discuz 後臺,開啟 gzip 支援,也是最佳化的一項內容。
有些朋友為了安全,還啟用了 php 的安全模式,這個也是一辦法
另外有些朋友需要使用全域性變數和 MAGIC,這是一些 php 程式的必備條件,discuz2.0 也需要
可以開啟,不過安全效能將降低,方法很簡單。
register_globals = Off ;
將其修改為 On 即可.
一些朋友經常反映無法上傳較大的檔案或者後臺備份資料經常超時
max_execution_time = 30 ; 這個是每個指令碼執行的最長時間,可以自己修改加長,單位秒
max_input_time = 60 ; 這是每個指令碼可以消耗的時間,單位也是秒
memory_limit = 8M ; 這個是指令碼執行最大消耗的記憶體,也可以自己加大
upload_max_filesize = 2M ; 上載檔案的最大許可大小 ,自己改吧,一些圖片論壇需要這個更大的值
如果:
php 報錯顯示 PHP has encountered an Access Violation at XXXXXX 解決辦法
很多人說,是 php 版本的問題,其實不然,可以從四個地方來看這個問題
1,是否 zend 所需的 dll 檔案所在目錄給的許可權不夠,必須有讀取和執行的許可權
2,是否使用的 2003,設定過應用池,比如池中限制了什麼什麼,調整一下再試試看,是否好了,呵呵
3,php.ini 有兩個地方沒有設定,而且一些程式必須用到的
將;upload_tmp_dir 該行的註釋符,使該行在 php.ini 檔案中起作用。
upload_tmp_dir 是用來定義上傳檔案存放的臨時路徑,在這裡你還可以給其定義一個絕對路徑,
例如:upload_tmp_dir = d:upload 當然,此時你的 d:upload 目錄必須有讀寫許可權。
這裡我設定為
upload_tmp_dir = c: emp
出現這樣的錯誤語句一般是因為你的 php.ini 中關於 session.save_path 一項沒有設定好,
解決的方法是將 session.save_path 和 session.cookie_path 設定置為
session.save_path = c: emp
session.cookie_path = c: emp(我沒有修改這項,我發現修改後的驗證瑪不能用)
然後在 c: 目錄下建立一個 temp 目錄
完成以上我教你的,那麼,重啟你的 php 吧,最直接的方法就是重啟伺服器。
好了,完成一切!