1. 程式人生 > >php相關

php相關

php

php_admin_value open_basedir "/data/wwwroot/11php_admin_value open_basedir "/da

1.禁止解析php

在虛擬主機配置文件/usr/local/apache2.4/conf/extra/httpd-vhosts.conf中加入如下內容:

 <Directory /data/wwwroot/111.com/upload>
        php_admin_flag engine off
 </Directory>

該配置僅用了php的解析引擎,導致php無法被解析。保存配置後重啟apache

在更改配之前curl的結果如下,php得到正常解析:

[root@test_01 htdocs]# curl -x127.0.0.1:80 'http://111.com/upload/123.php'
123.php authorization passed

更改配置之後則是直接輸出php腳本文件中的源碼

[root@test_01 htdocs]# curl -x127.0.0.1:80 'http://111.com/upload/123.php'
<?php
echo "123.php authorization passed";
?>

2.禁用部分php函數

在配置文件/usr/local/php/etc/php.ini中加入如下配置:

disable_functions =eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,leak,popepassthru,stream_socket_server,popen,proc_open,proc_close

例如在僅用了phpinfo這個函數後,默認首頁的phpinfo監本無法得到處理,會呈現如下的畫面:

技術分享圖片

在調整display參數值為off後可以不現實上述的錯誤信息:

; http://php.net/display-errors
display_errors = off


3.定義時區

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone =Asia/Shanghai

4.open_basedir

open_basedir可將用戶訪問文件的活動範圍限制在指定的區域,通常是其家目錄的路徑,也可用符號"."來代表當前目錄。註意用open_basedir指定的限制實際上是前綴,而不是目錄名。舉例來說: 若"open_basedir = /dir/user", 那麽目錄 "/dir/user" 和 "/dir/user1"都是可以訪問的。所以如果要將訪問限制在僅為指定的目錄,請用斜線結束路徑名。例如設置成:"open_basedir= /dir/user/" 。
open_basedir也可以同時設置多個目錄, 在Windows中用分號分隔目錄,在Linux中用冒號分隔目錄。當其作用於Apache模塊時,父目錄中的open_basedir路徑自動被繼承。

設置方法:

在虛擬主機配置文件中加入如下配置內容:

php_admin_value open_basedir "/data/wwwroot/111.com:/tmp/"


ta/wwwroot/111.com:/tmp/"1.com:/tmp/"

php相關