程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> LINUX下Ubuntu Apache服務之PHP配置

LINUX下Ubuntu Apache服務之PHP配置

編輯:關於PHP編程

   烈火建站學院(Bkjia.Com)文檔 Ubuntu系統更新到最新狀態,在做任何操作之前都要做這一步,以確保系統的穩定,同時也不會有一些莫名其妙的現象出現。

$sudo apt-get update

$sudo apt-get dist-upgrade

安裝PHP支持

$sudo apt-get install libapache2-mod-php5

$sudo apt-get install php5

如果想支持圖形就加php5-gd,如果想支持Mysql就加php5-mysql,這裡之所以要單獨列出libapache2-mod-php5,主要是由於php5的依賴關系沒有做好,有可能會安裝上libapache-mod-php4的包,所以為了避免不必要的麻煩,干脆還是單獨指定比較好。如果有朋友還是會出現問題,請在新立得中查找libapache-mod-php4包,如果安裝的話請將其刪除。

修改PHP配置文件,以限制內存和文件最大上傳尺寸

我們編輯/etc/php5/apache2/php.ini文件,先做一般配置,在改動之前,請先將該配置文件做個備份。以便在出錯的時候可以恢復。

...

memory_limit == 8M ==>修改成你所需的內存大小

upload_max_filesize == 2M ==>修改文件最大上傳尺寸

...

extension=mysql.so 支持Mysql服務

extension=gd.so 支持gd函數

...

其實在Ubuntu下,如果你安裝了php5-mysql和php5-gd之後,會自動修改以上二行的,我們做的只不過是確認一下它們前面的注釋符是否去掉。

a. 目前大多數php的open source都是用php4寫的,為了兼容以前的php版本,有時需要將register_long_arrays打開,否則$HTTP_GET_VARS和$HTTP_POST_VARS等變量將無法使用,會出現一些莫名其妙的問題。 a. 另外,在裝完php5後最好確認一下/etc/apache2/mods-enabled/下是否有鏈接:

php5.load -> /etc/apache2/mods-available/php5.load

加固PHP,以增強安全性。注意,下面的安全性要因情況而定,所以我已經把它們的功能寫清楚了,如果有問題的話,看看是否由於下面哪種限制條件所造成,可相應將其注釋掉。那麼讓我們開始吧,我們將再次編輯/etc/php5/apache2/php.ini文件,之所以沒有一次改完,主要是為了給大家一個清晰的思路。

#打開安全模式,打開他的好處就是PHP文件只能訪問所有者和PHP文件所有著一樣的文件,即使在chroot環境下也無法訪問jail 中屬主不一樣的文件,類似於php shell這樣的後門就沒用武之地了哦,phpshell是很流行的php後門,他可以執行系統命令,就象他的名字一樣,和shell很接近。

safe_mode = On

#清注意,安全模式打開一個會導致judge online一類有調用外部程序的php無法工作。

#下面的設置就限制了fopen(), file()等函數可以操作的目錄范圍,避免了入侵者非法讀取文件,一定要在/var/www後面加"/",否則/var/wwww下的文件也能被訪問。該選項會禁止任何不在/var/www/目錄下的PHP文件運行,包括任何以軟鏈接方式鏈到/var/www/目錄下的程序,如PhpMyAdmin 包,就在該選項設定後無法正常運行。

open_basedir = /var/www/

#禁止使用phpinfo和get_cfg_var函數,這樣可以避免洩露服務信息,一般在在確認PHP能正常工作之後再使之關閉

disable_functions = phpinfo,get_cfg_var

#設置php程序錯誤日志

error_reporting = E_ALL

log_errors = On

error_log = /var/log/php_err.log

#如果php程序沒有指明需要register_globals的話,最好把register_globals設置為Off,這樣可以避免很多安全問題的。注意,如果你的程序是需要register_globals的話,可千萬別關。Ubuntu默認是關閉的。

register_globals = Off

#禁止打開遠程地址,記得最近出的php include的那個漏洞嗎?就是在一個php程序中include了變量,那麼入侵者就可以利用這個控制服務器在本地執行遠程的一個php程序,例如phpshell,所以我們關閉這個。

allow_url_fopen = Off

OK,打完收功!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved