Apache設定PHP環境(Ubuntu7.10)

yeahokay發表於2007-10-17
  • 將系統更新到最新狀態,在做任何操作之前都要做這一步,以確保系統的穩定,同時也不會有一些莫名其妙的現象出現。
$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包,如果安裝的話請將其刪除。

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

目前大多數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

    #下面的設定就限制了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
[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/786540/viewspace-977088/,如需轉載,請註明出處,否則將追究法律責任。

相關文章