PHP啟動時將讀取配置文件(php.ini)。對于PHP的服務器模塊版本,僅在啟動Web服務器時才發生一次。對于CGI和CLI版本,它會在每次調用時發生。
如何配置php.ini以提高Web服務器的安全性
1、禁用不需要的PHP函數
此選項可以設置禁止使用哪些PHP函數。 PHP中的某些功能仍然存在很大風險。如果允許執行這些功能,那么當PHP程序容易受到攻擊時,損失會非常嚴重!下面我們給出建議的禁用功能設置:
disable_functions = phpinfo,passthru,exec,system,popen,chroot,escapeshellcmd,escapeshellarg,shell_exec,proc_open,proc_get_status
注意:如果您的服務器包含一些用于CentOS系統狀態檢測的PHP程序,請不要禁用shell_exec,proc_open,proc_get_status和其他功能。
2、PHP腳本的執行時間
max_execution_time = 30
此選項設置PHP程序的最大執行時間。如果請求了PHP腳本,而PHP腳本未能在max_execution_time時間內完成,則PHP將不會繼續執行,而是直接向客戶端返回超時錯誤。此選項不需要特別保留默認設置30秒。如果您的PHP腳本確實需要很長的執行時間,則可以適當地增加此時間設置。
3、PHP腳本的內存使用情況
memory_limit = 8M
此選項指定PHP腳本處理可以占用的最大內存。默認值為8MB。如果服務器內存大于1GB,則可以將此選項設置為12MB,以提高PHP腳本處理效率。
4、PHP全局函數聲明
register_globals = Off
Internet上許多有關PHP設置的文章都建議將此選項設置為On。實際上,這是一種非常危險的設置方法,可能會導致嚴重的安全問題。如果沒有特殊需要,強烈建議保留默認設置!
5、PHP上傳文件大小限制
upload_max_filesize = 2M
此選項設置PHP允許的最大上傳文件大小。默認值為2MB。可以根據實際應用要求適當增加此設置。